VRFS-4157 - don't wipe out sessions when considering scheduling

This commit is contained in:
Seth Call 2016-05-29 22:30:33 -05:00
parent 01a096d6c3
commit ad28d8d55d
3 changed files with 32 additions and 8 deletions

View File

@ -243,7 +243,12 @@ module JamRuby
minimum_start_time = create_minimum_booking_time
# get all sessions that are already scheduled for this booking ahead of the minimum time
sessions = MusicSession.joins(:lesson_session).where("lesson_sessions.lesson_booking_id = ?", id).where("scheduled_start is not null").where("scheduled_start > ?", minimum_start_time).order(:created_at)
sessions= MusicSession.joins(:lesson_session).where("lesson_sessions.lesson_booking_id = ?", id).where("scheduled_start is not null").order(:created_at)
if recurring
# only want times ahead of this for recurring
sessions = sessions.where("scheduled_start > ?", minimum_start_time)
end
if @default_slot_did_change
# # adjust all session times

View File

@ -753,9 +753,28 @@ describe LessonBooking do
end
describe "rescheduling" do
after do
Timecop.return
it "initial slot is in the past" do
booking = LessonBooking.book_normal(user, teacher_user, valid_single_slots, "Hey I've heard of you before.", false, LessonBooking::PAYMENT_STYLE_SINGLE, 60)
lesson_session = booking.lesson_sessions[0]
initial_scheduled_time = lesson_session.scheduled_start
counter = FactoryGirl.build(:lesson_booking_slot_single, preferred_day: Date.today + 20)
lesson_session.counter({proposer: user, slot: counter, message: 'ACtually, let\'s do this instead for just this one'})
Timecop.travel(initial_scheduled_time + 1)
lesson_session.accept({accepter: teacher_user, message: 'Yeah I got this', slot: counter, update_all: false})
booking.reload
booking.status.should eql LessonBooking::STATUS_APPROVED
booking.lesson_sessions.count.should eql 1
lesson_session.errors.any?.should be_false
lesson_session.reload
lesson_session.status.should eql LessonSession::STATUS_APPROVED
lesson_session.scheduled_start.should eql counter.scheduled_time(0)
end
it "non-recurring, accepted with new slot" do
booking = LessonBooking.book_normal(user, teacher_user, valid_single_slots, "Hey I've heard of you before.", false, LessonBooking::PAYMENT_STYLE_SINGLE, 60)
lesson_session = booking.lesson_sessions[0]

View File

@ -296,16 +296,16 @@ UserStore = context.UserStore
if response.test_drive?.teacher_id
teacher_id = response.test_drive.teacher_id
if testDriveCount == 1
text = "You have purchased a TestDrive credit and have used it to request a JamClass with #{@state.teacher.name}. The teacher has received your request and should respond shortly."
if testDriveCount == '1'
text = "You have purchased 1 TestDrive credit and have used it to request a JamClass with #{@state.teacher.name}. The teacher has received your request and should respond shortly."
else
text = "You have purchased #{testDriveCount} TestDrive credits and have used 1 credit it to request a JamClass with #{@state.teacher.name}. The teacher has received your request and should respond shortly."
text = "You have purchased #{testDriveCount} TestDrive credits and have used 1 credit to request a JamClass with #{@state.teacher.name}. The teacher has received your request and should respond shortly."
location = "/client#/jamclass"
else
if @state.teacher?.id
# the user bought the testdrive, and there is a teacher of interest in context (but no booking)
if testDriveCount == 1
if testDriveCount == '1'
text = "You now have 1 TestDrive credit.<br/><br/>We've taken you to the lesson booking screen for the teacher you initially showed interest in."
location = "/client#/jamclass/book-lesson/test-drive_" + teacher_id
else
@ -313,7 +313,7 @@ UserStore = context.UserStore
location = "/client#/jamclass/book-lesson/test-drive_" + teacher_id
else
# the user bought test drive, but 'cold' , i.e., no teacher in context
if testDriveCount == 1
if testDriveCount == '1'
text = "You now have 1 TestDrive credit.<br/><br/>We've taken you to the Teacher Search screen, so you can search for teachers right for you."
location = "/client#/teachers/search"
else