From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp0 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id qPMvAkOZsl+MWQAA0tVLHw (envelope-from ) for ; Mon, 16 Nov 2020 15:22:43 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp0 with LMTPS id uPi1OUKZsl/8IQAA1q6Kng (envelope-from ) for ; Mon, 16 Nov 2020 15:22:42 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 3D46D9403AB for ; Mon, 16 Nov 2020 15:22:42 +0000 (UTC) Received: from localhost ([::1]:41058 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kegL1-0001SP-VF for larch@yhetil.org; Mon, 16 Nov 2020 10:22:39 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:44184) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kegK0-0001Rx-Oj for emacs-orgmode@gnu.org; Mon, 16 Nov 2020 10:21:36 -0500 Received: from mail-lf1-x129.google.com ([2a00:1450:4864:20::129]:34487) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kegJy-0007sF-6h for emacs-orgmode@gnu.org; Mon, 16 Nov 2020 10:21:36 -0500 Received: by mail-lf1-x129.google.com with SMTP id e139so6177430lfd.1 for ; Mon, 16 Nov 2020 07:21:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=b6WeqgrfrnYnX+xUKVHG32M2OXr4080dAEXsVghnr7c=; b=YedtFxOV+ptIRlq0ZLLYBgpfaoZ/plOYMjYsGrSXv97fhiiAsiLMxqV4xyw4IyfCok km8yfHnZowhqwThTcvFqzE03d+NLn+/aW1Q7YpwezPSQcaTIHofyrGkN3p6ed4T8bvp5 9kOkxE+xSrD0you6PnWA82arytIQPVOkcdH1c13uTMR0XCOw7C4trhRLWcfiH24ZltNO XCL4v4iB88eEd4ZcEPMzmHiHSu8cPFcJgL6dEneN6X+K0rIpbXGgeRnGbYb677MOV5nX njkA58LVDbKz9ci4ybYAHF5eHsaMXUDY3QWl8lLMdxkxL6R/xgjsM6fe476J6I/TysJ6 i8Mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=b6WeqgrfrnYnX+xUKVHG32M2OXr4080dAEXsVghnr7c=; b=RPMuLdPon3AGFqFvWPNWNBa4ORXclDyYApc2oZ5xnEGGdnd6cwvkCgvxEGyxyE8V16 r1ry3LfRDMf6tDtEmRJerB1OgU5V8QPxxYSxu+OLy7USbtTn0vnoyqfJR6I7NRLamJ5m 5rxIvtzC0aGpOLw2qXKrbuj7Rv1/1T5TtmhhTpdN1kEUW+kKj3QFG62SqoSC0DoQhNp1 HoQ63gu5GIMVuQlHIDSXwV5sMmRzCwCuvUpYnGcjbLbA4fqAeRwhilp0QL1rWQCKKHjv +MCcJBbNs52PDOlzfp6vBHCp1Wa2kojqpg8K3Npq7pjBP57gTEdhCowOPNHovV9TzVb/ KGlw== X-Gm-Message-State: AOAM530byHjD9NGzie9sYVMTaEJIU/wkJj7MQfJ5n7CIt2SPf5gVVzxj GG+H7WdzFWjnci+qywLmITMfIYUtBYwe3q8yYko= X-Google-Smtp-Source: ABdhPJxJD86woKTlbHqXpv+1SAGYWaAJSNPr0Xck2AzkCr+bMwhHWqeGvkU9n9nHd7RnZAnMV0JeQwjQKom5jx0ddCY= X-Received: by 2002:ac2:5cc8:: with SMTP id f8mr6259187lfq.334.1605540091570; Mon, 16 Nov 2020 07:21:31 -0800 (PST) MIME-Version: 1.0 References: <87lffj7zss.fsf@localhost> <87zh3mlvj7.fsf@localhost> In-Reply-To: <87zh3mlvj7.fsf@localhost> From: Gerardo Moro Date: Mon, 16 Nov 2020 17:21:20 +0200 Message-ID: Subject: Re: Archiving repeated tasks under corresponding date tree for each repeated item To: Ihor Radchenko Content-Type: multipart/alternative; boundary="000000000000d4adda05b43aee70" Received-SPF: pass client-ip=2a00:1450:4864:20::129; envelope-from=gerardomoro37@gmail.com; helo=mail-lf1-x129.google.com X-detected-operating-system: by eggs.gnu.org: No matching host in p0f cache. That's all we know. X-Spam_score_int: -17 X-Spam_score: -1.8 X-Spam_bar: - X-Spam_report: (-1.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: emacs-orgmode@gnu.org Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Scanner: ns3122888.ip-94-23-21.eu Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20161025 header.b=YedtFxOV; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Spam-Score: -1.71 X-TUID: scaUC91BHbhn --000000000000d4adda05b43aee70 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Wow, I=E2=80=99m impressed by your help, you are very kind! I am also impressed by your researching skills, I gave a long go at trying to find some code online unsuccessfully. Yes, I agree that the agenda is a nice way to go to visualize my past events (with v A). My idea of not relying on the agenda interface is just to be free and have an archive org file with all my entries, easier to scroll from any device without the need of Emacs. As for the function to archive the individual repeated tasks into their corresponding tree: I=E2=80=99m not an emacs lisp programmer (or any kind of!). As I see, this = function works only =E2=80=9Cat point=E2=80=9D. The way I work is I mark tasks as DONE during a couple weeks, and then I call this function that tracks all my org file and archives all DONE / CANCELLED items. This is great because I don=E2=80=99t have to do it one by one. (defun my/org-archive-done-tasks-file () (interactive) (org-map-entries (lambda () (org-archive-subtree) (setq org-map-continue-from (outline-previous-heading))) "TODO=3D\"DONE\"|TODO=3D\"CANCELED\\"" 'file)) Do you think there is a way to combine these two functions so that when I call the fucntion, I get to archive all DONE/CANCELLED & repeated DONE/CANCELLED tasks (the latter without deleting the logged task or its respective heading)? Best, G. El jue., 12 nov. 2020 a las 12:28, Ihor Radchenko () escribi=C3=B3: > > Hope it is clear now, thanks so much for any help! > > Sorry for not making my previous email more clear. I actually understood > what you want to achieve. My suggestion was rather an alternative > approach to "revisit the past" - you can always build agenda view for a > specific date (or range of dates) in the past. That way, you would not > need to look into archive file manually at all. > > On your actual question, I think I found some old reddit comment [1] that > may be relevant. The code provides a new command to archive an org > headline without actually deleting it. That way, you will get a copy of > your headline on the date of archival. Below is the original code with > me adding docstrings for more clarity. > > (defun my/org-archive-delete-logbook () > "Delete LOGBOOK of the entry at point. It is obsolete once the copy of > the item is moved to the archive file." > (save-excursion > (org-end-of-meta-data) > (let ((elm (org-element-at-point))) > (when (and > (equal (org-element-type elm) 'drawer) > (equal (org-element-property :drawer-name elm) "LOGBOOK")) > (delete-region (org-element-property :begin elm) > (org-element-property :end elm)))))) > > (defun my/org-archive-without-delete () > "Archive item at point, but do not actually delete it." > (cl-letf (((symbol-function 'org-cut-subtree) (lambda () nil))) > (org-archive-subtree))) > > (defun my/org-archive-logbook () > "Create an archive copy of subtree at point and delete LOGBOOK in the > first headline of the subtree." > (interactive) > (my/org-archive-without-delete) > (my/org-archive-delete-logbook)) > > I think you can modify the last function and call it in > org-trigger-hook, so that repeating items would be archived without > deleting every time you mark the item DONE. > > [1] > https://old.reddit.com/r/orgmode/comments/dg43hs/can_i_archive_a_property= _drawer/f3frk2n/ > > Best, > Ihor > > Gerardo Moro writes: > > > Thanks, Ihor. > > Indeed, that is an excellent feature of agenda. I use it sometimes to > > visualize what I have DONE during the week on the sopt. > > What I aim to accomplish however is a more systematic log of all the DO= NE > > tasks, this is, to have an archive file where to archive all tasks. > > This file is in the format: > > > > 2020 > > 2020-01-01 DONE task1 > > 2020-01-12 DONE task2 > > 2020-02-01 CANCELLED task3 > > > > So it is indeed a datetree file where I can revisit the past :) if you > will. > > The problem with habits and repeated tasks is that they don't get > archived > > when DONE... > > They get archived once the task is cancelled or completed as a whole, a= ll > > under the day the task stopped continuing, under which I have all the > > logged individual completion. > > It would be desirable to have each "completion" archived under its > > corresponding datetree, it is more meaningful :) > > > > Hope it is clear now, thanks so much for any help! > > GM > > So even if I have beeng doing the task every wednesday for a year, it > won't > > be archived > > > > El mar., 3 nov. 2020 a las 7:53, Ihor Radchenko () > > escribi=C3=B3: > > > >> > It would be great if each of these individual "task > >> > happenings" were archived under the date and time they were complete= d > >> > individually, and not just all as one block. This way I could get > weekly > >> > reviews that take those into account. > >> > >> What about trying to do your weekly review using org-agenda? You can > >> show the task every day you complete it by enabling org-agenda-log-mod= e > >> in your weekly agenda (v l). If your tasks are also archived regularly= , > >> you may also need "v A" to include archive files into agenda view. > >> > >> Best, > >> Ihor > >> > >> > >> Gerardo Moro writes: > >> > >> > Dear all, > >> > > >> > I am resending this as I believe it's a useful concept to implement, > >> > especially by those who track their tasks and do weekly/monthly > reviews. > >> > > >> > When I archive a repeated task (let's say, a learning project of 15 > >> minutes > >> > every Wednesday day for 2 months), the task gets archived in a date > tree > >> > all under the day it was closed (cancelled) as a whole. This means > that > >> all > >> > the LOGGED individual instances of repetition are archived on the da= y > the > >> > project got completed. It would be great if each of these individual > >> "task > >> > happenings" were archived under the date and time they were complete= d > >> > individually, and not just all as one block. This way I could get > weekly > >> > reviews that take those into account. Not sure if I made myself > >> understood! > >> > :)) > >> > > >> > Thanks! > >> > G > >> > --000000000000d4adda05b43aee70 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Wow, I=E2=80=99m impressed by your help, = you are very kind!
I am also impressed by your researching skills, I gav= e a long go at trying to find some code online unsuccessfully.

Yes, = I agree that the agenda is a nice way to go to visualize my past events (wi= th v A).
My idea of not relying on=C2=A0the agenda in= terface is just to be free and have an archive org file with all my entries= , easier to scroll from any device without the need of Emacs.

As for the function to archive the individual repeated tasks i= nto their corresponding tree:
I=E2=80=99m not an emacs lisp programmer (= or any kind of!). As I see, this function works only =E2=80=9Cat point=E2= =80=9D.
The way I work is I mark tasks as DONE during a couple weeks, an= d then I call this function that tracks all my org file and archives all DO= NE / CANCELLED items.
This is great because I don=E2=80=99t have to do i= t one by one.

(defun my/org-archive-done-tasks-file ()
=C2=A0 (in= teractive)
=C2=A0 (org-map-entries
=C2=A0 =C2=A0(lambda ()
=C2=A0 = =C2=A0 =C2=A0(org-archive-subtree)
=C2=A0 =C2=A0 =C2=A0(setq org-map-con= tinue-from (outline-previous-heading)))
=C2=A0 =C2=A0 =C2=A0"TODO= =3D\"DONE\"|TODO=3D\"CANCELED\\"" 'file))
<= br>Do you think there is a way to combine these two functions so that when = I call the fucntion, I get to archive all DONE/CANCELLED & repeated DON= E/CANCELLED tasks (the latter without deleting the logged task or its respe= ctive heading)?

Best,=C2=A0
G.

El jue., 12 nov. 2020 a = las 12:28, Ihor Radchenko (<yantar= 92@gmail.com>) escribi=C3=B3:
> Hope it is clear now, thanks so much for any help= !

Sorry for not making my previous email more clear. I actually understood what you want to achieve. My suggestion was rather an alternative
approach to "revisit the past" - you can always build agenda view= for a
specific date (or range of dates) in the past. That way, you would not
need to look into archive file manually at all.

On your actual question, I think I found some old reddit comment [1] that may be relevant. The code provides a new command to archive an org
headline without actually deleting it. That way, you will get a copy of
your headline on the date of archival. Below is the original code with
me adding docstrings for more clarity.

(defun my/org-archive-delete-logbook ()
"Delete LOGBOOK of the entry at point. It is obsolete once the copy of=
the item is moved to the archive file."
=C2=A0 (save-excursion
=C2=A0 =C2=A0(org-end-of-meta-data)
=C2=A0 =C2=A0(let ((elm (org-element-at-point)))
=C2=A0 =C2=A0 =C2=A0(when (and
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (equal (org-element-type elm) = 9;drawer)
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (equal (org-element-property :dra= wer-name elm) "LOGBOOK"))
=C2=A0 =C2=A0 =C2=A0 =C2=A0(delete-region (org-element-property :begin elm)=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 (org-element-property :end elm))))))

(defun my/org-archive-without-delete ()
"Archive item at point, but do not actually delete it."
=C2=A0 (cl-letf (((symbol-function 'org-cut-subtree) (lambda () nil)))<= br> =C2=A0 =C2=A0 (org-archive-subtree)))

(defun my/org-archive-logbook ()
"Create an archive copy of subtree at point and delete LOGBOOK in the<= br> first headline of the subtree."
=C2=A0 (interactive)
=C2=A0 (my/org-archive-without-delete)
=C2=A0 (my/org-archive-delete-logbook))

I think you can modify the last function and call it in
org-trigger-hook, so that repeating items would be archived without
deleting every time you mark the item DONE.

[1] https:/= /old.reddit.com/r/orgmode/comments/dg43hs/can_i_archive_a_property_drawer/f= 3frk2n/

Best,
Ihor

Gerardo Moro <gerardomoro37@gmail.com> writes:

> Thanks, Ihor.
> Indeed, that is an excellent feature of agenda. I use it sometimes=C2= =A0 to
> visualize what I have DONE during the week on the sopt.
> What I aim to accomplish however is a more systematic log of all the D= ONE
> tasks, this is, to have an archive file where to archive all tasks. > This file is in the format:
>
> 2020
>=C2=A0 =C2=A0 2020-01-01 DONE task1
>=C2=A0 =C2=A0 2020-01-12 DONE task2
>=C2=A0 =C2=A0 2020-02-01 CANCELLED task3
>
> So it is indeed a datetree file where I can revisit the past :) if you= will.
> The problem with habits and repeated tasks is that they don't get = archived
> when DONE...
> They get archived once the task is cancelled or completed as a whole, = all
> under the day the task stopped continuing, under which I have all the<= br> > logged individual completion.
> It would be desirable to have each "completion" archived und= er its
> corresponding datetree, it is more meaningful :)
>
> Hope it is clear now, thanks so much for any help!
> GM
> So even if I have beeng doing the task every wednesday for a year, it = won't
> be archived
>
> El mar., 3 nov. 2020 a las 7:53, Ihor Radchenko (<yantar92@gmail.com>)
> escribi=C3=B3:
>
>> > It would be great if each of these individual "task
>> > happenings" were archived under the date and time they w= ere completed
>> > individually, and not just all as one block. This way I could= get weekly
>> > reviews that take those into account.
>>
>> What about trying to do your weekly review using org-agenda? You c= an
>> show the task every day you complete it by enabling org-agenda-log= -mode
>> in your weekly agenda (v l). If your tasks are also archived regul= arly,
>> you may also need "v A" to include archive files into ag= enda view.
>>
>> Best,
>> Ihor
>>
>>
>> Gerardo Moro <gerardomoro37@gmail.com> writes:
>>
>> > Dear all,
>> >
>> > I am resending this as I believe it's a useful concept to= implement,
>> > especially by those who track their tasks and do weekly/month= ly reviews.
>> >
>> > When I archive a repeated task (let's say, a learning pro= ject of 15
>> minutes
>> > every Wednesday day for 2 months), the task gets archived in = a date tree
>> > all under the day it was closed (cancelled) as a whole. This = means that
>> all
>> > the LOGGED individual instances of repetition are archived on= the day the
>> > project got completed. It would be great if each of these ind= ividual
>> "task
>> > happenings" were archived under the date and time they w= ere completed
>> > individually, and not just all as one block. This way I could= get weekly
>> > reviews that take those into account. Not sure if I made myse= lf
>> understood!
>> > :))
>> >
>> > Thanks!
>> > G
>>
--000000000000d4adda05b43aee70--