I was going to open an issue, but the template said to post here first, so here I am.
This is related to, but in my view distinct from:
- Notes/Notebook/Tag/Task: Filtering and Searching
- Issues
- #1134
- #700
- #43
I feel this is distinct, in that this feature suggestion is more precisely defined and also more narrow in scope than the above noted requests.
I propose that “To Do” notes should have the ability to include a due date, primarily for the purpose of affecting the sorting order. This should probably be presented in the tool bar area above the note being edited, perhaps as an additional text field next to the title. The existing date-picker widget from the metadata editor could be re-used. It would probably be reasonable to store the set due date either as note metadata (alongside updated, created, history, etc.) or using whatever mechanism is used to store the complete/incomplete status for the To Do checkbox. I’m not familiar with how this information is represented internally, so maybe it should go somewhere else.
There should also be a check-box in the “view” dropdown which would read something like “sort notes by due date first”, which would cause all notes with a due date to sort before all other notes, and to internally be sorted by due date. Remaining notes would be sorted per the existing sorting behavior, which would also be used as a tie-breaker for matching due dates. I am not personally very familiar with the underlying tech stack that Joplin uses, however I assume it has at lest one stable sorting method available for use, so from a sort order perspective this should be quite straightforward (but maybe not, depending on the data structures used).
Additionally, the due date should appear in the note title in the notes text. Perhaps it could be right-justified and displayed in a lighter font to provide a clear distinction. Maybe even some color coding based on if the due date is in the future / today / past.
I think that to be useful, special searching functionality or notifications support is not needed. Simply having an extra date field to search by would be immensely useful. Those other features would be nice also, but are separate topics of discussion in my view.