Custom recurrence #2964
Replies: 8 comments 6 replies
-
Thanks very much for kicking this off, @aigoncharov - and for your code and ideas so far....
(Lots of comments that were here are now moved out to separate sections below...) Code for the settings editorDon't worry about the implementation of the editing widget for now, because:
|
Beta Was this translation helpful? Give feedback.
-
Documentation and TestsI forgot to say, a long time ago, I used to be able to offer to write documentation for new features, where the author was not comfortable writing the docs. The volume of work on Tasks these days is such that that approach no longer works. I am happy to copy-edit a first draft of user docs, if need be - but not to write the docs from scratch. For large facilities like this one, a good way of doing the design and planning is for the contributor to write a first draft of the user docs before doing the implementation, as this confirms that it can even be described to users in an understandable way, and can lead to improvements in UI before implementation.... |
Beta Was this translation helpful? Give feedback.
-
The 🔁 signifier and its values(This time, a single topic in a comment, to make tracking responses easier - was too tired to think of that last night...) I wonder what the Tasks signifiers/lines would look like, for custom recurrence rules. I'm asking because someone has kindly produced a proof-of-concept for a rewrite of the Tasks plugin reading and writing of task lines... - and the problem they had was finding a general way to identify the end of recurrence text, as the current syntax is so flexible... Every other field was relative easy. So I'm keen for new features not that make that event rewrite any harder than it already is. A current example is:
All the recurrences begin I can't see how to make So a first idea would be to offer two options:
And to define and document the allowed characters in a custom recurrence patter, disallowing spaces for easy or parsing... Here is how I did similar docs previously - for the And somewhere in the code there is a single-source-of-truth as to the allowed characters in IDs. Any more thoughts? |
Beta Was this translation helpful? Give feedback.
-
Overview of the envisaged feature - for discussion!BackgroundI think the thought process so far (or my understanding of it) has gone something like:
Initial thoughtsI see it as having some similarities with Custom Statuses, in that:
It's just that they would be defining one or more recurrence rules, instead of statuses... Also, just as the Custom Statuses have buttons for some pre-prepared sets of statuses, so there might be pre-prepared Recurrence rules like "Spaced Repetition", that is easy for users to add, and then optionally edit. Does that make sense? Does it need a picture? |
Beta Was this translation helpful? Give feedback.
-
Ideas for example custom repetition rulesBefore deciding on the detail, I would like to see suggestions of other possible patterns. |
Beta Was this translation helpful? Give feedback.
-
What the ingredients are for a custom recurrence rule/patternThis is one area that is going to need a lot of thought. Once we have some ideas for patterns, then there needs to be a proposal for how a rule would be defined... Is a rule something as simple as:
And then thoughts on how to present an editor UI for a rule.... |
Beta Was this translation helpful? Give feedback.
-
How to track the number of completions...For this to be viable, there needs to be a safer way than in #2961 to keep track of the number of recurrences so far... Appending a number to the description will be problematical for descriptions like:
If you search the existing Issues and Discussions for Open and Closed tickets with the same label as this one, you will see previous discussions and requests, which might give ideas.... |
Beta Was this translation helpful? Give feedback.
-
Thank you for providing so much detailed information! I think it is going to be a great foundation for anyone who wants to tackle it, but it is probably not going to be me this time.
In my personal view, adding any DSL to support custom recurrence via UI would go against "improving the core foundations". First, it is yet another complex feature to support. Second, it is still going to be lacking flexibility compared to a programmatic API usage. IMHO, the plugin should focus on parsing, querying, displaying, and editing tasks, and provide a rich API for other developers to build on top of it. This would make it easier to support the plugin long-term as the new features would be the responsibility of others. Also, it would potentially support more use-cases as developers start adopting the API. Having said that, I totally get where you are coming from. I absolutely admire your deep care for the users and other contributors. Thank you very much for all your hard work on this amazing piece of software! |
Beta Was this translation helpful? Give feedback.
-
Hello,
I am wondering what would be the best way to approach custom recurrence rules?
Currently, the plugin supports only a set of periodic rules, which, while useful, might not cover the full extent of what people might want to do.
A good example is spaced repetition - a popular learning pattern.
As discussed in #2961, it is not feasible from the maintenance point of view to keep adding the new recurrence rules to the core. Should it be something an extension to the plugin might do?
Potential requirements for the extension API
Proposed implementation
Potential usage example
Pros / cons
Pros:
toText
,fromText
,next
,identicalTo
.Cons:
Recurrence
class.Draft implementation
#2963
Beta Was this translation helpful? Give feedback.
All reactions