emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Bug: datetree capture from agenda [7.5 (release_7.5.135.g7021f.dirty)]
@ 2011-04-05 21:50 Philip Rooke
  2011-04-06  6:52 ` Carsten Dominik
  0 siblings, 1 reply; 6+ messages in thread
From: Philip Rooke @ 2011-04-05 21:50 UTC (permalink / raw)
  To: emacs-orgmode


Remember to cover the basics, that is, what you expected to happen and
what in fact did happen.  You don't know how to make a good report?  See

     http://orgmode.org/manual/Feedback.html#Feedback

Your bug report will be posted to the Org-mode mailing list.
------------------------------------------------------------------------
Launch Emacs with no startup files

$ emacs -Q

; evaluate these 2 forms in the *scratch* buffer

(require 'org-install)
(setq org-capture-templates
      '(("h" "Journal headline" entry (file+datetree "/tmp/journal.org"))
	("n" "Journal note" plain (file+datetree "/tmp/journal.org"))))

; follow this sequence

M-x org-agenda
a     ; for current week or day agenda
k c   ; agenda action for capture
h     ; to add a headline entry in journal for today
[...] ; add some text and C-c C-c to save
k c   
n     ; add a note in journal for today
[...] ; add some text and save
b     ; back one week
k c 
h     ; add a headline entry in journal for one week ago
[...] 
b     ; go back one more week
k c
n     ; add a note in journal for two weeks ago
[...]

Look at the journal file created.

I would expect to see a date tree with a note entry under the
date two weeks ago, a headline entry under the date one week ago
and a note and headline entry under today's date.

What I see is the date tree correctly constructed.  The note and
headline under today's date are correct filed.  The headline
entry from one week ago is correctly filed.  The date headline
from two weeks ago is correctly created but the text of the note
entry itself is wrongly appended at the end of the file under
today's date.

That doesn't seem right to me.

Thanks,

Phil

Emacs  : GNU Emacs 24.0.50.3 (x86_64-apple-darwin10.6.0, NS apple-appkit-1038.35)
 of 2011-02-17 on bo
Package: Org-mode version 7.5 (release_7.5.135.g7021f.dirty)

current state:
==============
(setq
 org-export-latex-after-initial-vars-hook '(org-beamer-after-initial-vars)
 org-speed-command-hook '(org-speed-command-default-hook org-babel-speed-command-hook)
 org-metaup-hook '(org-babel-load-in-session-maybe)
 org-capture-templates '(("h" "Journal headline" entry (file+datetree "~/tmp/journal.org"))
			 ("n" "Journal note" plain (file+datetree "~/tmp/journal.org")))
 org-after-todo-state-change-hook '(org-clock-out-if-current)
 org-export-blocks-postblock-hook '(org-exp-res/src-name-cleanup)
 org-export-latex-format-toc-function 'org-export-latex-format-toc-default
 org-tab-first-hook '(org-hide-block-toggle-maybe org-src-native-tab-command-maybe org-babel-hide-result-toggle-maybe)
 org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer)
 org-confirm-shell-link-function 'yes-or-no-p
 org-export-first-hook '(org-beamer-initialize-open-trackers)
 org-agenda-before-write-hook '(org-agenda-add-entry-text)
 org-babel-pre-tangle-hook '(save-buffer)
 org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers org-cycle-show-empty-lines
		  org-optimize-window-after-visibility-change)
 org-export-preprocess-before-normalizing-links-hook '(org-remove-file-link-modifiers)
 org-mode-hook '((lambda nil
		  (org-add-hook (quote change-major-mode-hook) (quote org-show-block-all) (quote append) (quote local)))
		 (lambda nil
		  (org-add-hook (quote change-major-mode-hook) (quote org-babel-show-result-all) (quote append) (quote local)))
		 org-babel-result-hide-spec org-babel-hide-all-hashes)
 org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point org-babel-execute-safely-maybe)
 org-confirm-elisp-link-function 'yes-or-no-p
 org-export-interblocks '((lob org-babel-exp-lob-one-liners) (src org-babel-exp-inline-src-blocks))
 org-occur-hook '(org-first-headline-recenter)
 org-from-is-user-regexp "\\<phil@bo\\.sak\\.lan\\>\\|\\<Philip Rooke\\>"
 org-export-preprocess-before-selecting-backend-code-hook '(org-beamer-select-beamer-code)
 org-export-latex-final-hook '(org-beamer-amend-header org-beamer-fix-toc org-beamer-auto-fragile-frames
			       org-beamer-place-default-actions-for-lists)
 org-metadown-hook '(org-babel-pop-to-session-maybe)
 org-export-blocks '((src org-babel-exp-src-block nil) (comment org-export-blocks-format-comment t)
		     (ditaa org-export-blocks-format-ditaa nil) (dot org-export-blocks-format-dot nil))
 )

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Bug: datetree capture from agenda [7.5 (release_7.5.135.g7021f.dirty)]
  2011-04-05 21:50 Bug: datetree capture from agenda [7.5 (release_7.5.135.g7021f.dirty)] Philip Rooke
@ 2011-04-06  6:52 ` Carsten Dominik
  2011-04-06 10:50   ` Philip Rooke
  0 siblings, 1 reply; 6+ messages in thread
From: Carsten Dominik @ 2011-04-06  6:52 UTC (permalink / raw)
  To: Philip Rooke; +Cc: emacs-orgmode

Hi Philip,

thank you for this very detailed report and recipe.

First of all, the date tree target currently is meant only
for entry-type captures.  If you use a plain capture type,
it will go to the end of the buffer and the localization
by the date tree is ignored.

I can see that it might be nice to simply add some text
under the date headline in a date tree, in order to build
up a long journal entry from little snippets.  However, you
are trying to *mix* headline entries and plain entries
under the same date node in the tree, and this seems to
be impossible.  If you first add a headline entry and
then plain text, that plane text will structurally belong
to the headline that you just created.

Wouldn't a better strategy be to have the "plain" section be started with a time, for example

(setq org-capture-templates
    '(("h" "Journal headline" entry (file+datetree "/tmp/journal.org"))
	("n" "Journal note" plain (file+datetree "/tmp/journal.org") "* %<%H:%M>\n  %?")))

(the %<%H:%M> requires the current git release...)

Another way to phrase my question is:  What is your use case for this mix?

- Carsten

On 5.4.2011, at 23:50, Philip Rooke wrote:

> 
> Remember to cover the basics, that is, what you expected to happen and
> what in fact did happen.  You don't know how to make a good report?  See
> 
>    http://orgmode.org/manual/Feedback.html#Feedback
> 
> Your bug report will be posted to the Org-mode mailing list.
> ------------------------------------------------------------------------
> Launch Emacs with no startup files
> 
> $ emacs -Q
> 
> ; evaluate these 2 forms in the *scratch* buffer
> 
> (require 'org-install)
> (setq org-capture-templates
>     '(("h" "Journal headline" entry (file+datetree "/tmp/journal.org"))
> 	("n" "Journal note" plain (file+datetree "/tmp/journal.org"))))
> 
> ; follow this sequence
> 
> M-x org-agenda
> a     ; for current week or day agenda
> k c   ; agenda action for capture
> h     ; to add a headline entry in journal for today
> [...] ; add some text and C-c C-c to save
> k c   
> n     ; add a note in journal for today
> [...] ; add some text and save
> b     ; back one week
> k c 
> h     ; add a headline entry in journal for one week ago
> [...] 
> b     ; go back one more week
> k c
> n     ; add a note in journal for two weeks ago
> [...]
> 
> Look at the journal file created.
> 
> I would expect to see a date tree with a note entry under the
> date two weeks ago, a headline entry under the date one week ago
> and a note and headline entry under today's date.
> 
> What I see is the date tree correctly constructed.  The note and
> headline under today's date are correct filed.  The headline
> entry from one week ago is correctly filed.  The date headline
> from two weeks ago is correctly created but the text of the note
> entry itself is wrongly appended at the end of the file under
> today's date.
> 
> That doesn't seem right to me.
> 
> Thanks,
> 
> Phil
> 
> Emacs  : GNU Emacs 24.0.50.3 (x86_64-apple-darwin10.6.0, NS apple-appkit-1038.35)
> of 2011-02-17 on bo
> Package: Org-mode version 7.5 (release_7.5.135.g7021f.dirty)
> 
> current state:
> ==============
> (setq
> org-export-latex-after-initial-vars-hook '(org-beamer-after-initial-vars)
> org-speed-command-hook '(org-speed-command-default-hook org-babel-speed-command-hook)
> org-metaup-hook '(org-babel-load-in-session-maybe)
> org-capture-templates '(("h" "Journal headline" entry (file+datetree "~/tmp/journal.org"))
> 			 ("n" "Journal note" plain (file+datetree "~/tmp/journal.org")))
> org-after-todo-state-change-hook '(org-clock-out-if-current)
> org-export-blocks-postblock-hook '(org-exp-res/src-name-cleanup)
> org-export-latex-format-toc-function 'org-export-latex-format-toc-default
> org-tab-first-hook '(org-hide-block-toggle-maybe org-src-native-tab-command-maybe org-babel-hide-result-toggle-maybe)
> org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer)
> org-confirm-shell-link-function 'yes-or-no-p
> org-export-first-hook '(org-beamer-initialize-open-trackers)
> org-agenda-before-write-hook '(org-agenda-add-entry-text)
> org-babel-pre-tangle-hook '(save-buffer)
> org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers org-cycle-show-empty-lines
> 		  org-optimize-window-after-visibility-change)
> org-export-preprocess-before-normalizing-links-hook '(org-remove-file-link-modifiers)
> org-mode-hook '((lambda nil
> 		  (org-add-hook (quote change-major-mode-hook) (quote org-show-block-all) (quote append) (quote local)))
> 		 (lambda nil
> 		  (org-add-hook (quote change-major-mode-hook) (quote org-babel-show-result-all) (quote append) (quote local)))
> 		 org-babel-result-hide-spec org-babel-hide-all-hashes)
> org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point org-babel-execute-safely-maybe)
> org-confirm-elisp-link-function 'yes-or-no-p
> org-export-interblocks '((lob org-babel-exp-lob-one-liners) (src org-babel-exp-inline-src-blocks))
> org-occur-hook '(org-first-headline-recenter)
> org-from-is-user-regexp "\\<phil@bo\\.sak\\.lan\\>\\|\\<Philip Rooke\\>"
> org-export-preprocess-before-selecting-backend-code-hook '(org-beamer-select-beamer-code)
> org-export-latex-final-hook '(org-beamer-amend-header org-beamer-fix-toc org-beamer-auto-fragile-frames
> 			       org-beamer-place-default-actions-for-lists)
> org-metadown-hook '(org-babel-pop-to-session-maybe)
> org-export-blocks '((src org-babel-exp-src-block nil) (comment org-export-blocks-format-comment t)
> 		     (ditaa org-export-blocks-format-ditaa nil) (dot org-export-blocks-format-dot nil))
> )
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Bug: datetree capture from agenda [7.5 (release_7.5.135.g7021f.dirty)]
  2011-04-06  6:52 ` Carsten Dominik
