This is an automated email from the ASF dual-hosted git repository.
sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/whimsy.git
The following commit(s) were added to refs/heads/master by this push:
new 44cf0d7c Add initial reminder support
44cf0d7c is described below
commit 44cf0d7c671648c3a00e816f74b85329c920a8a5
Author: Sebb <[email protected]>
AuthorDate: Sat Jan 6 17:49:43 2024 +0000
Add initial reminder support
---
www/board/agenda/routes.rb | 28 ++++++++++++++++++++++
.../agenda/views/actions/send-reminders.json.rb | 26 ++++++++++++++++++++
2 files changed, 54 insertions(+)
diff --git a/www/board/agenda/routes.rb b/www/board/agenda/routes.rb
index 77cf0081..532e99e9 100755
--- a/www/board/agenda/routes.rb
+++ b/www/board/agenda/routes.rb
@@ -617,5 +617,33 @@ post %r{/(\d\d\d\d-\d\d-\d\d)/} do |date|
Agenda.update_cache agenda, agendapath, contents, false
end
+ auto_remind(date, agenda)
+
redirect to("/#{date}/")
end
+
+get %r{/testautoremind/(\d\d\d\d-\d\d-\d\d)/} do |date|
+ agenda = "board_agenda_#{date.gsub('-', '_')}.txt"
+ @dryrun = !Status.testnode? # For debug only!
+ _json auto_remind(date, agenda)
+end
+
+# Code to send initial reminders
+def auto_remind(date, agenda)
+ # draft reminder text
+ @reminder = 'reminder1' # reminder template
+ @tzlink =
ASF::Board.tzlink(ASF::Board::TIMEZONE.utc_to_local(ASF::Board.nextMeeting))
+ reminder = eval(File.read("views/actions/reminder-text.json.rb"))
+
+ # extract data
+ @subject = reminder[:subject]
+ @message = reminder[:body]
+
+ # send reminders and summary
+ @summary = 'reminder-summary' # template name
+ @sendsummary = true
+ @agenda = agenda
+ @meeting = date
+ @from = '"Board Chair" <[email protected]>'
+ eval(File.read("views/actions/send-reminders.json.rb"))
+end
diff --git a/www/board/agenda/views/actions/send-reminders.json.rb
b/www/board/agenda/views/actions/send-reminders.json.rb
index 9910c4a1..e3bf58ff 100644
--- a/www/board/agenda/views/actions/send-reminders.json.rb
+++ b/www/board/agenda/views/actions/send-reminders.json.rb
@@ -6,6 +6,7 @@ ASF::Mail.configure
sent = {}
unsent = []
+sent_emails = [] if @sendsummary # initial automated reminder
# extract values for common fields
from = @from
@@ -73,9 +74,34 @@ Agenda.parse(@agenda, :full).each do |item|
# deliver mail
mail.deliver! unless @dryrun
+
+ if @sendsummary # initial automated reminder
+ # Mustache is not able to iterate over a hash
+ sent_emails << {name: item['title'], emails: [mail.to,
mail.cc].flatten.join(',')}
+ end
sent[item['title']] = mail.to_s
end
# provide a response to the request
unsent += @pmcs - sent.keys if @pmcs
+if @sendsummary # initial automated reminder
+ view = {
+ meeting: @meeting,
+ agenda: @agenda,
+ unsent: unsent,
+ sent_emails: sent_emails,
+ }
+ render = AgendaTemplate.render(@summary, view)
+ subject = render[:subject]
+ body = render[:body]
+ mail = Mail.new do
+ from from
+ to from
+ subject subject
+ body body
+ end
+ mail.deliver! unless @dryrun
+ sent[:summary] = mail.to_s
+end
+
{count: sent.length, unsent: unsent, sent: sent, dryrun: @dryrun}