From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arkady Grudzinsky Subject: Re: tsia-up sorting strategy sorts agenda by date and ignores time. How can I change that? Date: Wed, 22 Mar 2017 10:13:32 -0700 Message-ID: References: <87shm6wo2p.fsf@fastmail.fm> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:41356) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cqjpM-0008Sr-Ek for emacs-orgmode@gnu.org; Wed, 22 Mar 2017 13:13:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cqjpJ-0006nR-AT for emacs-orgmode@gnu.org; Wed, 22 Mar 2017 13:13:40 -0400 Received: from mail-pg0-x236.google.com ([2607:f8b0:400e:c05::236]:36777) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cqjpJ-0006nE-2M for emacs-orgmode@gnu.org; Wed, 22 Mar 2017 13:13:37 -0400 Received: by mail-pg0-x236.google.com with SMTP id g2so110237040pge.3 for ; Wed, 22 Mar 2017 10:13:36 -0700 (PDT) Received: from localhost ([207.173.103.84]) by smtp.gmail.com with ESMTPSA id u29sm5095695pfa.123.2017.03.22.10.13.34 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 22 Mar 2017 10:13:34 -0700 (PDT) In-Reply-To: (Arkady Grudzinsky's message of "Wed, 22 Mar 2017 09:25:27 -0700") List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: emacs-orgmode@gnu.org On Wed, Mar 22 2017, Arkady Grudzinsky wrote: > On Tue, Mar 21 2017, Matt Lundin wrote: > >> You could use something like this and then add user-defined-up or >> user-defined-down where desired in org-agenda-sorting-strategy: >> >> (defun my-sort-by-inactive-timestamp-incl-time (a b) >> (let* ((ma (get-text-property 1 'org-marker a)) >> (mb (get-text-property 1 'org-marker b)) >> (tsa (with-current-buffer (marker-buffer ma) >> (org-entry-get (marker-position ma) "TIMESTAMP_IA"))) >> (tsb (with-current-buffer (marker-buffer mb) >> (org-entry-get (marker-position mb) "TIMESTAMP_IA"))) >> (seca (if tsa (org-time-string-to-seconds tsa) 0)) >> (secb (if tsb (org-time-string-to-seconds tsb) 0))) >> (cond ((> seca secb) 1) >> ((> secb seca) -1) >> (t nil)))) >> >> (setq org-agenda-cmp-user-defined 'my-sort-by-inactive-timestamp-incl-time) >> >> I imagine there are ways to do this more elegantly (e.g., by iterating >> over a and b), but this gets the job done for me. > > This works. Awesome! Thanks. When this user-defined-up is set in agenda view (C-c a a), the agenda view throws an error message. ,---- | set-buffer: Wrong type argument: markerp, nil `---- It works in the todo list views, though, which is good enough for me. Thanks again. Just wanted to mention this for the record. -- Arkady