@ 2011-04-06 10:50   ` Philip Rooke
  2011-04-06 11:06     ` Carsten Dominik
                       ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Philip Rooke @ 2011-04-06 10:50 UTC (permalink / raw)
  To: Carsten Dominik; +Cc: emacs-orgmode

Carsten Dominik <carsten.dominik@gmail.com> writes:

Thanks Carsten,

> I can see that it might be nice to simply add some text
> under the date headline in a date tree, in order to build
> up a long journal entry from little snippets.

Yes, this is exactly what I do over the course of the day and I find it
very useful.  The trouble I run into is that, all too often, I forget or
don't have time to add an entry on the day the noteworthy event
happened.  I use the agenda capture action (k c) in this situation since
the date I am on in the agenda is picked up automatically by the
template and the right date headline is created at the right place in
the journal.  Currently I have to then cut/paste the note, which is the
bit I was trying to avoid.

> However, you are trying to *mix* headline entries and plain entries
> under the same date node in the tree, and this seems to be impossible.

Sorry, my fault, the full version of journal template I currently use
ends up creating entries like:

*** 2011-04-06 Wednesday

    Try and clarify journal/note taking use case for Carsten
    [2011-04-06 Wed 10:03]

    Apologise for confusing Carsten as I don't actually use headline
    entries in the journal, plain only
    [2011-04-06 Wed 10:05]

