emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Gerardo Moro <gerardomoro37@gmail.com>
To: Ihor Radchenko <yantar92@gmail.com>
Cc: emacs-orgmode <emacs-orgmode@gnu.org>
Subject: Re: Archiving repeated tasks under corresponding date tree for each repeated item
Date: Tue, 17 Nov 2020 10:58:37 +0200	[thread overview]
Message-ID: <CAF4Fj9hFkJLPdfyEKketPQd2vjc3jNS=E9TcRoiW4kGn+be1iQ@mail.gmail.com> (raw)
In-Reply-To: <CAF4Fj9irons8jeL9027yV2C1Phoqv30HS38O_HupZjdiLsYMbw@mail.gmail.com>

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

Hi again,

I actually now realized that your function will not unfortunately archive
each logged item (those located in the logbook) in its corresponding date
(!).
What it will do is to archive the whole tree under today's date without
deleting it from the original org file.

For instance,

* TODO REPEATED TASK SAMPLE
  SCHEDULED: <2020-11-30 Mon +20d>
  :PROPERTIES:
  :STYLE:    habit
  :LAST_REPEAT: [2020-11-09 Mon 22:28]
  :END:
:LOGBOOK:
- State "DONE"       from "TODO"       [2020-11-15 Sun 22:28]
- State "DONE"       from "STARTED"    [2020-11-14 Sat 22:17]
- State "DONE"       from "STARTED"    [2020-11-13 Fri 22:17]
- State "DONE"       from "STARTED"    [2020-11-11 Wed 22:17]

If I position myself in any point in this entry, when I execute the
function it will archive the whole tree+subtree under today's date (the
date when it was archived).
The behaviour I was expecting is to archive each of the logged tasks under
their corresponding date (on the 11th, 13th, 14th and 15th of November).
Just to be clear :)
G

El lun., 16 nov. 2020 a las 17:21, Gerardo Moro (<gerardomoro37@gmail.com>)
escribió:

> Wow, I’m 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’m not an emacs lisp programmer (or any kind of!). As I see, this
> function works only “at point”.
> 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’t 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=\"DONE\"|TODO=\"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 (<yantar92@gmail.com>)
> escribió:
>
>> > 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 <gerardomoro37@gmail.com> 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
>> DONE
>> > 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,
>> all
>> > 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 (<yantar92@gmail.com>)
>> > escribió:
>> >
>> >> > It would be great if each of these individual "task
>> >> > happenings" were archived under the date and time they were 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 can
>> >> 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 regularly,
>> >> you may also need "v A" to include archive files into agenda 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/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
>> day the
>> >> > project got completed. It would be great if each of these individual
>> >> "task
>> >> > happenings" were archived under the date and time they were 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 myself
>> >> understood!
>> >> > :))
>> >> >
>> >> > Thanks!
>> >> > G
>> >>
>>
>

[-- Attachment #2: Type: text/html, Size: 9601 bytes --]

  reply	other threads:[~2020-11-17  9:00 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAF4Fj9hjjQ98gGe7hRp0tU4qPtZ-ekUUpO9niNpJ+s31g2buOA@mail.gmail.com>
2020-10-24  4:06 ` Archiving repeated tasks under corresponding date tree for each repeated item Gerardo Moro
2020-10-29  7:01   ` Gerardo Moro
2020-11-02 14:18     ` Julius Dittmar
2020-11-03  5:52     ` Ihor Radchenko
2020-11-12  7:59       ` Gerardo Moro
2020-11-12 10:27         ` Ihor Radchenko
2020-11-16 15:21           ` Gerardo Moro
2020-11-17  8:58             ` Gerardo Moro [this message]
2020-11-17  9:31               ` Ihor Radchenko
2020-11-17 12:00                 ` Gerardo Moro
2020-11-17 12:31                   ` Ihor Radchenko
2020-11-17 12:57                     ` Gerardo Moro
2020-11-17 13:12                       ` Ihor Radchenko
2020-11-17 15:35                         ` Gerardo Moro
2020-11-17 15:59                           ` Ihor Radchenko
2020-11-17 16:15                             ` Gerardo Moro
2020-11-18  5:36                               ` Ihor Radchenko
2020-11-18  8:35                                 ` Gerardo Moro

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='CAF4Fj9hFkJLPdfyEKketPQd2vjc3jNS=E9TcRoiW4kGn+be1iQ@mail.gmail.com' \
    --to=gerardomoro37@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=yantar92@gmail.com \
    /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).