summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSacha Chua <sacha@sachachua.com>2022-10-05 12:02:40 -0400
committerSacha Chua <sacha@sachachua.com>2022-10-05 12:02:40 -0400
commit193f6d72f4041dd7121ccc4a1e4895aa0f2a52e1 (patch)
tree6351f5f8e4216b694614cfec97feeef7c8d907f7
parentf6016436257242a83355b7d710451c62164d6dfc (diff)
downloademacsconf-el-193f6d72f4041dd7121ccc4a1e4895aa0f2a52e1.tar.xz
emacsconf-el-193f6d72f4041dd7121ccc4a1e4895aa0f2a52e1.zip
Add emacsconf-validate-talk-subtree
-rw-r--r--emacsconf.el11
1 files changed, 11 insertions, 0 deletions
diff --git a/emacsconf.el b/emacsconf.el
index 6d0e5ae..81caa56 100644
--- a/emacsconf.el
+++ b/emacsconf.el
@@ -753,6 +753,17 @@ Include some other things, too, such as emacsconf-year, title, name, email, url,
"Remove CANCELLED talks from the list."
(seq-remove (lambda (o) (string= (plist-get o :status) "CANCELLED")) list))
+(defun emacsconf-validate-talk-subtree ()
+ "Report an error if required properties are missing."
+ (interactive)
+ (let* ((props (org-entry-properties))
+ (missing (seq-remove
+ (lambda (o) (assoc-default (symbol-name o) props))
+ '(CUSTOM_ID SLUG NAME NAME_SHORT EMAIL AVAILABILITY Q_AND_A TRACK MAX_TIME))))
+ (when missing
+ (if (called-interactively-p 'any)
+ (message "Missing %s" (mapconcat #'symbol-name missing ", "))
+ (format "Missing %s" (mapconcat #'symbol-name missing ", "))))))
(provide 'emacsconf)
;;; emacsconf.el ends here