> Wouldn't a better strategy be to have the "plain" section be started with a time,

Well, as you see above I actually do like to have the time of the entry,
but the only way I thought I could do that was using the %U keyword in
the template (which is clumsy as it then duplicates the date/day).

>
> (the %<%H:%M> requires the current git release...)

... which, coincidently, seems to have appeared this morning :-)

That means I can use something like:

(setq org-capture-templates
      '(("e" "Journal entry" entry (file+datetree "/tmp/journal.org")
         "* %<%H:%M>\n  %?")
        ("l" "Journal late entry" entry (file+datetree "/tmp/journal.org")
         "* Retrospectively added %<%Y-%m-%d %H:%M>\n  %?")))

Used from an agenda action the retrospective date headline/notes are
created and filed in the right place, giving something like:

* 2011
** 2011-04 April
*** 2011-04-05 Tuesday
**** Retrospectively added 2011-04-06 11:35
     Checked with Bastien about committing doc string changes
*** 2011-04-06 Wednesday
**** 11:33
     Updated Org to latest version in order to get new capture keyword
     expansion capability
**** 11:36
     Problem solved. Brilliant, that works.  Carsten never ceases to
     amaze...

Thank you.

Phil

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Bug: datetree capture from agenda [7.5 (release_7.5.135.g7021f.dirty)]
  2011-04-06 10:50   ` Philip Rooke
@ 2011-04-06 11:06     ` Carsten Dominik
  2011-04-06 11:09     ` Carsten Dominik
  2011-04-07 15:05     ` Carsten Dominik
  2 siblings, 0 replies; 6+ messages in thread
