emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Agenda clocktable & archive issue
@ 2024-01-28 18:59 Andrew Hyatt
  2024-01-28 20:40 ` Ihor Radchenko
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Hyatt @ 2024-01-28 18:59 UTC (permalink / raw)
  To: emacs-orgmode


I've noticed that in the agenda, the clocktable report (from the "R"
key), does not include archive files, even when I have set clocktables
to do so in my init-file:

(plist-put org-clocktable-defaults :scope 'agenda-with-archives)

First of all, I think it makes more logical sense to include archives,
since there isn't anything about archiving that means the times that the
items are worked on are no longer important for reports.

But, even if that's not the case, it should be that the user can change
this, but right now it's all hardcoded in the org-agenda-list function.
The reason it doesn't is because in org-dblock-write:clocktable, the
plists are combined with the params taking precedence, which probably
doesn't make sense. In this case, the params are the defaults, and
org-clocktable-defaults are the things I can modify, so it seems like
org-clocktable-defaults should take preference.

I'm happy to send a patch to fix this, but not sure what the best
solution here.  My guess is that the safest fix is to make another
variable for whether the report should include archives or not.  But I
suspect the best fix is to make the org-clocktable-defaults take
precedence.

Is my understanding of this correct?  Any thoughts on what should be
done here?


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

* Re: Agenda clocktable & archive issue
  2024-01-28 18:59 Agenda clocktable & archive issue Andrew Hyatt
@ 2024-01-28 20:40 ` Ihor Radchenko
  2024-01-28 22:18   ` Andrew Hyatt
  0 siblings, 1 reply; 8+ messages in thread
From: Ihor Radchenko @ 2024-01-28 20:40 UTC (permalink / raw)
  To: Andrew Hyatt; +Cc: emacs-orgmode

Andrew Hyatt <ahyatt@gmail.com> writes:

> I've noticed that in the agenda, the clocktable report (from the "R"
> key), does not include archive files, even when I have set clocktables
> to do so in my init-file:
>
> (plist-put org-clocktable-defaults :scope 'agenda-with-archives)

AFAIK, clocktable scope in agenda is controlled by the agenda's scope.
If you have `org-agenda-archives-mode' enabled, archives will contribute
to the agenda report as well.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


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

* Re: Agenda clocktable & archive issue
  2024-01-28 20:40 ` Ihor Radchenko
@ 2024-01-28 22:18   ` Andrew Hyatt
  2024-01-28 22:34     ` Ihor Radchenko
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Hyatt @ 2024-01-28 22:18 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: emacs-orgmode

Ihor Radchenko <yantar92@posteo.net> writes:

> Andrew Hyatt <ahyatt@gmail.com> writes:
>
>> I've noticed that in the agenda, the clocktable report (from the "R"
>> key), does not include archive files, even when I have set clocktables
>> to do so in my init-file:
>>
>> (plist-put org-clocktable-defaults :scope 'agenda-with-archives)
>
> AFAIK, clocktable scope in agenda is controlled by the agenda's scope.
> If you have `org-agenda-archives-mode' enabled, archives will contribute
> to the agenda report as well.

Thank you, I indeed didn't know that, and it did help. After some
digging around, it seems like the way to set this as a default is to set
(setq org-agenda-archives-mode t), which is a bit sketchy, since
normally you wouldn't set modes with setq, but by calling the mode. I
think this could be improved on, so I can send a patch for this if you
agree.


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

* Re: Agenda clocktable & archive issue
  2024-01-28 22:18   ` Andrew Hyatt
@ 2024-01-28 22:34     ` Ihor Radchenko
  2024-01-29  1:36       ` Andrew Hyatt
  0 siblings, 1 reply; 8+ messages in thread
From: Ihor Radchenko @ 2024-01-28 22:34 UTC (permalink / raw)
  To: Andrew Hyatt; +Cc: emacs-orgmode

Andrew Hyatt <ahyatt@gmail.com> writes:

>> AFAIK, clocktable scope in agenda is controlled by the agenda's scope.
>> If you have `org-agenda-archives-mode' enabled, archives will contribute
>> to the agenda report as well.
>
> Thank you, I indeed didn't know that, and it did help. After some
> digging around, it seems like the way to set this as a default is to set
> (setq org-agenda-archives-mode t), which is a bit sketchy, since
> normally you wouldn't set modes with setq, but by calling the mode. I
> think this could be improved on, so I can send a patch for this if you
> agree.

