emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Manuel Hermenegildo <herme@fi.upm.es>
To: SAKURAI Masashi <m.sakurai@kiwanami.net>
Cc: tassilo@member.fsf.org, emacs-orgmode@gnu.org
Subject: Re: Calendar-like view of the org-agenda
Date: Mon, 11 Jul 2011 21:02:48 +0200	[thread overview]
Message-ID: <19995.18648.500570.51213@gazelle.local> (raw)
In-Reply-To: Manuel Hermenegildo <herme@fi.upm.es>


 > Sorry for my less experience of orgmode.
 > Can I get a sample task file which contains such complex schedules?

I can illustrate the point with a simple one :-):

* TODO Thank Sakurai for a great tool <2011-07-05 Tue>  :MH:
* TODO Write paper  <2011-07-05 Tue> :JF:

We share org files among different people (e.g., for software
projects) and use tags to determine whose task it is and in whose
agenda it should appear.  The first one should appear in MH's agenda
and the second one in JF's agenda. A lot of people use the same to
have, e.g., a home agenda and a work agenda:

* TODO Buy groceries <2011-07-05 Tue>  :home:
* TODO Ask boss for a raise  <2011-07-05 Tue> :work:

Currently, both tasks will appear in the calfw view. 

In the normal org agenda views the necessary filtering is done via the
"org-agenda-custom-commands" variable, defining a "custom agenda
command" with a filter (this is the recommended way of creating
different agendas and todo lists in org). For example, to get an
agenda view with only my tasks, which I identfy with the tag "MH" I
use (this is my normal agenda view):

(setq org-agenda-custom-commands
      (list
	(list 
	 "a" "Agenda with (only) my tasks (those that have my tag and a date)"
	 '((agenda 
	    ""
	    ((org-agenda-skip-function '(my-skip-by-tags "MH"))
	     (org-agenda-overriding-header 
            "Agenda -- with (only) my tasks (those that have my tag and a date)")
	 ))))))

(defun my-skip-by-tags (tag)
  "Skip tasks except those that contain tag (with inheritance!)." 
  (let ((line-end (save-excursion (progn (end-of-line) (point))))) ;; return pos
    (if (or 
	 (member tag (org-get-local-tags)) ;; check first if only local (speed)
	 (member tag (org-get-tags-at (point))) ;; rest include inherited tags
	 ) 
	nil ; do not skip
      line-end))) ; skip, continue after that

The particular filter that I use (my-skip-by-tags) is a function that
checks for inherited tags. I am not sure this can be done with
org-agenda-get-day-entries.  This is why I was suggesting perhaps
using a modified version of org-agenda (a back-end) that would feed
the data computed to calfw (the same could be used for all the other
agenda exports). Or perhaps org-agenda-get-day-entries can be made to
call a filter function like the one above?

Cheers,

