diff options
author | Marcel van der Boom <marcel@hsdev.com> | 2011-03-28 22:21:49 +0000 |
---|---|---|
committer | Carsten Dominik <carsten.dominik@gmail.com> | 2011-05-24 15:18:25 +0200 |
commit | 7c4360823a132107d4af04aca673dcd6c3cfd453 (patch) | |
tree | 0c33301ff06892b0e69efa2335644dc045b49114 /contrib | |
parent | fa12fe82e9fb16a93dc2be6b8026aa43cc4a0f95 (diff) |
Allow inactive timestamps in org-expiry
* contrib/lisp/org-expiry.el (org-expiry-inactive-timestamps): New option.
(org-expiry-insert-created):
(org-expiry-insert-expiry): Honor `org-expiry-inactive-timestamps'.
Attached is a patch to org-expiry.el in contrib/lisp to allow a
customization of the timestamps inserted by org-expiry for 'CREATED'
and 'EXPIRED' properties.
This patch is what is attached to the message displayed at [1]. I have
been using this patch for a while and it works fine. From searching it
looks like this patch was 'forgotten', but I may have overlooked
something.
If the patch was rejected, you can ignore me. If it was forgotten I'd
like to request to include it.
Thx,
marcel
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/lisp/org-expiry.el | 40 |
1 files changed, 27 insertions, 13 deletions
diff --git a/contrib/lisp/org-expiry.el b/contrib/lisp/org-expiry.el index 4a4939941..930b92128 100644 --- a/contrib/lisp/org-expiry.el +++ b/contrib/lisp/org-expiry.el @@ -81,6 +81,11 @@ :tag "Org Expiry" :group 'org) +(defcustom org-expiry-inactive-timestamps nil + "Insert inactive timestamps for the created and expired time properties" + :type 'boolean + :group 'org-expiry) + (defcustom org-expiry-created-property-name "CREATED" "The name of the property for setting the creation date." :type 'string @@ -283,21 +288,25 @@ to today's date. With two `C-u' prefixes, prompt the user for to update the date." (interactive "P") (let* ((d (org-entry-get (point) org-expiry-created-property-name)) - d-time d-hour) + d-time d-hour timestr) (when (or (null d) arg) ;; update if no date or non-nil prefix argument ;; FIXME Use `org-time-string-to-time' - (setq d-time (if d (apply 'encode-time (org-parse-time-string d)) + (setq d-time (if d (org-time-string-to-time d) (current-time))) (setq d-hour (format-time-string "%H:%M" d-time)) + (setq timestr + ;; two C-u prefixes will call org-read-date + (if (equal arg '(16)) + (concat "<" (org-read-date + nil nil nil nil d-time d-hour) ">") + (format-time-string (cdr org-time-stamp-formats)))) + ;; maybe transform to inactive timestamp + (if org-expiry-inactive-timestamps + (setq timestr (concat "[" (substring timestr 1 -1) "]"))) (save-excursion (org-entry-put - (point) org-expiry-created-property-name - ;; two C-u prefixes will call org-read-date - (if (equal arg '(16)) - (concat "<" (org-read-date - nil nil nil nil d-time d-hour) ">") - (format-time-string (cdr org-time-stamp-formats)))))))) + (point) org-expiry-created-property-name timestr))))) (defun org-expiry-insert-expiry (&optional today) "Insert a property with the expiry date. @@ -306,15 +315,20 @@ and insert today's date." (interactive "P") (let* ((d (org-entry-get (point) org-expiry-expiry-property-name)) d-time d-hour) - (setq d-time (if d (apply 'encode-time (org-parse-time-string d)) + (setq d-time (if d (org-time-string-to-time d) (current-time))) (setq d-hour (format-time-string "%H:%M" d-time)) + (setq timestr (if today + (format-time-string (cdr org-time-stamp-formats)) + (concat "<" (org-read-date + nil nil nil nil d-time d-hour) ">"))) + ;; maybe transform to inactive timestamp + (if org-expiry-inactive-timestamps + (setq timestr (concat "[" (substring timestr 1 -1) "]"))) + (save-excursion (org-entry-put - (point) org-expiry-expiry-property-name - (if today (format-time-string (cdr org-time-stamp-formats)) - (concat "<" (org-read-date - nil nil nil nil d-time d-hour) ">")))))) + (point) org-expiry-expiry-property-name timestr)))) ;;; Functions to process expired entries: |