summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel van der Boom <marcel@hsdev.com>2011-03-28 22:21:49 +0000
committerCarsten Dominik <carsten.dominik@gmail.com>2011-05-24 15:18:25 +0200
commit7c4360823a132107d4af04aca673dcd6c3cfd453 (patch)
tree0c33301ff06892b0e69efa2335644dc045b49114
parentfa12fe82e9fb16a93dc2be6b8026aa43cc4a0f95 (diff)
downloadorg-mode-7c4360823a132107d4af04aca673dcd6c3cfd453.tar.gz
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
-rw-r--r--contrib/lisp/org-expiry.el40
1 files changed, 27 insertions, 13 deletions
diff --git a/contrib/lisp/org-expiry.el b/contrib/lisp/org-expiry.el
index 4a49399..930b921 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: