2016-04-21 14:23:29 +00:00
|
|
|
context = window
|
|
|
|
|
teacherActions = window.JK.Actions.Teacher
|
|
|
|
|
|
|
|
|
|
@PostProcessorMixin = {
|
|
|
|
|
|
|
|
|
|
postProcessLesson: (lesson) ->
|
|
|
|
|
|
2016-05-19 18:26:37 +00:00
|
|
|
if lesson.student_id == context.JK.currentUserId
|
2016-04-21 14:23:29 +00:00
|
|
|
me = lesson.student
|
|
|
|
|
other = lesson.teacher
|
2016-05-20 02:42:27 +00:00
|
|
|
lesson.isStudent = true
|
|
|
|
|
lesson.isTeacher = false
|
2016-04-21 14:23:29 +00:00
|
|
|
lesson.hasUnreadMessages = lesson['student_unread_messages']
|
|
|
|
|
else
|
|
|
|
|
me = lesson.teacher
|
|
|
|
|
other = lesson.student
|
2016-05-20 02:42:27 +00:00
|
|
|
lesson.isStudent = false
|
|
|
|
|
lesson.isTeacher = true
|
2016-04-21 14:23:29 +00:00
|
|
|
lesson.hasUnreadMessages = lesson['teacher_unread_messages']
|
|
|
|
|
|
|
|
|
|
lesson.me = me
|
|
|
|
|
lesson.other = other
|
|
|
|
|
lesson.isAdmin = context.JK.currentUserAdmin
|
2017-03-22 12:39:06 +00:00
|
|
|
lesson.noSchoolOnSchoolPayment = !lesson['payment_if_school_on_school?']
|
2016-09-08 10:59:58 +00:00
|
|
|
|
|
|
|
|
lesson.cardNotOk = !lesson.lesson_booking.card_presumed_ok && lesson.payment_if_school_on_school?
|
2016-05-31 13:35:04 +00:00
|
|
|
lesson.isActive = lesson['is_active?']
|
2016-04-21 14:23:29 +00:00
|
|
|
if (lesson.status == 'requested' || lesson.status == 'countered')
|
|
|
|
|
lesson.isRequested = true
|
|
|
|
|
if lesson.cardNotOk
|
|
|
|
|
lesson.displayStatus = 'No Card'
|
|
|
|
|
else
|
|
|
|
|
lesson.displayStatus = 'Requested'
|
|
|
|
|
if lesson['is_active?'] && (lesson.status == 'approved' )
|
|
|
|
|
lesson.isScheduled = true
|
|
|
|
|
lesson.displayStatus = 'Scheduled'
|
|
|
|
|
|
|
|
|
|
if !lesson.displayStatus?
|
2016-05-28 23:48:40 +00:00
|
|
|
if lesson.status == 'unconfirmed'
|
|
|
|
|
lesson.displayStatus = 'Unconfirmed'
|
|
|
|
|
else if lesson.status == 'canceled'
|
2016-04-21 14:23:29 +00:00
|
|
|
lesson.displayStatus = 'Canceled'
|
2016-05-19 18:26:37 +00:00
|
|
|
if lesson.student_canceled
|
2017-07-10 02:21:29 +00:00
|
|
|
lesson.displayStatus = 'Canceled (by Student)'
|
2016-05-19 18:26:37 +00:00
|
|
|
else if lesson.teacher_canceled
|
2017-07-10 02:21:29 +00:00
|
|
|
lesson.displayStatus = 'Canceled (by Teacher)'
|
2016-05-19 18:26:37 +00:00
|
|
|
|
2016-04-21 14:23:29 +00:00
|
|
|
else if lesson.status == 'suspended'
|
|
|
|
|
lesson.displayStatus = 'Suspended'
|
|
|
|
|
else
|
2016-05-19 18:26:37 +00:00
|
|
|
lesson.missed = true
|
2016-05-27 01:32:58 +00:00
|
|
|
lesson.missedRole = 'the teacher'
|
2016-05-19 18:26:37 +00:00
|
|
|
lesson.missedUser = lesson.teacher
|
2016-05-20 02:42:27 +00:00
|
|
|
|
2016-05-27 01:32:58 +00:00
|
|
|
if lesson.success
|
|
|
|
|
lesson.missed = false
|
|
|
|
|
lesson.missedRole = null
|
|
|
|
|
lesson.displayStatus = 'Completed'
|
2016-05-19 18:26:37 +00:00
|
|
|
else
|
2016-05-27 01:32:58 +00:00
|
|
|
if lesson.analysis?.teacher_analysis?.missed && lesson.analysis?.student_analysis?.missed
|
|
|
|
|
lesson.missedRole = 'both student and teacher'
|
|
|
|
|
lesson.missedUser = lesson.teacher
|
2017-07-10 02:21:29 +00:00
|
|
|
lesson.displayStatus = 'Missed (by Both)'
|
2016-05-27 01:32:58 +00:00
|
|
|
else if lesson.analysis?.teacher_analysis?.missed
|
|
|
|
|
lesson.missedRole = 'the teacher'
|
|
|
|
|
lesson.missedUser = lesson.teacher
|
2017-07-10 02:21:29 +00:00
|
|
|
lesson.displayStatus = 'Missed (by Teacher)'
|
2016-05-27 01:32:58 +00:00
|
|
|
else if lesson.analysis?.student_analysis?.missed
|
|
|
|
|
lesson.missedRole = 'the student'
|
|
|
|
|
lesson.missedUser = lesson.student
|
2017-07-10 02:21:29 +00:00
|
|
|
lesson.displayStatus = 'Missed (by Student)'
|
2016-05-20 02:42:27 +00:00
|
|
|
else
|
|
|
|
|
lesson.displayStatus = 'Missed'
|
2016-04-21 14:23:29 +00:00
|
|
|
|
|
|
|
|
@postProcessUser(me)
|
|
|
|
|
@postProcessUser(other)
|
|
|
|
|
|
|
|
|
|
postProcessUser: (user) ->
|
|
|
|
|
if !user.photo_url?
|
|
|
|
|
user.resolved_photo_url = '/assets/shared/avatar_generic.png'
|
|
|
|
|
else
|
|
|
|
|
user.resolved_photo_url = user.photo_url
|
|
|
|
|
if user.teacher?
|
|
|
|
|
user.teacher_profile = '/client#/profile/teacher/' + user.id
|
|
|
|
|
user.best_profile = user.teacher_profile
|
|
|
|
|
else
|
|
|
|
|
user.musician_profile = '/client#/profile/' + user.id
|
|
|
|
|
user.best_profile = user.musician_profile
|
|
|
|
|
|
2016-05-08 02:17:19 +00:00
|
|
|
if user.is_a_teacher && user.teacher?
|
2016-05-05 02:20:38 +00:00
|
|
|
cheapest_lesson_stmt = '(no pricing set yet)'
|
|
|
|
|
lowestPrice = null
|
|
|
|
|
lowestDuration = null
|
|
|
|
|
single = true
|
|
|
|
|
enabledMinutes = []
|
|
|
|
|
for minutes in [30, 45, 60, 90, 120]
|
|
|
|
|
duration_enabled = user.teacher["lesson_duration_#{minutes}"]
|
|
|
|
|
|
|
|
|
|
if duration_enabled
|
|
|
|
|
enabledMinutes.push(minutes)
|
|
|
|
|
if user.teacher.prices_per_lesson
|
|
|
|
|
for minutes in enabledMinutes
|
|
|
|
|
lesson_price = user.teacher["price_per_lesson_#{minutes}_cents"]
|
|
|
|
|
if lesson_price?
|
|
|
|
|
if !lowestPrice? || lesson_price < lowestPrice
|
|
|
|
|
lowestPrice = lesson_price
|
|
|
|
|
single = true
|
|
|
|
|
lowestDuration = minutes
|
|
|
|
|
for minutes in enabledMinutes
|
|
|
|
|
lesson_price = user.teacher["price_per_month_#{minutes}_cents"]
|
|
|
|
|
if lesson_price?
|
|
|
|
|
if !lowestPrice? || (lesson_price / 4) < lowestPrice
|
|
|
|
|
lowestPrice = lesson_price / 4
|
|
|
|
|
single = false
|
|
|
|
|
lowestDuration = minutes
|
|
|
|
|
|
|
|
|
|
if lowestPrice?
|
|
|
|
|
if single
|
|
|
|
|
# lowest price appears to be a single lesson
|
|
|
|
|
cheapest_lesson_stmt = "$#{lowestPrice / 100} for #{lowestDuration} minutes"
|
|
|
|
|
else
|
|
|
|
|
# lowest price appears to be a monthly recurring lesson
|
|
|
|
|
cheapest_lesson_stmt = "$#{Math.round(lowestPrice * 4) / 100} per month"
|
|
|
|
|
|
|
|
|
|
user.cheapest_lesson_stmt = cheapest_lesson_stmt
|
2016-04-21 14:23:29 +00:00
|
|
|
}
|