summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2025-12-03 15:12:23 -0500
committerSacha Chua <sacha@sachachua.com>2025-12-03 15:12:23 -0500
commit6043dbe9dbc499132c98fb87023aa53c5a3f3fbc (patch)
tree56b91e850d794e954b649d154deb14e2b722fef8
parentf7033806b5f496d426ba6324aed9978a84a9a39e (diff)
downloademacsconf-el-6043dbe9dbc499132c98fb87023aa53c5a3f3fbc.tar.xz
emacsconf-el-6043dbe9dbc499132c98fb87023aa53c5a3f3fbc.zip
schedule update: filter for no change
-rw-r--r--emacsconf-mail.el27
-rw-r--r--emacsconf.el3
2 files changed, 23 insertions, 7 deletions
diff --git a/emacsconf-mail.el b/emacsconf-mail.el
index 03db1fc..986743b 100644
--- a/emacsconf-mail.el
+++ b/emacsconf-mail.el
@@ -1633,14 +1633,15 @@ ${signature}"))
(dolist (group groups)
(emacsconf-mail-prepare
(list
- :subject "${conf-name} ${year}: Schedule update as of ${date}"
+ :subject "${conf-name} ${year}: Schedule update as of ${date}: ${summary}"
:reply-to "emacsconf-submit@gnu.org, ${email}, ${user-email}"
:mail-followup-to "emacsconf-submit@gnu.org, ${email}, ${user-email}"
:log-note log-note
:body
"Hello, ${speakers-short}!
-We tweaked the schedule a bit to adapt to some cancellations. Your new schedule is:
+We tweaked the schedule a bit so that it's based on the current video lengths.
+Your new schedule is:
${schedule}
@@ -1657,6 +1658,20 @@ ${signature}")
:email (plist-get (car (cdr group)) :email)
:speakers-short (plist-get (car (cdr group)) :speakers-short)
:signature user-full-name
+ :summary
+ (mapconcat
+ (lambda (talk)
+ (let ((minutes (emacsconf-schedule-difference-from-emailed talk)))
+ (if (> (abs minutes) 0)
+ (format "%s: %s min %s"
+ (plist-get talk :slug)
+ (abs minutes)
+ (if (< minutes 0)
+ "earlier"
+ "later"))
+ "same time, different length")))
+ (cdr group)
+ "; ")
:schedule
(mapconcat (lambda (talk)
(emacsconf-indent-string (emacsconf-mail-format-talk-schedule talk (plist-get talk :emailed-schedule)) 2))
@@ -1675,13 +1690,13 @@ ${signature}")
:body
"Hello, ${speakers-short}!
-We tweaked the schedule a bit. Your new schedule is:
+ We tweaked the schedule a bit. Your new schedule is:
-${schedule}
+ ${schedule}
-Let us know if you need to reschedule!
+ Let us know if you need to reschedule!
-${signature}")
+ ${signature}")
(plist-get talk :email)
(list
:year emacsconf-year
diff --git a/emacsconf.el b/emacsconf.el
index 8eb749c..3e52257 100644
--- a/emacsconf.el
+++ b/emacsconf.el
@@ -2151,7 +2151,8 @@ With a prefix argument (\\[universal-argument]), open this year's notebook."
(plist-get o :qa-type)
(not (string= (plist-get o :emailed-schedule)
(replace-regexp-in-string "[<>]" "" (plist-get o :scheduled))))
- (not (string= (plist-get o :qa-type) "none"))))
+ (not (string= (plist-get o :qa-type) "none"))
+ (not (= (emacsconf-schedule-difference-from-emailed o) 0))))
(emacsconf-publish-prepare-for-display (emacsconf-filter-talks (or info (emacsconf-get-talk-info))))))
(defun emacsconf-schedule-difference-from-emailed (talk)