The normal way is in org-agenda-hook - org-agenda-archives-mode it is a minor mode.

Still, I do not mind adding customization to enable it during startup,
similar to the existing customizations:
`org-agenda-start-with-log-mode',
`org-agenda-start-with-entry-text-mode',
`org-agenda-start-with-follow-mode', etc.

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


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

* Re: Agenda clocktable & archive issue
  2024-01-28 22:34     ` Ihor Radchenko
@ 2024-01-29  1:36       ` Andrew Hyatt
  2024-01-29 13:11         ` Ihor Radchenko
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Hyatt @ 2024-01-29  1:36 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1035 bytes --]


Ihor Radchenko <yantar92@posteo.net> writes:

> Andrew Hyatt <ahyatt@gmail.com> writes:
>
>>> AFAIK, clocktable scope in agenda is controlled by the agenda's scope.
>>> If you have `org-agenda-archives-mode' enabled, archives will contribute
>>> to the agenda report as well.
>>
>> Thank you, I indeed didn't know that, and it did help. After some
>> digging around, it seems like the way to set this as a default is to set
>> (setq org-agenda-archives-mode t), which is a bit sketchy, since
>> normally you wouldn't set modes with setq, but by calling the mode. I
>> think this could be improved on, so I can send a patch for this if you
>> agree.
>
> The normal way is in org-agenda-hook - org-agenda-archives-mode it is a minor mode.
>
> Still, I do not mind adding customization to enable it during startup,
> similar to the existing customizations:
> `org-agenda-start-with-log-mode',
> `org-agenda-start-with-entry-text-mode',
> `org-agenda-start-with-follow-mode', etc.

Thank you, that makes sense.  I've attached the patch.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: patch for org-agenda-start-with-archives --]
[-- Type: text/x-patch, Size: 1600 bytes --]

From 4eee33856af687564a522ab40ebed4ba5d848cf4 Mon Sep 17 00:00:00 2001
From: Andrew Hyatt <ahyatt@gmail.com>
Date: Sun, 28 Jan 2024 21:33:20 -0400
Subject: [PATCH] Add org-agenda-start-with-archives-mode

---
 lisp/org-agenda.el | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index 20da364b5..92657aa86 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -1102,6 +1102,11 @@ removed from entry text before it is shown in the agenda."
   :group 'org-agenda
   :type 'string)
 
