From: Carsten Dominik <carsten.dominik@gmail.com>
To: Carsten Dominik <carsten.dominik@gmail.com>
Cc: Org Mode Mailing List <emacs-orgmode@gnu.org>
Subject: Re: sorting entries on date created?
Date: Wed, 6 May 2009 12:19:39 +0200 [thread overview]
Message-ID: <7217648F-CC0D-4C63-A2B6-74790219AC92@gmail.com> (raw)
In-Reply-To: <4F34046E-A8EF-4A08-9D8F-C0F80CAE9DE0@gmail.com>
On May 6, 2009, at 10:11 AM, Carsten Dominik wrote:
>
> On Apr 29, 2009, at 7:41 PM, Nick Dokos wrote:
>
>> Marko Schütz <MarkoSchuetz@web.de> wrote:
>>
>>> I use remember to add todo entries. Mine look like this
>>>
>>> ** TODO kpdf as standard pdf viewer from auctex
>>> [2008-07-19 Sat]
>>>
>>> where the inactive timestamp is added at creation.
>>>
>>> I'd like to use org-sort to sort such entries by creation date. I'd
>>> assume I could use sorting-type ?f with a suitable getkey-func.
>>> So, is
>>> there already a function in org that I could use to extract this
>>> date?
>>>
>>
>> Not sure if this helps (it does not answer your question directly):
>>
>> There are two places in org-sort-entries-or-items (which is called by
>> org-sort under the conditions at hand) where a regexp, org-ts-
>> regexp, is
>> used when sorting-type is selected to be ?t: one is for when you are
>> sorting plain lists and the other is when you are sorting top-level
>> entries or the active region. If you change the relevant instance of
>> org-ts-regexp to org-ts-regexp-both, it will match both active and
>> inactive timestamps and sort appropriately. I have not tried to
>> figure
>> out what happens if there are multiple timestamps, active or
>> inactive,
>> in an entry. But if you just have a single inactive timestamp per
>> entry,
>> as you have indicated above, that should work.
>
> Hi
>
> the real problem is to find the correct time stamp even in entries
> that have multiple time stamps, just as Nick is saying.
>
> Your best bet will indeed be to write a custom sorting function
> for ?f, because the way this function has to be written depends
> on how your entries look.
>
> For example, if we assume that the creation time is the first
> inactive time stamp that is at the beginning of a line (to exclude
> things like a CLOSED time stamp), you could use
>
> (defun sort-by-creation-time ()
> (let ((end (save-excursion (outline-next-heading) (point))))
> (if (re-search-forward (concat "^[ \t]*\\[" org-ts-regexp1 "\\]")
> end t)
> (time-to-seconds (org-time-string-to-time (match-string 0)))
> (time-to-seconds now))))
>
>
> HTH
>
> - Carsten
>
Time sorting is now improved, with the following new sorting methods:
t By date/time, either the first active time stamp in the entry, or,
if
none exist, by the first inactive one.
In items, only the first line will be chekced.
s By the scheduled date/time.
d By deadline date/time.
c By creation time, which is assumed to be the first inactive time
stamp
at the beginning of a line.
HTH
- Carsten
prev parent reply other threads:[~2009-05-06 10:19 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-29 16:39 sorting entries on date created? Marko Schütz
2009-04-29 17:41 ` Nick Dokos
2009-05-06 8:11 ` Carsten Dominik
2009-05-06 10:19 ` Carsten Dominik [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7217648F-CC0D-4C63-A2B6-74790219AC92@gmail.com \
--to=carsten.dominik@gmail.com \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).