Manuel


 > From: Manuel Hermenegildo <herme@fi.upm.es>
 > To: Tassilo Horn <tassilo@member.fsf.org>
 > Cc: Christopher Allan Webber <cwebber@dustycloud.org>,
 > 	SAKURAI Masashi <m.sakurai@kiwanami.net>,
 > 	emacs-orgmode@gnu.org
 > Subject: Re: [O] Calendar-like view of the org-agenda
 > Date: Wed, 6 Jul 2011 11:39:47 +0200
 > 
 > 
 > First, thanks very much to Sakurai for a wonderful tool and having
 > integrated it so well with org!
 > 
 >  > For me, creating a custom org agenda with the next 21 days takes
 >  > not much less than building an calfw calendar buffer with 42 days.
 > 
 > Same here, the times are comparable. For me building the org calendar
 > is a little slower but it makes sense because it is running some
 > filters, while calfw is not.  Which brings me to my question, which is
 > related to:
 > 
 >  > One thing which I'm currently missing is that the calfw entries
 >  > gathered from org are missing the times (if that's specified using the
 >  > 'time text property) and are sorted in an order I can't understand.
 > 
 > Seems like calfw is ignoring the org priorities and order.  In my case
 > the problem is that calfw is gathering all the tasks ignoring my per
 > tag filters. I explain: in my case I only want to see in my agenda
 > entries that have a certain tag (my tag): I share org files with other
 > people and we assign tasks by marking E.g., I am MH and my tasks are
 > like:
 > 
 > * TODO Thank Sakurai for a great tool <2011-07-05 Tue>  :MH:
 > 
 > which should appear in my agenda and there are other tasks like:
 > 
 > * TODO Write paper  <2011-07-05 Tue> :JF:
 > 
 > which should only appear in JF's agenda. This is done using a custom
 > agenda command that filters by tag.
 > 
 > It seems to me too complicated to try to reproduce all the nuances and
 > capabilities of org agenda generation (priorities, filtering, custom
 > views, etc.) and do it all again in calfw --it would always be very
 > hard to keep them in sync.
 > 
 > I have not had time to look at the code, but perhaps calfw, instead of
 > reading directly the org files could instead use the org code that
 > generates the agenda and then present the agenda in its very nice and
 > graphical way. I.e., an idea would be to add a back end to the code
 > that generates the org agenda which, instead of rendering the agenda
 > creates the calfw objects.
 > 
 > Or, perhaps even simpler, calfw could simply read the org-agenda
 > buffer (colors and all) instead of reading the org files.  
 > 
 > This would have the enormous advantage that it would always generate
 > the tasks with the same order, priorities, filters, customizations,
 > etc. as the org agenda.
 > 
 > What do you think?
 > 
 > Manuel 
 > 
 > 
 > 
 > -- 
 > -------------------------------------------------------------------------------
 > Manuel Hermenegildo                       | Prof., C.S.Dept., T.U. Madrid (UPM)
 > Director, IMDEA SW Institute & CLIP Group | +34-91-336-7435 (W) -352-4819 (Fax)
 > -------------------------------------------------------------------------------


 > From: Manuel Hermenegildo <herme@fi.upm.es>
 > To: SAKURAI Masashi <m.sakurai@kiwanami.net>
 > Cc: tassilo@member.fsf.org, emacs-orgmode@gnu.org
 > Subject: Re: [O] Calendar-like view of the org-agenda
 > Date: Fri, 8 Jul 2011 05:11:23 +0200
 > 
 > 
 >  > > Seems like calfw is ignoring the org priorities and order.  In my case
 >  > > the problem is that calfw is gathering all the tasks ignoring my per
 >  > > tag filters. I explain: in my case I only want to see in my agenda
 >  > > entries that have a certain tag (my tag): I share org files with other
 >  > > people and we assign tasks by marking E.g., I am MH and my tasks are
 >  > > like:
 >  > > 
 >  > > * TODO Thank Sakurai for a great tool <2011-07-05 Tue>  :MH:
 >  > > 
 >  > > which should appear in my agenda and there are other tasks like:
 >  > > 
 >  > > * TODO Write paper  <2011-07-05 Tue> :JF:
 >  > > 
 >  > > which should only appear in JF's agenda. This is done using a custom
 >  > > agenda command that filters by tag.
 >  > > 
 >  > > It seems to me too complicated to try to reproduce all the nuances and
 >  > > capabilities of org agenda generation (priorities, filtering, custom
 >  > > views, etc.) and do it all again in calfw --it would always be very
 >  > > hard to keep them in sync.
 >  > 
 >  > I read the code of org-agenda-list and subsequent callee functions.
 >  > Indeed it was very hard way and I didn't understand all codes because
 >  > I was not a orgmode user.
 >  > 
 >  > Then, I use the function org-agenda-get-day-entries to get schedule
 >  > items of the org-agenda-files. The function can receive some arguments
 >  > to limit the tasks, but I didn't understand exactly.  Do you use this
 >  > function? If so, it may be easy to implement a simple filter.
 >  ...
 >  > org-agenda-get-day-entries can take more
 >  > arguments like :scheduled :deadline to help reduce the size of listed
 >  > entries.  See the docstring of org-diary, which understands the same
 >  > list of arguments.
 > 
 > I use the "org-agenda-custom-commands" variable and define a command
 > with a filter (this is the recommended way of creating different
 > agendas and todo lists in org). For example, to get an agenda view
 > with only my tasks, which I identfy with the tag "MH" I use (this is
 > my normal agenda view):
 > 
 > (setq org-agenda-custom-commands
 >       (list
 > 	(list 
 > 	 "a" "Agenda with (only) my tasks (those that have my tag and a date)"
 > 	 '((agenda 
 > 	    ""
 > 	    ((org-agenda-skip-function '(my-skip-by-tags-mytag "MH"))
 > 	     (org-agenda-overriding-header 
 >             "Agenda -- with (only) my tasks (those that have my tag and a date)")
 > 	 ))))))
 > 
 > (defun my-skip-by-tags-mytag (tag)
 >   "Skip tasks except those that contain tag (with inheritance!)." 
 >   (let ((line-end (save-excursion (progn (end-of-line) (point))))) ;; return pos
 >     (if (or 
 > 	 (member tag (org-get-local-tags)) ;; check first if only local (speed)
 > 	 (member tag (org-get-tags-at (point))) ;; rest include inherited tags
 > 	 ) 
 > 	nil ; do not skip
 >       line-end))) ; skip, continue after that
 > 
 > The issue here is that the filter is a function that checks for
 > inherited tags. I am not sure this can be done with
 > org-agenda-get-day-entries.  This is why I was suggesting perhaps
 > using a modified version of org-agenda that would feed data to calfw
 > instead of (or, perhaps even better, in addition to) generating the
 > org agenda views. Or perhaps org-agenda-get-day-entries can be made to
 > call a filter function like the one above?
 > 
 > Manuel 
 > 
 > --