From: Carsten Dominik @ 2011-04-06 11:06 UTC (permalink / raw)
  To: Philip Rooke; +Cc: emacs-orgmode


On Apr 6, 2011, at 12:50 PM, Philip Rooke wrote:

> Carsten Dominik <carsten.dominik@gmail.com> writes:
> 
> Thanks Carsten,
> 
>> I can see that it might be nice to simply add some text
>> under the date headline in a date tree, in order to build
>> up a long journal entry from little snippets.
> 
> Yes, this is exactly what I do over the course of the day and I find it
> very useful.  The trouble I run into is that, all too often, I forget or
> don't have time to add an entry on the day the noteworthy event
> happened.  I use the agenda capture action (k c) in this situation since
> the date I am on in the agenda is picked up automatically by the
> template and the right date headline is created at the right place in
> the journal.  Currently I have to then cut/paste the note, which is the
> bit I was trying to avoid.
> 
>> However, you are trying to *mix* headline entries and plain entries
>> under the same date node in the tree, and this seems to be impossible.
> 
> Sorry, my fault, the full version of journal template I currently use
> ends up creating entries like:
> 
> *** 2011-04-06 Wednesday
> 
>    Try and clarify journal/note taking use case for Carsten
>    [2011-04-06 Wed 10:03]
> 
>    Apologise for confusing Carsten as I don't actually use headline
>    entries in the journal, plain only
>    [2011-04-06 Wed 10:05]
> 
>> Wouldn't a better strategy be to have the "plain" section be started with a time,
> 
> Well, as you see above I actually do like to have the time of the entry,
> but the only way I thought I could do that was using the %U keyword in
> the template (which is clumsy as it then duplicates the date/day).
> 
>> 
>> (the %<%H:%M> requires the current git release...)
> 
> ... which, coincidently, seems to have appeared this morning :-)
> 
> That means I can use something like:
> 
> (setq org-capture-templates
>      '(("e" "Journal entry" entry (file+datetree "/tmp/journal.org")
>         "* %<%H:%M>\n  %?")
>        ("l" "Journal late entry" entry (file+datetree "/tmp/journal.org")
>         "* Retrospectively added %<%Y-%m-%d %H:%M>\n  %?")))
> 
> Used from an agenda action the retrospective date headline/notes are
> created and filed in the right place, giving something like:
> 
> * 2011
> ** 2011-04 April
> *** 2011-04-05 Tuesday
> **** Retrospectively added 2011-04-06 11:35
>     Checked with Bastien about committing doc string changes
> *** 2011-04-06 Wednesday
> **** 11:33
>     Updated Org to latest version in order to get new capture keyword
>     expansion capability
> **** 11:36
>     Problem solved. Brilliant, that works.  Carsten never ceases to
>     amaze...
> 
> Thank you.

