Tasque domain objects: task lists, tasks and notes
This page describes the domain objects used in Tasque for Tasque core, client, backend and addin developers.
A task list is a container of tasks with a name that provides the user with the possibility to organize tasks according to his needs.
Task - Task list multiplicity
A task list can contain multiple tasks and a task may be contained in several task lists. This results effectively in a many-to-many relationship between the classes Task and TaskList. However, a task always needs to be contained in at least 1 task list.
Types of task lists
Task lists come in 2 different flavors:
- Unmanaged task lists
- Managed task lists
An unmanaged list is a "regular" task list to/from which the user can add/remove tasks. Thus, an unmanaged task list can be manipulated by a Tasque client application.
A managed task list doesn't allow the user to manipulate it directly. Instead the contents of the list are taken from other task lists and have usually undergone some aggregation/transformation logic. E.g. a managed task list could be a list which shows all tasks of all lists, which have its priority set to High.
For remote backends, such as RTM, the logic which calculates the inclusion of tasks in a manged task list happens on the server. A Tasque client application only presents the task lists as they are retrieved from the server.
- Therefore a task can only be created on a task list and if it is removed from a task list and no other task list hold a reference of that task, it is deleted.