New Required Task functionality
When the Projects feature is activated there should be a Task menu link added under the Projects menu and 'activating' Projects should also activate Tasks at the same time. The existing MyTiki Task menu item should ideally be only shown if ONLY the Task feature is activated.
The following new functionality needs to be added to the existing Task functionality whilst, ideally, preserving full backwards compatibility to the simple 'To Do List' functionality that should remain possible even if the Projects feature is not activated.
Adding a projectId field to the existing tiki_user_tasks table would allow this, where the default value could be set to (say) -1, which would signify that the Task is being used in the 'old' ad hoc way and none of the new Projects functionality would be used.
- Assigning a Task to a Project:
- When the New/Edit Task screens are shown, if the Projects feature is activated and if the user has the appropriate permissions, then a drop down list of current Projects in the system should allow a specific Project to be selected that this Task is allocated to - or if None is selected the projectId flag remains set to -1 and all existing ad hoc Task usage remains the same, and none of the new Projects functionality is used.
- The drop down list of Projects should be restricted to just those projects that the user has permitted access to, according to the following logic:
- user has tiki_projects_admin or tiki_projects_edit permission for the specific project if it is categorised or these global permissions if not categorised, OR
- user is the assigned project manager for the specific project, OR
- user is the project manager for the project at the 'top of the tree' of the specific project - ie they are the overall programme manager
- Assigning a user to a Task:
- The existing "Task user" field with a drop down list of users should NOT BE SHOWN until the above Project selection process is complete
- If a Project has been selected, the drop down list of users should then be set to only those users that have been allocated to the Project. If None is set, all users with appropriate permissions should be available for selection.
- Task 'Work required'/'Effort applied'/'Duration'/'Start date:time'/' End date:time':
- For the 1.0 specification a simple manual resource management approach is taken which just indicates when a resource is overloaded, but only optional 'Work required' and 'Effort applied' parameters are provided for a Task. The project manager can then manually adjust 'Duration' settings so that indicated overloads are eliminated.
- Each Task should have a 'Duration' defined for it, from which a 'Start date:time' and 'End date:time' can be calculated from the current 'End date:time' information in any predecessor tasks. If there are no predecessor tasks the 'Start date: time' is taken from the project start date:time
- Optionally, 'Work required' and 'Effort applied' can also be specified for each Task. These can then be used to calculate an implied 'Duration', where working day and working week etc., are allowed for. This would then allow Tasks that have implied 'Durations' longer than specified 'Durations' to be flagged for manual adjustment.
- The units for 'Work required' should be selectable from minutes, hours, days, weeks, months with a default of hours
- 'Effort applied' assumes the single assigned individual from the Project Team, but the units can be set to be a % of the working day in 10% increments. The actual working day, working week etc., needs to be defined - see Setting the Project working Calendar.
- The units for 'Duration' should be selectable from minutes, hours, days, weeks, months with a default of days
- Additional Task Resources: these can optionally be applied to individual Tasks, see Resource management
- Task sequence: each Task can have one or more predecessors tasks defined, see Task sequence within Projects
- Other Task Parameters:
- Mark Task as a Milestone: describe here later
- Activity/Phase WBS: drop down list or add a new label, which allows Tasks to be grouped into named Activities or Phases.
Table of contents for section:
Table of contents for main document: