org-contacts: added custom org-contacts-birthday-format

Signed-off-by: Rüdiger Sonderfeld <ruediger@c-plusplus.de>
Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
Rüdiger Sonderfeld 2011-04-30 18:16:35 +02:00 committed by Julien Danjou
parent 2f0d7e94dd
commit 6e66e4a769

View file

@ -59,6 +59,16 @@ If set to nil, all your Org files will be used."
:type 'string :type 'string
:group 'org-contacts) :group 'org-contacts)
(defcustom org-contacts-birthday-format "Birthday: %l (%Y)"
"Format of the anniversary agenda entry. The following replacements are available:
%h - Heading name
%l - Link to the heading
%y - Number of year
%Y - Number of year (ordinal)"
:type 'string
:group 'org-contacts)
(defcustom org-contacts-last-read-mail-property "LAST_READ_MAIL" (defcustom org-contacts-last-read-mail-property "LAST_READ_MAIL"
"Name of the property for contact last read email link storage." "Name of the property for contact last read email link storage."
:type 'string :type 'string
@ -263,6 +273,7 @@ Format is a string matching the following format specification:
%Y - Number of year (ordinal)" %Y - Number of year (ordinal)"
(let ((calendar-date-style 'american) (let ((calendar-date-style 'american)
(entry "")) (entry ""))
(unless format (setq format org-contacts-birthday-format))
(loop for contact in (org-contacts-filter) (loop for contact in (org-contacts-filter)
for anniv = (let ((anniv (cdr (assoc-string for anniv = (let ((anniv (cdr (assoc-string
(or field org-contacts-birthday-property) (or field org-contacts-birthday-property)
@ -272,7 +283,7 @@ Format is a string matching the following format specification:
(org-time-string-to-absolute anniv)))) (org-time-string-to-absolute anniv))))
;; Use `diary-anniversary' to compute anniversary. ;; Use `diary-anniversary' to compute anniversary.
if (and anniv (apply 'diary-anniversary anniv)) if (and anniv (apply 'diary-anniversary anniv))
collect (format-spec (or format "Birthday: %l (%Y)") collect (format-spec format
`((?l . ,(org-with-point-at (cadr contact) (org-store-link nil))) `((?l . ,(org-with-point-at (cadr contact) (org-store-link nil)))
(?h . ,(car contact)) (?h . ,(car contact))
(?y . ,(- (calendar-extract-year date) (?y . ,(- (calendar-extract-year date)