You're welcome.

- Carsten

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Bug: datetree capture from agenda [7.5 (release_7.5.135.g7021f.dirty)]
  2011-04-06 10:50   ` Philip Rooke
  2011-04-06 11:06     ` Carsten Dominik
@ 2011-04-06 11:09     ` Carsten Dominik
  2011-04-07 15:05     ` Carsten Dominik
  2 siblings, 0 replies; 6+ messages in thread
From: Carsten Dominik @ 2011-04-06 11:09 UTC (permalink / raw)
  To: Philip Rooke; +Cc: emacs-orgmode


On Apr 6, 2011, at 12:50 PM, Philip Rooke wrote:

> Carsten Dominik <carsten.dominik@gmail.com> writes:
> 
> Thanks Carsten,
> 
>> I can see that it might be nice to simply add some text
>> under the date headline in a date tree, in order to build
>> up a long journal entry from little snippets.
> 
> Yes, this is exactly what I do over the course of the day and I find it
> very useful.  The trouble I run into is that, all too often, I forget or
> don't have time to add an entry on the day the noteworthy event
> happened.  I use the agenda capture action (k c) in this situation since
> the date I am on in the agenda is picked up automatically by the
> template and the right date headline is created at the right place in
> the journal.  Currently I have to then cut/paste the note, which is the
> bit I was trying to avoid.
> 
>> However, you are trying to *mix* headline entries and plain entries
>> under the same date node in the tree, and this seems to be impossible.
> 
> Sorry, my fault, the full version of journal template I currently use
> ends up creating entries like:
> 
> *** 2011-04-06 Wednesday
> 
>    Try and clarify journal/note taking use case for Carsten
>    [2011-04-06 Wed 10:03]
> 
>    Apologise for confusing Carsten as I don't actually use headline
>    entries in the journal, plain only
>    [2011-04-06 Wed 10:05]
> 
>> Wouldn't a better strategy be to have the "plain" section be started with a time,
> 
> Well, as you see above I actually do like to have the time of the entry,
> but the only way I thought I could do that was using the %U keyword in
> the template (which is clumsy as it then duplicates the date/day).
> 
>> 
>> (the %<%H:%M> requires the current git release...)
> 
> ... which, coincidently, seems to have appeared this morning :-)

Yes, but even before that you could have done
%(format-time-string "%H:%M")

Cheers

- Carsten

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Bug: datetree capture from agenda [7.5 (release_7.5.135.g7021f.dirty)]
  2011-04-06 10:50   ` Philip Rooke
  2011-04-06 11:06     ` Carsten Dominik
  2011-04-06 11:09     ` Carsten Dominik
@ 2011-04-07 15:05     ` Carsten Dominik
  2 siblings, 0 replies; 6+ messages in thread
From: Carsten Dominik @ 2011-04-07 15:05 UTC (permalink / raw)
  To: Philip Rooke; +Cc: emacs-orgmode


On 6.4.2011, at 12:50, Philip Rooke wrote:

