From 529d3fc891bd8c48d044d65ee32264bb4d81d9a8 Mon Sep 17 00:00:00 2001 From: Nuwan Date: Thu, 26 Jan 2023 00:30:17 +0530 Subject: [PATCH] show last active time in words in user recommendation email show the last active time using action_view time_ago_in_words helper --- ruby/Gemfile | 1 + ruby/lib/jam_ruby.rb | 1 + ruby/lib/jam_ruby/app/mailers/user_mailer.rb | 2 +- .../jam_ruby/user_mailer/new_musicians_match.html.erb | 2 +- .../jam_ruby/user_mailer/new_musicians_match.text.erb | 2 +- ruby/lib/jam_ruby/lib/email_new_musician_match.rb | 8 +++++++- 6 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ruby/Gemfile b/ruby/Gemfile index 78b244e46..5f003bb89 100644 --- a/ruby/Gemfile +++ b/ruby/Gemfile @@ -31,6 +31,7 @@ end gem 'activerecord', '= 4.2.8' gem 'railties', '= 4.2.8' gem 'actionmailer', '= 4.2.8' +gem 'actionview', '= 4.2.8' gem 'rails-observers', '0.1.2' gem 'protected_attributes' # needed to support attr_accessible diff --git a/ruby/lib/jam_ruby.rb b/ruby/lib/jam_ruby.rb index 28222b0c3..2c924b622 100755 --- a/ruby/lib/jam_ruby.rb +++ b/ruby/lib/jam_ruby.rb @@ -30,6 +30,7 @@ require 'tzinfo' require 'stripe' require 'zip-codes' require 'email_validator' +require 'action_view' ActiveRecord::Base.raise_in_transactional_callbacks = true require "jam_ruby/lib/timezone" diff --git a/ruby/lib/jam_ruby/app/mailers/user_mailer.rb b/ruby/lib/jam_ruby/app/mailers/user_mailer.rb index 8855a235b..f407f938c 100644 --- a/ruby/lib/jam_ruby/app/mailers/user_mailer.rb +++ b/ruby/lib/jam_ruby/app/mailers/user_mailer.rb @@ -414,7 +414,7 @@ module JamRuby mail(:to => user.email, :subject => EmailNewMusicianMatch.subject) do |format| format.text - format.html { render layout: "user_mailer_beta" } + #format.html { render layout: "user_mailer_beta" } end end diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/new_musicians_match.html.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/new_musicians_match.html.erb index 95a515fc9..abc7a4c80 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/new_musicians_match.html.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/new_musicians_match.html.erb @@ -83,7 +83,7 @@
<%= musician.first_name %> <%= musician.last_name %>
Latency To You: <%= latency_info(latency) %>
<% if musician.last_active_timestamp -%> -
Last Active On: <%= Time.at(musician.last_active_timestamp).strftime('%m-%d-%Y %H:%M') %>
+
Last Active On: <%= time_ago_in_words(Time.at(musician.last_active_timestamp)) %> ago
<% end -%>
diff --git a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/new_musicians_match.text.erb b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/new_musicians_match.text.erb index 06a801014..30d6cb449 100644 --- a/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/new_musicians_match.text.erb +++ b/ruby/lib/jam_ruby/app/views/jam_ruby/user_mailer/new_musicians_match.text.erb @@ -15,7 +15,7 @@ The following musicians have joined JamKazam within the last week and have low i <%= musician.first_name %> <%= musician.last_name %> Latency To You: <%= latency_info(latency) %> <% if musician.last_active_timestamp -%> - Last Active On: <%= Time.at(musician.last_active_timestamp).strftime('%m-%d-%Y %H:%M') %> ago + Last Active On: <%= time_ago_in_words(Time.at(musician.last_active_timestamp)) %> ago <% end -%> <% musician.musician_instruments.each do |mi| -%> <%= mi.description %> (<%= @instrument_proficiencies[mi.proficiency_level.to_s.to_sym] %>) diff --git a/ruby/lib/jam_ruby/lib/email_new_musician_match.rb b/ruby/lib/jam_ruby/lib/email_new_musician_match.rb index e4887cb69..2e4ccbf5c 100644 --- a/ruby/lib/jam_ruby/lib/email_new_musician_match.rb +++ b/ruby/lib/jam_ruby/lib/email_new_musician_match.rb @@ -33,7 +33,13 @@ module JamRuby begin - recipients = User.where("users.subscribe_email = ? AND users.subscribe_email_for_user_match = ? AND NOT COALESCE(users.user_match_email_sent_at, ?) > ?", true, true, 7.days.ago, 6.days.ago).where.not(id: email_sending.sent_user_ids).order("CASE WHEN users.email IN ('#{PRIORITY_RECIPIENTS.map {|str| "\"#{str}\""}.join(',')}') THEN 0 ELSE 1 END, last_active_at DESC").select("users.*, GREATEST(updated_at, last_jam_updated_at) AS last_active_at") + recipients = User.where("users.subscribe_email = ? AND + users.subscribe_email_for_user_match = ? + AND NOT COALESCE(users.user_match_email_sent_at, ?) > ?", + true, true, 7.days.ago, 6.days.ago).where.not(id: email_sending.sent_user_ids).order(" + CASE WHEN users.email IN ('#{PRIORITY_RECIPIENTS.map {|str| "\"#{str}\""}.join(',')}') + THEN 0 ELSE 1 END, last_active_at DESC").select("users.*, + GREATEST(updated_at, last_jam_updated_at) AS last_active_at") AdminMailer.ugly({to: APP_CONFIG.user_match_monitoring_email, subject:"Weekly user match email sending job started.",