From: Max Mikhanosha <max@openchat.com>
To: emacs-orgmode@gnu.org
Subject: Re: PATCH: include in-progress/started todos into daily agenda
Date: Thu, 27 Sep 2007 10:33:08 -0400 [thread overview]
Message-ID: <87r6kkdvq3.wl%max@openchat.com> (raw)
In-Reply-To: <87sl51dud4.wl%max@openchat.com>
Responding to my own email, because I accidentally deleted Carsten
response.
Carsten suggested that I check the block agenda functionality to see
if it already does the same thing. The block agenda have the following
little quirks which made me implement my own solution instead:
Example of block agenda:
--------------------------------------------------------------------
Day-agenda:
Thursday 27 September 2007
proj: Scheduled: TODO [#C] Some scheduled task
====================
Global list of TODO items of type: INPROGRESS
proj: INPROGRESS [#A] Some task that is already in progress
---------------------------------------------------------------------
1. Items from the block agenda are a separate block, and not sorted
together with the items scheduled for the same day. So even if my
in-progress item is A its shown below the scheduled for this day
item that is C
2. There are 3 lines of vertical space taken by the empty line at the
end of the daily agenda, the === separator and the "Global list"
heading. I usually use emacs from tty, so my screen is 100x30 so 3
lines is 1/3 of the whole agenda buffer.
Below is how it looks like when in-progress items are treated as if
they were scheduled for today, which is what my patch does.
--------------------------------------------------------------------
Day-agenda:
Thursday 27 September 2007
proj: INPROGRESS [#A] Some task that is already in progress
proj: Scheduled: TODO [#C] Some scheduled task
---------------------------------------------------------------------
Which is much clearer to me. The in-progress tasks are in the same
list as the tasks scheduled for today, and are sorted together.
Its not problem if my patch is rejected, I have a less invasive
solution for my own needs that does the same thing with a single
defadvice. I have only sent a patch because IMHO ppl were already
discussing the same method of mixing the daily agenda with in-progress
items, but with a "manual" method of managing the in-progress items,
ie re-scheduling them every day until done with them.
At Wed, 26 Sep 2007 16:50:15 -0400, Max Mikhanosha wrote:
>
> I had always used the day/weekly/mothly agenda vs the searchable
> agenda separately and sometimes missed things because they were in one
> list but not another. For example when looking into a tags based
> agenda for :computer, I may have missed some other item that was
> scheduled for today but not tagged with computer, and via versa.
>
> The method described in the post titled "Not using GTD" post, where
> only the daily agenda is the primary agenda used solves this problem,
> but I don't like to schedule/reschedule my items all the time.
>
> So inspired by the "Not using GTD" post, proposed patch allows
> specifying a TODO type that would always be included into daily
> agenda on a current day, as if it was scheduled.
>
> So one can just mark items that need to be worked on doing the day as
> lets say "INPROGRESS" and they would stay in the daily agenda
> alongside/intermixed with the items scheduled for today until you
> close them. If you like to postpone the item, you put it as TODO
> again, and it would disappear.
>
> Proposed patch is as plain text below, feel free to rewrite/change
> as the method I've used may not have been optimal.
>
> Regards,
> Max
>
> diff -rp -x '*.orig' -x '*.elc' -x '*~' org-5.10a.orig/org.el org-5.10a/org.el
> *** org-5.10a.orig/org.el Wed Sep 26 13:33:20 2007
> --- org-5.10a/org.el Wed Sep 26 16:33:52 2007
> *************** When nil, only the days which actually h
> *** 2323,2328 ****
> --- 2323,2342 ----
> :group 'org-agenda-daily/weekly
> :type 'boolean)
>
> + (defcustom org-agenda-show-inprogress-todos nil
> + "Non-nil means, include the TODO's of the type specified by
> + `org-inprogress-todos' into the daily agenda."
> + :group 'org-agenda-daily/weekly
> + :type 'boolean)
> +
> + (defcustom org-inprogress-todos "INPROGRESS"
> + "Specifies TODO type that would be automatically included into
> + the daily agenda when `org-agenda-show-inprogress-todos' is set.
> + You can specify more then one value separating them with |, for
> + example INPROGRESS|STARTED"
> + :group 'org-agenda-daily/weekly
> + :type 'string)
> +
> (defcustom org-agenda-format-date 'org-agenda-format-date-aligned
> "Format string for displaying dates in the agenda.
> Used by the daily/weekly agenda and by the timeline. This should be
> *************** NDAYS defaults to `org-agenda-ndays'."
> *** 18056,18062 ****
> (- sd (+ (if (< d 0) 7 0) d)))))
> (day-numbers (list start))
> (inhibit-redisplay (not debug-on-error))
> ! s e rtn rtnall file date d start-pos end-pos todayp nd)
> (setq org-agenda-redo-command
> (list 'org-agenda-list (list 'quote include-all) start-day ndays))
> ;; Make the list of days
> --- 18070,18077 ----
> (- sd (+ (if (< d 0) 7 0) d)))))
> (day-numbers (list start))
> (inhibit-redisplay (not debug-on-error))
> ! s e rtn rtnall file date d start-pos end-pos todayp nd
> ! args)
> (setq org-agenda-redo-command
> (list 'org-agenda-list (list 'quote include-all) start-day ndays))
> ;; Make the list of days
> *************** NDAYS defaults to `org-agenda-ndays'."
> *** 18102,18117 ****
> (setq end-pos (point))))
> (setq files thefiles
> rtnall nil)
> (while (setq file (pop files))
> (catch 'nextfile
> (org-check-agenda-file file)
> ! (if org-agenda-show-log
> ! (setq rtn (org-agenda-get-day-entries
> ! file date
> ! :deadline :scheduled :timestamp :sexp :closed))
> ! (setq rtn (org-agenda-get-day-entries
> ! file date
> ! :deadline :scheduled :sexp :timestamp)))
> (setq rtnall (append rtnall rtn))))
> (if org-agenda-include-diary
> (progn
> --- 18117,18132 ----
> (setq end-pos (point))))
> (setq files thefiles
> rtnall nil)
> + (setq args '(:deadline :scheduled :timestamp :sexp))
> + (when org-agenda-show-log
> + (push :closed args))
> + (when org-agenda-show-inprogress-todos
> + (push :inprogress args))
> (while (setq file (pop files))
> (catch 'nextfile
> (org-check-agenda-file file)
> ! (setq rtn (apply 'org-agenda-get-day-entries
> ! file date args))
> (setq rtnall (append rtnall rtn))))
> (if org-agenda-include-diary
> (progn
> *************** the documentation of `org-diary'."
> *** 18606,18611 ****
> --- 18621,18632 ----
> ;; The way we repeatedly append to `results' makes it O(n^2) :-(
> (while (setq arg (pop args))
> (cond
> + ((and (eq arg :inprogress)
> + (equal date (calendar-current-date)))
> + (let ((org-select-this-todo-keyword
> + org-inprogress-todos))
> + (setq rtn (org-agenda-get-todos))
> + (setq results (append results rtn))))
> ((and (eq arg :todo)
> (equal date (calendar-current-date)))
> (setq rtn (org-agenda-get-todos))
next prev parent reply other threads:[~2007-09-27 14:33 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-26 20:50 PATCH: include in-progress/started todos into daily agenda Max Mikhanosha
2007-09-27 1:33 ` Carsten Dominik
2007-09-27 14:33 ` Max Mikhanosha [this message]
2007-09-27 15:18 ` Carsten Dominik
2007-09-27 16:00 ` Max Mikhanosha
2007-09-27 20:49 ` Bastien
2007-10-09 16:09 ` Carsten Dominik
2007-10-09 19:18 ` Max Mikhanosha
2007-10-09 20:52 ` Bastien
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=87r6kkdvq3.wl%max@openchat.com \
--to=max@openchat.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).