neorg icon indicating copy to clipboard operation
neorg copied to clipboard

Recurring tasks behavior

Open phenax opened this issue 2 years ago • 3 comments

Issues

  • [X] I have checked existing issues and there are no existing ones with the same request.

Feature description

Recurring tasks - [+], although part of the syntax, seems to be missing behavior expected from it. (carried over from this discussion)

The behavior, I as a user expect from this is that setting all children to done, should reset all children to undone.

- [+] Recurring task
-- [x] Sub task 1
-- [x] Sub task 2
-- [ ] Sub task 3

Setting Sub task 3 to done (i.e. all children are done), should reset it back to -

- [+] Recurring task
-- [ ] Sub task 1
-- [ ] Sub task 2
-- [ ] Sub task 3

In addition to this, not particularly my use-case but a list of timestamps of when all those tasks were completed, could also be helpful. Not sure if this should be an opt-in behavior behind a config flag or just be implemented separately? A list of timestamps however, can get pretty noisey on the page and take up a lot of space, so as an alternative, we can maintain a counter for how many times the recurring task was completed as an alternative.

Help

Yes

Implementation help

Will need confirmation on how exactly this feature should behave

phenax avatar May 15 '22 10:05 phenax

this is planned but not implemented yet

max397574 avatar May 15 '22 11:05 max397574

We will include some special syntax for timestamp formatting once we release Neorg 0.1 with all its new nice syntax elements. In general, a timestamp will look like this: <day>,? <day-of-month> <month> <year> <time> <timezone>. You will then be able to use this in two ways:

  • as a link: {@ <day>,? <day-of-month> <month> <year> <time> <timezone>}
  • as a detached modifier extension (just like tasks), so you can do something like the following:
- |+|@ Monday| Recurring task
-- | | Sub task 1
-- | | Sub task 2
-- | | Sub task 3

mrossinek avatar May 15 '22 13:05 mrossinek

We will include some special syntax for timestamp formatting once we release Neorg 0.1 with all its new nice syntax elements. In general, a timestamp will look like this: <day>,? <day-of-month> <month> <year> <time> <timezone>. You will then be able to use this in two ways:

* as a link: `{@ <day>,? <day-of-month> <month> <year> <time> <timezone>}`

* as a detached modifier extension (just like tasks), so you can do something like the following:
- |+|@ Monday| Recurring task
-- | | Sub task 1
-- | | Sub task 2
-- | | Sub task 3

I would suggest to use ISO 8601/rfc3339 date-time format:

The following profile of ISO 8601 [ISO8601] dates SHOULD be used in new protocols on the Internet. This is specified using the syntax description notation defined in [ABNF].

   date-fullyear   = 4DIGIT
   date-month      = 2DIGIT  ; 01-12
   date-mday       = 2DIGIT  ; 01-28, 01-29, 01-30, 01-31 based on
                             ; month/year
   time-hour       = 2DIGIT  ; 00-23
   time-minute     = 2DIGIT  ; 00-59
   time-second     = 2DIGIT  ; 00-58, 00-59, 00-60 based on leap second
                             ; rules
   time-secfrac    = "." 1*DIGIT
   time-numoffset  = ("+" / "-") time-hour ":" time-minute
   time-offset     = "Z" / time-numoffset

   partial-time    = time-hour ":" time-minute ":" time-second
                     [time-secfrac]
   full-date       = date-fullyear "-" date-month "-" date-mday
   full-time       = partial-time time-offset

   date-time       = full-date "T" full-time

kaddkaka avatar Aug 24 '23 21:08 kaddkaka