From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: PATCH: include in-progress/started todos into daily agenda Date: Thu, 27 Sep 2007 03:33:40 +0200 Message-ID: <8d4121efbc84e802d40d5cf498233c45@science.uva.nl> References: <87sl51dud4.wl%max@openchat.com> Mime-Version: 1.0 (Apple Message framework v624) Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IaiGD-00024A-QN for emacs-orgmode@gnu.org; Wed, 26 Sep 2007 21:33:49 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IaiGB-00020n-Gm for emacs-orgmode@gnu.org; Wed, 26 Sep 2007 21:33:49 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IaiGA-00020g-Rg for emacs-orgmode@gnu.org; Wed, 26 Sep 2007 21:33:46 -0400 Received: from wa-out-1112.google.com ([209.85.146.178]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IaiGA-0004LR-2v for emacs-orgmode@gnu.org; Wed, 26 Sep 2007 21:33:46 -0400 Received: by wa-out-1112.google.com with SMTP id k34so3047443wah for ; Wed, 26 Sep 2007 18:33:45 -0700 (PDT) In-Reply-To: <87sl51dud4.wl%max@openchat.com> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Max Mikhanosha Cc: emacs-orgmode@gnu.org Hi Max, thanks for this. Before looking deeper into it: Have you considered a block agenda as an alternative? That will list the TODO matches in a separate list, but in the *same* agenda buffer. - Carsten On Sep 26, 2007, at 22:50, 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)) > > > _______________________________________________ > Emacs-orgmode mailing list > Remember: use `Reply All' to send replies to the list. > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode > > -- Carsten Dominik Sterrenkundig Instituut "Anton Pannekoek" Universiteit van Amsterdam Kruislaan 403 NL-1098SJ Amsterdam phone: +31 20 525 7477