VRFS-4663 email pingpong done; not admin view

This commit is contained in:
Seth Call 2018-01-23 21:48:23 -06:00
parent 778e89e01f
commit badea60021
8 changed files with 26 additions and 17 deletions

View File

@ -381,4 +381,5 @@ sms_index_optimize.sql
amazon_signup.sql
age_out_sessions.sql
alter_crash_dumps.sql
onboarding.sql
onboarding.sql
better_lesson_notices.sql

View File

@ -0,0 +1 @@
ALTER TABLE lesson_sessions ADD COLUMN sent_counter_reminder_at TIMESTAMP without time zone;

View File

@ -3,7 +3,7 @@
<% content_for :note do %>
<p>
<%= @teacher.name %> proposed a different time 24 hours ago.
<%= @teacher.name %> proposed a different time a while back.
<br/>
<br/>
Please click the button below to respond.

View File

@ -1,3 +1,3 @@
<%= @teacher.name %> has proposed a different time 24 hours ago. Please respond.
<%= @teacher.name %> has proposed a different time a while back. Please respond.
To see this lesson, click here: <%= @lesson_session.web_url %>

View File

@ -3,7 +3,7 @@
<% content_for :note do %>
<p>
<%= @student.name %> has proposed a different time 24 hours ago.
<%= @student.name %> has proposed a different time a while back.
<br/>
<br/>
Please click the button below to respond.

View File

@ -1,3 +1,3 @@
<%= @student.name %> has proposed a different time 24 hours ago. Please respond.
<%= @student.name %> has proposed a different time a while back. Please respond.
To see this lesson, click here: <%= @lesson_session.web_url %>

View File

@ -142,16 +142,20 @@ module JamRuby
def self.remind_counters
MusicSession.joins(lesson_session: :lesson_booking)
.where('lesson_sessions.sent_counter_reminder = false AND lesson_bookings.recurring = FALSE')
.where('lesson_bookings.recurring = FALSE')
.where('lesson_sessions.status = ? OR lesson_sessions.status = ?', LessonSession::STATUS_REQUESTED, LessonSession::STATUS_COUNTERED)
.where("? > (COALESCE(lesson_sessions.countered_at, lesson_bookings.sent_notices_at) + (INTERVAL '24 hours'))", Time.now).each do |music_session|
.where("? > (COALESCE(lesson_sessions.sent_counter_reminder_at, lesson_sessions.countered_at, lesson_bookings.sent_notices_at) + (INTERVAL '24 hours'))", Time.now).each do |music_session|
lesson_session = music_session.lesson_session
if lesson_session.student_last_proposed?
relevant_time = [lesson_session.countered_at, lesson_session.lesson_booking.sent_notices_at].find{|x|!x.nil?}
UserMailer.student_no_comm_other(lesson_session.lesson_booking, relevant_time < Time.now - 3.days).deliver_now
UserMailer.teacher_counter_reminder(lesson_session).deliver_now
else
UserMailer.teacher_no_comm_other(lesson_session.lesson_booking).deliver_now
UserMailer.student_counter_reminder(lesson_session).deliver_now
end
lesson_session.sent_counter_reminder = true
lesson_session.sent_counter_reminder_at = Time.now
lesson_session.save(validate: false)
end
end

View File

@ -291,18 +291,19 @@ describe LessonSession do
lesson_session1.sent_counter_reminder.should be_false
lesson_session1.status.should eql LessonSession::STATUS_REQUESTED
mailer = mock
mailer.should_receive(:deliver_now).once
mailer.should_receive(:deliver_now).twice
UserMailer.should_receive(:teacher_counter_reminder).and_return(mailer)
UserMailer.should_receive(:student_no_comm_other).and_return(mailer)
LessonSession.remind_counters
lesson_session1.reload
lesson_session1.sent_counter_reminder.should be_false
lesson_session1.sent_counter_reminder_at.should be_nil
Timecop.travel(Date.today + 10)
LessonSession.remind_counters
lesson_session1.reload
lesson_session1.sent_counter_reminder.should be_true
lesson_session1.sent_counter_reminder_at.should_not be_nil
LessonSession.remind_counters
end
@ -311,36 +312,38 @@ describe LessonSession do
lesson_session1 = normal_lesson(user, teacher, {counter: true, counterer: user})
mailer = mock
mailer.should_receive(:deliver_now).once
mailer.should_receive(:deliver_now).twice
UserMailer.should_receive(:teacher_counter_reminder).and_return(mailer)
UserMailer.should_receive(:student_no_comm_other).and_return(mailer)
LessonSession.remind_counters
lesson_session1.reload
lesson_session1.sent_counter_reminder.should be_false
lesson_session1.sent_counter_reminder_at.should be_nil
Timecop.travel(Date.today + 10)
LessonSession.remind_counters
lesson_session1.reload
lesson_session1.sent_counter_reminder.should be_true
lesson_session1.sent_counter_reminder_at.should_not be_nil
end
it "finds old counter and pokes teacher" do
lesson_session1 = normal_lesson(user, teacher, {counter: true, counterer: teacher})
mailer = mock
mailer.should_receive(:deliver_now).once
mailer.should_receive(:deliver_now).twice
UserMailer.should_receive(:student_counter_reminder).and_return(mailer)
UserMailer.should_receive(:teacher_no_comm_other).and_return(mailer)
LessonSession.remind_counters
lesson_session1.reload
lesson_session1.sent_counter_reminder.should be_false
lesson_session1.sent_counter_reminder_at.should be_nil
Timecop.travel(Date.today + 10)
LessonSession.remind_counters
lesson_session1.reload
lesson_session1.sent_counter_reminder.should be_true
lesson_session1.sent_counter_reminder_at.should_not be_nil
end
end