-- 
-------------------------------------------------------------------------------
Manuel Hermenegildo                       | Prof., C.S.Dept., T.U. Madrid (UPM)
Director, IMDEA SW Institute & CLIP Group | +34-91-336-7435 (W) -352-4819 (Fax)
-------------------------------------------------------------------------------

  reply	other threads:[~2011-07-11 19:04 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-30 16:39 Calendar-like view of the org-agenda Marcelo de Moraes Serpa
2011-06-30 21:02 ` Memnon Anon
2011-07-01  8:47 ` Bastien
2011-07-01  8:48 ` Bastien
2011-07-01 10:06   ` Michael Markert
2011-07-01 17:01     ` Marcelo de Moraes Serpa
2011-07-04 10:04     ` Kan-Ru Chen
2011-07-04 17:01       ` Michael Markert
2011-07-05  3:32         ` Marcelo de Moraes Serpa
2011-07-05  7:44         ` SAKURAI Masashi
2011-07-05  9:14           ` Bastien
2011-07-06 11:30             ` Memnon Anon
2011-07-08 13:51               ` Russell Adams
2011-07-08 15:00                 ` Memnon Anon
2011-07-10  3:11                   ` SAKURAI Masashi
2011-07-08 22:13                 ` Tassilo Horn
2011-07-09 14:17                   ` Marcus Klemm
2011-07-10 15:27                     ` Tassilo Horn
2011-07-10 16:00                       ` Marcus Klemm
2011-07-11 13:23                         ` Bastien
2011-07-11 23:34                           ` Eric S Fraga
2011-07-11 15:50                   ` Sebastien Vauban
2011-07-12  0:26                     ` SAKURAI Masashi
2011-07-12  7:36                       ` Sebastien Vauban
2011-07-12  8:37                         ` Eric S Fraga
2011-07-12  9:38                           ` Sebastien Vauban
2011-07-12 15:30                             ` Jason F. McBrayer
2011-07-12 22:08                               ` Sebastien Vauban
2011-07-13  6:04                               ` Aankhen
2011-07-13 12:44                                 ` Jason F. McBrayer
2011-07-14  8:03                                   ` Aankhen
2011-07-12 16:46                             ` Achim Gratz
2011-07-12 22:06                               ` Sebastien Vauban
2011-07-13 11:56                               ` Sebastien Vauban
2011-07-09 13:24               ` SAKURAI Masashi
2011-07-09 14:53                 ` Sebastien Vauban
2011-07-09 22:48                   ` weekly-view.el (was: Calendar-like view of the org-agenda) Bastien
2011-07-11  8:15                     ` weekly-view.el Eric S Fraga
2011-07-13 19:55                   ` Calendar-like view of the org-agenda Tassilo Horn
2011-07-15  1:00                     ` SAKURAI Masashi
2011-07-15 18:01                       ` OSiUX
2011-07-15 19:33                         ` Michael Markert
2011-07-20  6:22                           ` Reiner Steib
2011-07-17 17:01                     ` SAKURAI Masashi
2011-07-17 18:29                       ` Rasmus
2011-07-17 18:59                         ` Rasmus
2011-07-20  5:52                           ` SAKURAI Masashi
2011-07-18  8:53                       ` Bastien
2011-07-20  7:29                         ` SAKURAI Masashi
2011-07-05 11:49           ` Niels Giesen
2011-07-06  8:48             ` SAKURAI Masashi
2011-07-06 16:24             ` SAKURAI Masashi
2011-07-05 14:33           ` Eric S Fraga
2011-07-06 16:53             ` SAKURAI Masashi
2011-07-06 19:17               ` Eric S Fraga
2011-07-05 16:58           ` Christopher Allan Webber
2011-07-05 17:13           ` Christopher Allan Webber
2011-07-06  7:16             ` Tassilo Horn
2011-07-06  9:39               ` Manuel Hermenegildo
2011-07-06 10:00                 ` Tassilo Horn
2011-07-06 10:23                   ` Eric S Fraga
2011-07-06 10:41                     ` Manuel Hermenegildo
2011-07-09 13:15                       ` SAKURAI Masashi
2011-07-11 19:02                         ` Manuel Hermenegildo [this message]
2011-07-16 15:31                           ` SAKURAI Masashi
2011-07-09 13:15                     ` SAKURAI Masashi
2011-07-07  4:47                 ` SAKURAI Masashi
2011-07-07 15:32                   ` Bastien
2011-07-07 18:03                     ` Tassilo Horn
2011-07-07 19:54                       ` Bastien
2011-07-10  7:09                         ` SAKURAI Masashi
2011-07-10  7:59                           ` Bastien
2011-07-10  7:03                     ` SAKURAI Masashi
2011-07-12  7:24                       ` Bastien
2011-07-16 15:52                         ` SAKURAI Masashi
2011-07-08  3:11                   ` Manuel Hermenegildo
2011-07-08  8:48                 ` Bastien
2011-07-07  4:21               ` SAKURAI Masashi
2011-07-07  7:24                 ` Tassilo Horn
2011-07-10  2:43                   ` SAKURAI Masashi
2011-07-08  8:53                 ` Bastien
2011-07-06 17:47             ` SAKURAI Masashi
  -- strict thread matches above, loose matches on Subject: below --
2010-07-28 16:43 Org file rendering/manipulation too slow Marcelo de Moraes Serpa
2010-07-28 17:20 ` Nick Dokos
2010-07-31  8:56 ` Bastien
2010-08-04 16:52   ` Marcelo de Moraes Serpa
2010-08-06  8:49     ` Bastien
2010-08-06 18:35       ` Marcelo de Moraes Serpa
2010-08-07 12:38         ` Manuel Hermenegildo
2010-08-25 17:42           ` Marcelo de Moraes Serpa
2010-08-25 21:45             ` Bernt Hansen
2010-08-28 18:53               ` Marcelo de Moraes Serpa
2010-08-28 21:20                 ` Bernt Hansen
2010-08-29 17:02                 ` Manuel Hermenegildo
2010-08-31  2:06                   ` Marcelo de Moraes Serpa
2010-08-31  2:31                     ` Nick Dokos
2010-09-06  0:45                       ` Marcelo de Moraes Serpa
2010-09-06  2:07                         ` Nick Dokos
2010-09-06  3:37                           ` Marcelo de Moraes Serpa
2010-09-06  4:08                             ` Nick Dokos
2010-09-06  4:19                               ` Marcelo de Moraes Serpa
2010-09-06  4:22                                 ` Marcelo de Moraes Serpa
2010-09-06  8:15                                 ` Manuel Hermenegildo
2010-09-06 18:24                             ` Achim Gratz
     [not found]                       ` <celoserpa@gmail.com>
2012-08-31  3:42                         ` [OT] Encoding error when calling a ruby script from Emacs using shell-command Marcelo de Moraes Serpa
2012-08-31 19:51                           ` Nick Dokos
2012-08-31 22:18                             ` Marcelo de Moraes Serpa
2012-09-01  7:28                               ` Achim Gratz
2012-09-01 13:53                                 ` Nick Dokos
2012-09-01 17:29                                   ` Marcelo de Moraes Serpa

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=19995.18648.500570.51213@gazelle.local \
    --to=herme@fi.upm.es \
    --cc=emacs-orgmode@gnu.org \
    --cc=m.sakurai@kiwanami.net \
    --cc=tassilo@member.fsf.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).