From 80ce7daccb7b1a8187860b2da188ab04ed4ad834 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Sat, 8 Oct 2022 21:56:42 -0400 Subject: Add check-sched e-mail template --- 2022/organizers-notebook/index.org | 136 ++++++++++++++++++++++++++++++------- 1 file changed, 112 insertions(+), 24 deletions(-) (limited to '2022/organizers-notebook/index.org') diff --git a/2022/organizers-notebook/index.org b/2022/organizers-notebook/index.org index 70bd7252..bd1afa74 100644 --- a/2022/organizers-notebook/index.org +++ b/2022/organizers-notebook/index.org @@ -104,21 +104,126 @@ Help wanted / upcoming tasks: You're receiving this e-mail because you're on the emacsconf-org mailing list. -*** TODO Remind people about confirming e-mail communications :sachac:email:speakers: -SCHEDULED: <2022-10-08 Sat> +*** DONE Remind people about confirming e-mail communications :sachac:email:speakers: +CLOSED: [2022-10-08 Sat 18:55] SCHEDULED: <2022-10-08 Sat> :PROPERTIES: :CUSTOM_ID: confirm-email :END: Look for the TO_CONFIRM status in conf.org, probably include in schedule e-mail - - +*** TODO Plan communication rhythm + +| | Speakers | Volunteers | +| [2022-09-30] | acceptance, reply to confirm | overall priorities | +| [2022-10-09 Sun] | schedule, reply if not okay | infra update | +| [2022-10-16 Sun] | | shifts | +| [2022-10-23 Sun] | file upload instructions | caption training? | +| [2022-10-30 Sun] | | | +| [2022-11-06 Sun] | prerec confirmation/reminder, caption progress | caption kickoff | +| [2022-11-13 Sun] | tech check | | +| [2022-11-20 Sun] | checkin instructions | | +| [2022-11-27 Sun] | last weekend before EmacsConf | | *** TODO Send people schedule information and doublecheck their availability/Q&A preference :sachac:email:speakers: SCHEDULED: <2022-10-08 Sat> :PROPERTIES: :CUSTOM_ID: check-sched :END: +#+begin_src emacs-lisp +(defun emacsconf-mail-schedule (group &optional template) + "Send draft schedule. +GROUP is (email . (talk talk))" + (interactive (list (emacsconf-mail-complete-email-group))) + (require 'emacsconf-ical) + (emacsconf-mail-prepare + (or template (emacsconf-mail-merge-get-template "check-sched")) + group + (list + :titles + (mapconcat (lambda (o) (format "%s %s" + (plist-get o :title) + (format-time-string + "%b %-e %I:%M %Z" + (plist-get o :start-time) + emacsconf-timezone))) + (cdr group) " and ") + :speakers-short + (plist-get (cadr group) :speakers-short) + :plural + (if (= (length (cdr group)) 1) "" "s") + :email + (plist-get (cadr group) :email) + :year + (or (plist-get (cadr group) :year) emacsconf-year) + :schedule + (mapconcat + (lambda (o) (format "\"%s\" (%s) - %s track\n%s" + (plist-get o :title) + (plist-get o :slug) + (plist-get o :track) + (string-join + (let ((emacsconf-timezones + (if (plist-get o :timezone) + (seq-uniq (list emacsconf-timezone (plist-get o :timezone) "UTC")) + emacsconf-timezones))) + (emacsconf-timezone-strings o)) + "\n"))) + (cdr group) + "\n----------------------------------------------------------------\n") + :timezone-note + (if (plist-get (cadr group) :timezone) + (format "I've included a conversion to the %s timezone. Let me know if you'd like me to use a different timezone in future e-mails." + (plist-get (cadr group) :timezone)) + "I can translate times into your local timezone. Let me know what timezone you'd like me to use.") + :availability-note + (if (seq-find (lambda (o) (string-match "yes" (or (plist-get o :availability) ""))) (cdr group)) + (format "I think you've indicated that you're available during the conference.") + (format "I think it respects your indicated availability, which we've noted as %s. " + (string-join + (seq-uniq + (mapcar + (lambda (o) (format "\"%s\"" (plist-get o :availability))) + (cdr group))) + " and ")))))) +#+end_src + +**** Template +:PROPERTIES: +:EMAIL_ID: check-sched +:SUBJECT: EmacsConf draft schedule: ${titles} +:REPLY_TO: emacsconf-submit@gnu.org, ${email} +:MAIL_FOLLOWUP_TO: emacsconf-submit@gnu.org, ${email} +:FUNCTION: emacsconf-mail-schedule +:END: +Hi, ${speakers-short}! + +Here's the tentative schedule for when your EmacsConf talk${plural} +will be streamed. Your talk${plural} will be streamed once, but I've +included a few timezone conversions for convenience. + +---------------------------------------------------------------- +${schedule} +---------------------------------------------------------------- + +You'll also have time for Q&A afterwards, which can be as short or as +long as you like. We'll send you more information about how the Q&A +will work as the conference gets closer. + +If you'd like to see the other talks for context, please check out the +draft schedule at https://emacsconf.org/${year}/draft-schedule/ . The +times may move around a bit as we update the schedule, so I'll check +in with you if things change a lot. + +${availability-note} Please let us know if the times don't work for +you or if you think your talk would go better next to a different +talk. We're aiming to publish the schedule by *Oct 15*, so we'd love +to hear from you by then if we need to tweak things. We can +shuffle things around even after that date if something comes up. +${timezone-note} Please keep emacsconf-submit@gnu.org in To or Cc when +replying. Thanks!${wrap} + +Sacha + *** TODO Send program-published email for emacsconf-discuss :needsowner:timesensitive:email: DEADLINE: <2022-10-14 Fri> SCHEDULED: <2022-10-11 Tue> :PROPERTIES: @@ -1810,17 +1915,10 @@ Objectives for this e-mail: - Ask for public contact information or any changes to the wiki page #+begin_src emacs-lisp + (defun emacsconf-draft-acceptance-for-email-group (group &optional template) "GROUP is (email . (talk talk))." - (interactive - (list - (save-window-excursion - (let* ((emacsconf-talk-info-functions (append emacsconf-talk-info-functions '(emacsconf-get-talk-comments-from-subtree))) - (info (emacsconf-filter-talks (emacsconf-get-talk-info))) - (grouped (seq-group-by (lambda (o) (plist-get o :email)) info)) - (slug (emacsconf-get-slug-from-string (emacsconf-complete-talk))) - (email (plist-get (seq-find (lambda (o) (string= (plist-get o :slug) slug)) info) :email))) - (assoc email grouped))))) + (interactive (list (emacsconf-mail-complete-email-group))) (let* ((template (or template (emacsconf-mail-merge-get-template "acceptance"))) (talks (cdr group)) (first (car talks)) @@ -1875,17 +1973,7 @@ Objectives for this e-mail: :prerec-target (format-time-string "%b %-e" prerec-target))) (plist-get o :acceptance-comment)) 72))) talks "\n---------------------------------------------------------------------\n")))) - (compose-mail - (car group) - (emacsconf-replace-plist-in-string attrs (plist-get template :subject)) - `(("Reply-To" . ,(emacsconf-replace-plist-in-string attrs (plist-get template :reply-to))) - ("Mail-Followup-To" . ,(emacsconf-replace-plist-in-string attrs (plist-get template :mail-followup-to))) - ("Cc" . ,(plist-get template :cc)))) - (message-sort-headers) - (message-goto-body) - (save-excursion (insert (emacsconf-replace-plist-in-string attrs (plist-get template :body))) - (goto-char (point-min)) - (emacsconf-mail-merge-wrap)))) + (emacsconf-mail-prepare template group attrs))) (defun emacsconf-draft-all-acceptances () (interactive) -- cgit v1.2.3