emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Orgmode] Re: Sorting TODOs with time-up


From: Carsten Dominik
Subject: Re: [Orgmode] Re: Sorting TODOs with time-up
Date: Mon, 30 Mar 2009 19:59:29 +0200


On Mar 30, 2009, at 4:46 PM, David Engster wrote:

Matthew Lundin <address@hidden> writes:
David Engster <address@hidden> writes:
I guess this should be simple but somehow it's not working for me. I
want to generate a todo list which is sorted according to the scheduled
date. Consider the following test.org file:

[...]

This minimal setup

(setq org-agenda-files '("~/orgtest/test.org"))
(setq org-agenda-sorting-strategy
     '((agenda time-up priority-down category-keep)
        (todo time-up priority-down category-keep)
        (tags priority-down category-keep)
        (search category-keep)))

should sort TODOs according to time, right? But when I do

As far as I understand it, time-up sorts only by time of day in the
agenda view. I.e., it will place items that have been scheduled for a
particular hour at the top of the agenda.

Here's some info from the docstring:

,----
| time-up Put entries with time-of-day indications first, early first | time-down Put entries with time-of-day indications first, late first
|
| Pull out all entries having a specified time of day and sort them,
| in order to make a time schedule for the current day the first thing in the
| agenda listing for the day.
`----

Thanks for the clarification. This is a bit confusing, since sorting by
priority works in the todo list, but sorting with date does not. Also,
since I call the function 'org-agenda', it is a bit unexpected that when
I press 't' afterwards I don't really get an agenda but a TODO list,
which seems to behave differently in some aspects from the normal agenda
view I get when pressing 'a'.

Yes, this is bad terminology, which evolved historically.

"org-agenda" is a dispatcher for the different views that we call "agenda views".

One of the "agenda views" is the global todo list (on `t'), another one is the "daily/weekly agenda" (on `'a), which is a list of what is due today or this week. I always try to call it explicitly "daily/weekly agenda" to avoid some of that confusion, but I agree, if I'd get a chance to start again I would use better terms. Now these are so engrained in our mailing list culture and into tutorials etc that I do not dare to change them anymore.


There is the possibility of using a user-defined function. Perhaps you
could use that to sort by date.

,----
| user-defined-up Sort according to `org-agenda-cmp-user- defined', high last. | user-defined-down Sort according to `org-agenda-cmp-user- defined', high first.
`----

Unfortunately, this does not help, since there is no time information in
the entries 'a' and 'b' to sort by; it seems the timestamps are simply
not extracted when building TODO lists.

Yes can use the text property on a, `org-hd-marker', which is a marker pointing to the original location of the item. You can make your function go back to get this information.

For example with
 (org-entry-get (get-text-property 0 'org-hd-marker a) "SCHEDULED")

The most efficient implementation would be to first check if there is a `scheduled-time' or so property on the items. If yes, use it. If not, get the property and store it in a text property. This will be efficient because each item will probably be tested several times during the sorting.

The information is not extracted by default because that would take extra parsing time and it is usually not needed.

- Carsten





reply via email to

[Prev in Thread] Current Thread [Next in Thread]