forked from mirrors/org-mode
My personal patches-in-progress branch of Org.
See https://git.tecosaur.net/mirrors/org-mode/compare/main..tec/org-mode:dev.
Adam Elliott writes: > I have attached a git patch against master that implements a new > parameter to clock tables, "tags". This parameter is a tags-query as a > string and is used to filter the headlines which are consulted when > building the clock table. > > In my search of the archives to see if this feature already existed, I > found a reference here: > http://article.gmane.org/gmane.emacs.orgmode/17304 > suggesting it was difficult. The patch is not so large, though, so > perhaps I am missing something. > > My rationale in implementing this feature was to keep track of the > occasional task item that is not billable, yet still makes sense to > include in the overall project structure. Of course I could just avoid > clocking the task item, or manually delete clock lines before generating > a report, but this feature reduces the chance for error; no doubt there > are other workflows enabled with this feature as well. I don't make > significant use of tags myself, but I know many do. > > In order to maintain a sensible report, headlines that don't match the > tag filter may be included if they have descendants that do. Any time > clocked directly on non-matching headlines, however, is excluded. > > Specifying even a simple filter noticeably slows down clock table > generation for non-toy reports, particularly for clock table reports > with :step. If there is no filter, though, there is no degradation in > performance. > > Tag filter syntax is the standard one, as described at: > http://orgmode.org/manual/Matching-tags-and-properties.html > Only tags are considered at the moment, although I suspect querying > against all properties would be possible (if even slower). > > Examples: > > * development > CLOCK: => 1:00 > *** task 1 > CLOCK: => 1:00 > *** task 2 :must: > ***** task 2a > CLOCK: => 1:00 > ***** task 2b :mustnot: > CLOCK: => 1:00 > > Note I am using an unconventional but legal(ish) clock format for > brevity. Clock tables are also pruned to only relevant lines. > > [1] #+BEGIN: clocktable > | | *Total time* | *4:00* | | | > |---+--------------+--------+------+------| > | 1 | development | 4:00 | | | > | 2 | task 1 | | 1:00 | | > | 2 | task 2 | | 2:00 | | > | 3 | task 2a | | | 1:00 | > | 3 | task 2b | | | 1:00 | > > [2] #+BEGIN: clocktable :tags "must" > | | *Total time* | *2:00* | | | > |---+--------------+--------+------+------| > | 1 | development | 2:00 | | | > | 2 | task 2 | | 2:00 | | > | 3 | task 2a | | | 1:00 | > | 3 | task 2b | | | 1:00 | > > [3] #+BEGIN: clocktable :tags "-mustnot" > | | *Total time* | *3:00* | | | > |---+--------------+--------+------+------| > | 1 | development | 3:00 | | | > | 2 | task 1 | | 1:00 | | > | 2 | task 2 | | 1:00 | | > | 3 | task 2a | | | 1:00 | > > [4] #+BEGIN: clocktable :tags "must-mustnot" > | | *Total time* | *1:00* | | | > |---+--------------+--------+------+------| > | 1 | development | 1:00 | | | > | 2 | task 2 | | 1:00 | | > | 3 | task 2a | | | 1:00 | > > [5] #+BEGIN: clocktable :tags "must+mustnot" > | | *Total time* | *1:00* | | | > |---+--------------+--------+------+------| > | 1 | development | 1:00 | | | > | 2 | task 2 | | 1:00 | | > | 3 | task 2b | | | 1:00 | > > As you can see, in examples 2, 4, and 5, the time clocked on > "development" itself is being removed. Example 2 illustrates the effect > of tag inheritance. > > Adam |
||
---|---|---|
BUGFIXING | ||
contrib | ||
doc | ||
EXPERIMENTAL | ||
lisp | ||
ORGWEBPAGE | ||
UTILITIES | ||
xemacs | ||
.dir-settings.el | ||
.gitignore | ||
ChangeLog | ||
Makefile | ||
README | ||
README_DIST | ||
README_GIT | ||
request-assign-future.txt |
This is the Emacs Org project, an emacs subsystem for organizing your life The homepage of Org is at http://orgmode.org This distribution contains: README This file. README_DIST The README file for the distribution (zip and tar files) README_GIT Information about the git repository and how to contribute to Org-mode development. lisp/ Directory with all the Emacs Lisp files that make up Org. doc/ The documentation files. org.texi is the source of the documentation, org.html and org.pdf are formatted versions of it. xemacs/ The xemacs directory contains special code for XEmacs users, in particular a port of the GNU Emacs outline.el to XEmacs. Org-mode does not work under XEmacs without this file installed. It did until version 4.37, but no longer. contrib/ A directory with third-party additions for Org. Some really cool stuff is in there. ORGWEBPAGE/ Directory with the source files for the orgmode.org web page. ChangeLog The standard ChangeLog file. Makefile The makefile to compile and install Org, and also for maintenance tasks. request-assign-future.txt The form that contributors have to sign and get processed with the FSF before contributed changes can be integrated into the Org core. All files in this distribution except the CONTRIB directory have copyright assigned to the FSF. EXPERIMENTAL Experimental code, not necessarily FSF copyright.