+(defcustom org-agenda-start-with-archives-mode nil
+  "Initial value of archive-mode in a newly created agenda window."
+  :group 'org-agenda-startup
+  :type 'boolean)
+
 (defvar org-agenda-entry-text-cleanup-hook nil
   "Hook that is run after basic cleanup of entry text to be shown in agenda.
 This cleanup is done in a temporary buffer, so the function may inspect and
@@ -2372,7 +2377,8 @@ The following commands are available:
     (setq org-agenda-follow-mode org-agenda-start-with-follow-mode
 	  org-agenda-entry-text-mode org-agenda-start-with-entry-text-mode
 	  org-agenda-show-log org-agenda-start-with-log-mode
-	  org-agenda-clockreport-mode org-agenda-start-with-clockreport-mode))
+	  org-agenda-clockreport-mode org-agenda-start-with-clockreport-mode
+          org-agenda-archives-mode org-agenda-start-with-archives-mode))
   (add-to-invisibility-spec '(org-filtered))
   (org-fold-core-initialize `(,org-link--description-folding-spec
                               ,org-link--link-folding-spec))
-- 
2.39.3 (Apple Git-145)


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

* Re: Agenda clocktable & archive issue
  2024-01-29  1:36       ` Andrew Hyatt
@ 2024-01-29 13:11         ` Ihor Radchenko
  2024-01-29 16:46           ` Andrew Hyatt
  0 siblings, 1 reply; 8+ messages in thread
From: Ihor Radchenko @ 2024-01-29 13:11 UTC (permalink / raw)
  To: Andrew Hyatt; +Cc: emacs-orgmode

Andrew Hyatt <ahyatt@gmail.com> writes:

>> Still, I do not mind adding customization to enable it during startup,
>> similar to the existing customizations:
>> `org-agenda-start-with-log-mode',
>> `org-agenda-start-with-entry-text-mode',
>> `org-agenda-start-with-follow-mode', etc.
>
> Thank you, that makes sense.  I've attached the patch.

Thank you!

> From 4eee33856af687564a522ab40ebed4ba5d848cf4 Mon Sep 17 00:00:00 2001
> From: Andrew Hyatt <ahyatt@gmail.com>
> Date: Sun, 28 Jan 2024 21:33:20 -0400
> Subject: [PATCH] Add org-agenda-start-with-archives-mode

May you please also add a proper commit message? See
https://orgmode.org/worg/org-contribute.html#commit-messages

> +(defcustom org-agenda-start-with-archives-mode nil
> +  "Initial value of archive-mode in a newly created agenda window."
> +  :group 'org-agenda-startup
> +  :type 'boolean)

Please add :package-version '(Org . "9.7") keyword to indicate when the
new option is added.

Also, please add an entry in etc/ORG_NEWS file and document the new
option in the manual (11.5 Commands in the Agenda Buffer display section)

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


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

* Re: Agenda clocktable & archive issue
  2024-01-29 13:11         ` Ihor Radchenko
@ 2024-01-29 16:46           ` Andrew Hyatt
  2024-01-29 17:00             ` Ihor Radchenko
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Hyatt @ 2024-01-29 16:46 UTC (permalink / raw)
  To: Ihor Radchenko; +Cc: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1286 bytes --]

Ihor Radchenko <yantar92@posteo.net> writes:

> Andrew Hyatt <ahyatt@gmail.com> writes:
>
>>> Still, I do not mind adding customization to enable it during startup,
>>> similar to the existing customizations:
>>> `org-agenda-start-with-log-mode',
>>> `org-agenda-start-with-entry-text-mode',
>>> `org-agenda-start-with-follow-mode', etc.
>>
>> Thank you, that makes sense.  I've attached the patch.
>
> Thank you!
>
>> From 4eee33856af687564a522ab40ebed4ba5d848cf4 Mon Sep 17 00:00:00 2001
>> From: Andrew Hyatt <ahyatt@gmail.com>
>> Date: Sun, 28 Jan 2024 21:33:20 -0400
>> Subject: [PATCH] Add org-agenda-start-with-archives-mode
>
> May you please also add a proper commit message? See
> https://orgmode.org/worg/org-contribute.html#commit-messages
>
>> +(defcustom org-agenda-start-with-archives-mode nil
>> +  "Initial value of archive-mode in a newly created agenda window."
>> +  :group 'org-agenda-startup
>> +  :type 'boolean)
>
> Please add :package-version '(Org . "9.7") keyword to indicate when the
> new option is added.
>
> Also, please add an entry in etc/ORG_NEWS file and document the new
> option in the manual (11.5 Commands in the Agenda Buffer display section)

Thanks for the pointers; it's been years since my last contribution.
I've attached the latest patch.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: path for addition of org-agenda-start-with-archives-mode --]
[-- Type: text/x-patch, Size: 3567 bytes --]

From 4798f9b7fadc078a914cd399e797084c166fd1b0 Mon Sep 17 00:00:00 2001
From: Andrew Hyatt <ahyatt@gmail.com>
Date: Sun, 28 Jan 2024 21:33:20 -0400
Subject: [PATCH] lisp/org-agenda.el Add org-agenda-start-with-archives-mode

* lisp/org-agenda.el: Add org-agenda-start-with-archives-mode.
(org-agenda-mode): Set value of org-agenda-archive-mode according to
value of new variable org-agenda-start-with-archives-mode.

* doc/org-manual.org: Note new variable in documentation of
org-agenda-archives.mode.

* etc/ORG-NEWS: Note change to add org-agenda-start-with-archives-mode.
---
 doc/org-manual.org |  6 +++++-
 etc/ORG-NEWS       |  5 +++++
 lisp/org-agenda.el | 11 ++++++++++-
 3 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/doc/org-manual.org b/doc/org-manual.org
index ffb025c93..86008164e 100644
--- a/doc/org-manual.org
+++ b/doc/org-manual.org
@@ -10077,9 +10077,13 @@ the other commands, point needs to be in the desired line.
 
   #+kindex: v a
   #+findex: org-agenda-archives-mode
+  #+vindex: org-agenda-start-with-clockreport-mode
   Toggle Archives mode.  In Archives mode, trees that are archived
   (see [[*Internal archiving]]) are also scanned when producing the
-  agenda.  To exit archives mode, press {{{kbd(v a)}}} again.
+  agenda.  To exit archives mode, press {{{kbd(v a)}}} again.  The
+  initial setting for this mode in new agenda buffers can set with the
+  variable ~org-agenda-start-with-archives-mode~, which can be set
+  with the same values as ~org-agenda-archives-mode~.
 
 - {{{kbd(v A)}}} ::
 
diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index f4e98d78b..82090df32 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -686,6 +686,11 @@ manner with ~run-python~.
 
 This allows to run functions after ~org-indent~ intializes a buffer to
 enrich its properties.
+*** New option ~org-agenda-start-with-archives-mode~
+
+This option starts the agenda to automatically include archives,
+propagating the value for this variable to ~org-agenda-archives-mode~.
+For acceptable values and their meaning, see the value of that variable.
 
 ** New features
 *** =ob-plantuml.el=: Support tikz file format output
diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index 20da364b5..7fe482f30 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -1102,6 +1102,14 @@ removed from entry text before it is shown in the agenda."
   :group 'org-agenda
   :type 'string)
 
+(defcustom org-agenda-start-with-archives-mode nil
+  "Initial value of archive-mode in a newly created agenda window.
+See `org-agenda-archives-mode' for acceptable values and their
+meaning."
+  :group 'org-agenda-startup
+  :package-version '(Org . "9.7")
+  :type 'boolean)
+
 (defvar org-agenda-entry-text-cleanup-hook nil
   "Hook that is run after basic cleanup of entry text to be shown in agenda.
 This cleanup is done in a temporary buffer, so the function may inspect and
@@ -2372,7 +2380,8 @@ The following commands are available:
     (setq org-agenda-follow-mode org-agenda-start-with-follow-mode
 	  org-agenda-entry-text-mode org-agenda-start-with-entry-text-mode
 	  org-agenda-show-log org-agenda-start-with-log-mode
-	  org-agenda-clockreport-mode org-agenda-start-with-clockreport-mode))
+	  org-agenda-clockreport-mode org-agenda-start-with-clockreport-mode
+          org-agenda-archives-mode org-agenda-start-with-archives-mode))
   (add-to-invisibility-spec '(org-filtered))
   (org-fold-core-initialize `(,org-link--description-folding-spec
                               ,org-link--link-folding-spec))
-- 
2.39.3 (Apple Git-145)


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

* Re: Agenda clocktable & archive issue
  2024-01-29 16:46           ` Andrew Hyatt
@ 2024-01-29 17:00             ` Ihor Radchenko
  0 siblings, 0 replies; 8+ messages in thread
From: Ihor Radchenko @ 2024-01-29 17:00 UTC (permalink / raw)
  To: Andrew Hyatt; +Cc: emacs-orgmode

Andrew Hyatt <ahyatt@gmail.com> writes:

> Thanks for the pointers; it's been years since my last contribution.
> I've attached the latest patch.

Thanks!
Applied, onto main, with amendments.
I have edited the commit message, quoting the Elisp symbols with `...'
and changed the first line a bit. I also fixed #+vindex entry (you
copy-pasted a wrong variable name) and :type specification
(org-agenda-archives-mode can be set to 'tree symbol, not just boolean).
https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=f490c1548

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>


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

end of thread, other threads:[~2024-01-29 16:58 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-28 18:59 Agenda clocktable & archive issue Andrew Hyatt
2024-01-28 20:40 ` Ihor Radchenko
2024-01-28 22:18   ` Andrew Hyatt
2024-01-28 22:34     ` Ihor Radchenko
2024-01-29  1:36       ` Andrew Hyatt
2024-01-29 13:11         ` Ihor Radchenko
2024-01-29 16:46           ` Andrew Hyatt
2024-01-29 17:00             ` Ihor Radchenko

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).