Hi James,
this small patch against current org-colview.el lets you have a custom
function for computing a "summary" of a property and displaying it in
the column.
To compute the time since the timestamp, you can use this patch and some
of your code like this:
--8<---------------cut here---------------start------------->8---
(setq org-columns-custom-summary-function
'my-org-compute-since)
(defun org-time-since (time)
"Get the number of days since `time'"
(time-to-number-of-days
(time-since (apply 'encode-time
(org-parse-time-string time)))))
(defun my-org-compute-since (&rest values)
"Eval elapsted days since the entry's timestamp."
(let* ((ts (org-entry-get (point) "TIMESTAMP")))
(when ts (org-time-since ts))))
--8<---------------cut here---------------end--------------->8---
This patch is just a workaround, though. I think we should have a way
of adding more than one custom function, as Mikael Fornius suggested
when sending his first patch.
Let's see what's Carsten take on this.
Thanks!
diff --git a/lisp/org-colview.el b/lisp/org-colview.el
index d132bf6..b312d35 100644
--- a/lisp/org-colview.el
+++ b/lisp/org-colview.el
@@ -698,20 +698,30 @@ around it."
(org-columns-display-here (cdr x)))
cache)))))
+(defcustom org-columns-custom-summary-function nil
+ "A user-defined custom summary function.
+This function takes one argument: a list containing the values of
+all children for the summarized property. This function should
+return a number."
+ :group 'org-link
+ :type 'function)
+
(defvar org-columns-compile-map
- '(("none" none +)
- (":" add_times +)
- ("+" add_numbers +)
- ("$" currency +)
- ("X" checkbox +)
- ("X/" checkbox-n-of-m +)
- ("X%" checkbox-percent +)
- ("max" max_numbers max)
- ("min" min_numbers min)
- ("mean" mean_numbers (lambda (&rest x) (/ (apply '+ x) (float (length x)))))
- (":max" max_times max)
- (":min" min_times min)
- (":mean" mean_times (lambda (&rest x) (/ (apply '+ x) (float (length x))))))
+ '(("none" none +)
+ (":" add_times +)
+ ("+" add_numbers +)
+ ("$" currency +)
+ ("X" checkbox +)
+ ("X/" checkbox-n-of-m +)
+ ("X%" checkbox-percent +)
+ ("max" max_numbers max)
+ ("min" min_numbers min)
+ ("mean" mean_numbers (lambda (&rest x) (/ (apply '+ x) (float (length x)))))
+ (":max" max_times max)
+ (":min" min_times min)
+ (":mean" mean_times (lambda (&rest x) (/ (apply '+ x) (float (length x)))))
+ ("custom" custom_function (lambda (&rest x)
+ (funcall org-columns-custom-summary-function x))))
"Operator <-> format,function map.
Used to compile/uncompile columns format and completing read in
interactive function org-columns-new.")
--
Bastien
_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-orgmode