> Carsten Dominik <carsten.dominik@gmail.com> writes:
> 
> Thanks Carsten,
> 
>> I can see that it might be nice to simply add some text
>> under the date headline in a date tree, in order to build
>> up a long journal entry from little snippets.
> 
> Yes, this is exactly what I do over the course of the day and I find it
> very useful.  The trouble I run into is that, all too often, I forget or
> don't have time to add an entry on the day the noteworthy event
> happened.  I use the agenda capture action (k c) in this situation since
> the date I am on in the agenda is picked up automatically by the
> template and the right date headline is created at the right place in
> the journal.  Currently I have to then cut/paste the note, which is the
> bit I was trying to avoid.
> 
>> However, you are trying to *mix* headline entries and plain entries
>> under the same date node in the tree, and this seems to be impossible.
> 
> Sorry, my fault, the full version of journal template I currently use
> ends up creating entries like:
> 
> *** 2011-04-06 Wednesday
> 
>    Try and clarify journal/note taking use case for Carsten
>    [2011-04-06 Wed 10:03]
> 
>    Apologise for confusing Carsten as I don't actually use headline
>    entries in the journal, plain only
>    [2011-04-06 Wed 10:05]

This has kept me thinking.  I think it should be possible
to add plain text templates to a node target, and now I think I
know how to do this in a way that allows mixing with headlined
templates.  I am just adding plain text stuff to the text before
the first the first child, and entry-types as a child *after* this
initial text, however long it may be.

There are still good reasons so use the setup we have
constructed the other day, i.e. using only headlined snippets
for the journal.  One reason to use this is that you then
have structure editing at your disposal to reorganize
the journal.  For example if you have added something to
a past date, then you can go in and easily move that new
entry to the "right" position in the journal node, so
that the sequence of events during that day is
reflected correctly.

However, is you want, you can now use plain templates and point
them at a date tree or any other Org node, and get what you expect.
Here is an example:

(setq org-capture-templates
     '(("h" "Journal headline" entry (file+datetree "/tmp/journal.org"))
       ("n" "Journal note" plain (file+datetree "/tmp/journal.org")
	"%<%H:%M> %?" :empty-lines 1)))

Thanks for finding this inconsistency, Philip.

- Carsten


> 
>> Wouldn't a better strategy be to have the "plain" section be started with a time,
> 
> Well, as you see above I actually do like to have the time of the entry,
> but the only way I thought I could do that was using the %U keyword in
> the template (which is clumsy as it then duplicates the date/day).
> 
>> 
>> (the %<%H:%M> requires the current git release...)
> 
> ... which, coincidently, seems to have appeared this morning :-)
> 
> That means I can use something like:
> 
> (setq org-capture-templates
>      '(("e" "Journal entry" entry (file+datetree "/tmp/journal.org")
>         "* %<%H:%M>\n  %?")
>        ("l" "Journal late entry" entry (file+datetree "/tmp/journal.org")
>         "* Retrospectively added %<%Y-%m-%d %H:%M>\n  %?")))
> 
> Used from an agenda action the retrospective date headline/notes are
> created and filed in the right place, giving something like:
> 
> * 2011
> ** 2011-04 April
> *** 2011-04-05 Tuesday
> **** Retrospectively added 2011-04-06 11:35
>     Checked with Bastien about committing doc string changes
> *** 2011-04-06 Wednesday
> **** 11:33
>     Updated Org to latest version in order to get new capture keyword
>     expansion capability
> **** 11:36
>     Problem solved. Brilliant, that works.  Carsten never ceases to
>     amaze...
> 
> Thank you.
> 
> Phil
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-04-07 15:05 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-04-05 21:50 Bug: datetree capture from agenda [7.5 (release_7.5.135.g7021f.dirty)] Philip Rooke
2011-04-06  6:52 ` Carsten Dominik
2011-04-06 10:50   ` Philip Rooke
2011-04-06 11:06     ` Carsten Dominik
2011-04-06 11:09     ` Carsten Dominik
2011-04-07 15:05     ` Carsten Dominik

Code repositories for project(s) associated with this 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).