Support multi-user task management: add ability to delegate/assign a task to someone
Often, larger projects have many tasks with many subtasks that are shared by the group of people working on the project.
In addition to the already requested feature of allowing multiple users to access the same file with changes made by one immediately showing up in other users' view ( http://taskcoach.uservoice.com/forums/26465-desktop-version-windows-linux-mac-of-task-coach/suggestions/288999 ), the following features would be needed:
Delegate a task/task tree. This would assign a task (or task tree if it has subtasks) to another user, recording the assignment in the in the database and optionally sending the user an email (the sending of an email notification could either be a configuration option or a dialog box option). This user should have the ability to either accept or reject the assignment, or to reassign it to another user. Additionally, in the case of a task tree, the assignee should be able to further delegate portions of the task tree to others.
A filtered view of the task list to show only: a) items that have been assigned to you, b) items that you have assigned to others or c) both.
Support conversations/time stamped comments between the person who assigned the task (tree) and the recipient. The conversation should be stored in the database, with the option of emailing a copy each time a new entry is made. There should be a configuration option as to whether these comments are globally visible (with a suboption to limit posting to only the assignor and the assignee, or to allow everyone to participate in the conversation) or whether the conversation can only be viewed by the person who made the assignment and the person who received it. Since there can be nested assignments (see below), another non-global comment visibility option would be to allow everyone in the chain of delegation to see and participate in the conversation, not just the pair of assignor and assignee.
Allow the recipient of an assignment to flag an assignment as complete (this is different than marking a task as being complete), with the person who assigned it optionally being notified by email. There should only be allowed if all of the tasks that were a part of the assignment have been marked complete. A configuration option would allow an assignment to automatically be flagged as complete once all of the tasks that were a part of the assignment (including subtasks that were delegated) have been checked off as completed. (Note: assignments have a status of complete/started/etc. separate from the status of the assigned tasks.)
Similar to 4, allow the recipient of an assignment to flag it as having been returned incomplete. In the ideal world, this shouldn't be an option, but in reality people either leave or have other responsibilities come up that won't allow them to finish an assignment. The person who delegated the assignment should optionally be notified via email. Returning an assignment should not cause any portions that were delegated to others to change status. Ideally, instead of a task having the assignor as part of its data record (which would then have to be updated when an assignment was returned unfinished and updated again if the returned task tree were to be reassigned to someone else), this should be derived by looking for the first parent task that isn't flagged as being assigned to the same person. This also deals with the case of a returned assignment being reassigned to someone who had previously had a portion of the assignment's task tree delegated to them. Since the parent records of their original assignment would now have the same assignee value, they prior assignment would automatically merge with the new assignment, with both having the derived assignor being the person who reassigned the task tree to this user.
(BTW - if task coach's data isn't already stored in a database, doing so would be the ideal solution to the complicated data needs associated with a multi-user system, such as atomic changes, record locking, etc.)
I am merging related requests. I copied the description here to a comment here:
Please move your votes to that request to consolidate, thanks!