getting-things-gnome/gtg

Ability to "link" multiple tasks together as related (in a relationship without being siblings)

nekohayo opened this issue · 0 comments

Usage scenarios

The primary usecase would be to be able to easily "jump" between topically related tasks/projects (that are not necessarily direct dependents of each other). Or just to have an overview of what is tangential to the project/task you're currently looking at.

This is not really for:

  • Proactive/preventative duplicate detection.
    I suspect the performance and complexity implications of doing automatic duplicate task prevention/detection in the quick-add entry (or when creating a new task using the Task Editor) would probably be too complex, but I think it would make sense to be able to manually "link" multiple related-but-not-duplicates tasks with each other.

  • Manual deduplication:
    that would be #1032

Backend implementation question

The big questions are how this can be done on the backend side (if the backend doesn't already implicitly support it), and what to do when tasks are deleted (presumably we won't keep a copy/relationship going…) and how to ensure this remains reliable and well unit-tested/integration-tested.

Potential UX and GUI implementation

It could be done by:

  1. Selecting multiple tasks in the task browser and right-clicking them to "Link tasks together". This is probably the easiest and most straightforward implementation in terms of UI.
  2. A 🔗 ("Cross-linked tasks") popover menubutton in the Task Editor's toolbar that allows doing a simple search and "ticking/unticking" tasks to mark as related to the current one, much like the tags searchable popover menubutton, except that there would also be a button next to those items to be able to open/jump to one of them.

Both could be done at the same time, but of course no.1 is easier to accomplish in the beginning.

Then, when viewing one of those tasks, the Task Editor/viewer could either:

  • Show a special area at the bottom (or a clickable dropdown label in the headerbar,
    a bit conceptually related to #907) that shows the titles of the related tasks, hyperlinked in a way that allows opening them (in a new Task Editor window?), or;
  • Show a counter on the link button (ex: 🔗4 ) and reveal those linked tasks' titles in a tooltip
    (much like #1027, but abbreviating each long task title with [:75] + "…" if there are more than 2 linked tasks?). This might be the simplest and least visually-intrusive implementation.

Also related: #634


Potentially relevant as a curiosity: Kanboard's ontology of internal task links
(I never really saw the point of going further than "blocks"/"blocked by" and "related", personally…)