emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Carsten Dominik <carsten.dominik@gmail.com>
To: "Sébastien Vauban" <wxhgmqzgwmuf@spammotel.com>
Cc: emacs-orgmode@gnu.org
Subject: Re: Agenda sorting strategy
Date: Tue, 5 Oct 2010 03:56:09 +0200	[thread overview]
Message-ID: <1E2BA636-1F1E-4B75-B693-AAAAF5992999@gmail.com> (raw)
In-Reply-To: <87wrq2pa7c.fsf@mundaneum.com>


On Oct 1, 2010, at 10:51 AM, Sébastien Vauban wrote:

> Hello,
>
> Here is a minimal example of problems I experience with the sorting  
> strategy
> of the agenda.
>
> --8<---------------cut here---------------start------------->8---
> * Appointments
>
> ** Technician for washing machine
>   <2010-10-01 Fri>
>
> I don't know when he will come. He'll call a couple of minutes  
> before coming.
>
> ** TV show
>   <2010-10-01 Fri 19:00-20:00>
>
> * Task areas
>
> ** Work
>   :PROPERTIES:
>   :CATEGORY: Work
>   :END:
>
> *** TODO [#A] Reply to mail
>    SCHEDULED: <2010-09-29 Wed>
>
> *** TODO Work on offer
>    SCHEDULED: <2010-09-30 Thu>
>
> *** TODO Have the report ready for my boss
>    DEADLINE: <2010-10-08 Fri>
>
> ** Personal
>   :PROPERTIES:
>   :CATEGORY: Personal
>   :END:
>
> *** TODO [#A] Call neighbor
>    SCHEDULED: <2010-09-27 Mon>
>
> *** TODO Put oil on the outside table
>    SCHEDULED: <2010-09-28 Tue>
>
> *** TODO Invite some friends
>    SCHEDULED: <2010-10-01 Fri>
>
> * Agenda sorting strategy
>
> ** Objectives
>
> Get the tasks sorted:
>
> - by priority ("A", "B" or "C"), then
> - by "role" (category "personal" or "work"), then
> - by delay
>
> i.e.,
>
> :   Sched:      Technician for washing machine
> :                8:00-09:00 ________
> :               10:00-11:00 ________
> :               12:00-13:00 ________
> :               14:00-15:00 ________
> :               16:00-17:00 ________
> :               18:00-19:00 ________
> :   Sched:      19:00-20:00 TV show
> :               20:00-21:00 ________
> :               22:00-23:00 ________
> :   Personal:   Sched. 5x:  TODO [#A] Call neighbor
> :   Work:       Sched. 3x:  TODO [#A] Reply to mail
> :   Personal:   Sched. 4x:  TODO Put oil on the outside table
> :   Personal:   Scheduled:  TODO Invite some friends
> :   Work:       Sched. 2x:  TODO Work on offer
> :   Work:       In   7 d.:  TODO Have the report ready for my boss
>
> Note that I would like (well "dated" but) "untimed" events (such as  
> "The
> technician will come today") to be just before the day overview.  
> Would it be
> just after, it's OK as well, but less visible.
>
> :                8:00-09:00 ________
> :               10:00-11:00 ________
> :               12:00-13:00 ________
> :               14:00-15:00 ________
> :               16:00-17:00 ________
> :               18:00-19:00 ________
> :   Sched:      19:00-20:00 TV show
> :               20:00-21:00 ________
> :               22:00-23:00 ________
> :   Sched:      Technician for washing machine
> :   Personal:   Sched. 5x:  TODO [#A] Call neighbor
> :   Work:       Sched. 3x:  TODO [#A] Reply to mail
> :   Personal:   Sched. 4x:  TODO Put oil on the outside table
> :   Personal:   Scheduled:  TODO Invite some friends
> :   Work:       Sched. 2x:  TODO Work on offer
> :   Work:       In   7 d.:  TODO Have the report ready for my boss
>
> But, anyway, I cannot get any of these!
>
> What is important to see as well is that all my A tasks are at the  
> top of the
> list (sorted by category: first Personal, then Work), then all my B  
> tasks
> (sorted by category: first Personal, then Work).
>
> ** Default value
>
> #+begin_src emacs-lisp
> (setq org-agenda-sorting-strategy
>      '((agenda habit-down time-up priority-down category-keep)
>        (todo priority-down category-keep)
>        (tags priority-down category-keep)
>        (search category-keep)))
> #+end_src
>
> #+results:
> :                8:00-09:00 ________
> :               10:00-11:00 ________
> :               12:00-13:00 ________
> :               14:00-15:00 ________
> :               16:00-17:00 ________
> :               18:00-19:00 ________
> :   Sched:      19:00-20:00 TV show
> :               20:00-21:00 ________
> :               22:00-23:00 ________
> :   Personal:   Sched. 5x:  TODO [#A] Call neighbor
> :   Work:       Sched. 3x:  TODO [#A] Reply to mail
> :   Personal:   Sched. 4x:  TODO Put oil on the outside table
> :   Work:       Sched. 2x:  TODO Work on offer
> :   Personal:   Scheduled:  TODO Invite some friends
> :   Sched:      Technician for washing machine
> :   Work:       In   7 d.:  TODO Have the report ready for my boss
>
> ** Custom value
>
> #+begin_src emacs-lisp
> (setq org-agenda-sorting-strategy
>      '((agenda priority-down category-up time-up)
>        (todo priority-down category-keep)
>        (tags priority-down category-keep)
>        (search category-keep)))
> #+end_src
>
> #+results:
> :   Personal:   Sched. 5x:  TODO [#A] Call neighbor
> :   Work:       Sched. 3x:  TODO [#A] Reply to mail
> :   Personal:   Sched. 4x:  TODO Put oil on the outside table
> :   Work:       Sched. 2x:  TODO Work on offer
> :   Personal:   Scheduled:  TODO Invite some friends
> :   Sched:      19:00-20:00 TV show
> :   Sched:      Technician for washing machine
> :   Work:       In   7 d.:  TODO Have the report ready for my boss
> :                8:00-09:00 ________
> :               10:00-11:00 ________
> :               12:00-13:00 ________
> :               14:00-15:00 ________
> :               16:00-17:00 ________
> :               18:00-19:00 ________
> :               20:00-21:00 ________
> :               22:00-23:00 ________
>
> Observations:
>
> - for equivalent priorities (B), *tasks are not sorted by category*  
> (?):
>  + Personal:   Sched. 4x:  TODO Put oil on the outside table
>  + Work:       Sched. 2x:  TODO Work on offer
>  + Personal:   Scheduled:  TODO Invite some friends

The reason for this is that the priority has several components.
The specified priority #B (even if omitted) is one component.
But since "Work on offer" was already scheduled yesterday,
its priority is pushed up.  You can see the computed priority
by pressing "P" on items in the agenda.


>
> - day overview is at the end of the buffer (!!)


To get this right, you need time-up early in the strategy.

> --8<---------------cut here---------------end--------------->8---
>
> Can you help me getting what I want?

Hope this at least helps to understand what is going on.

I guess we could have a variable to make priority only
consider the priority cookies and not the urgency depending
on deadlines and scheduling dates.  Or make the priority formula
configurable.  But neither of these is currently implemented, so
changing this would require some code to be written.

- Carsten

  parent reply	other threads:[~2010-10-05  2:01 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-01  8:51 Agenda sorting strategy Sébastien Vauban
2010-10-04 20:44 ` Jeff Horn
2010-10-05  1:33   ` Carsten Dominik
2010-10-05  1:56 ` Carsten Dominik [this message]
2010-10-05  2:14   ` Samuel Wales

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=1E2BA636-1F1E-4B75-B693-AAAAF5992999@gmail.com \
    --to=carsten.dominik@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=wxhgmqzgwmuf@spammotel.com \
    /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).