stack.jpgManaging tasks whilst maintaining productivity can often feel like an uphill struggle. Over the years, I’ve refined the way I like to work and found I am most productive when working from a single list of tasks.

The order of my tasks depicts the priority. This means that, once my tasks are ordered correctly, all I need to do is work my way down the list from the first item.

ActiveCollab has provided me with a great set of tools to manage projects. However, I feel the current version (0.71) lacks an efficient way of managing tasks and doesn’t provide a single combined list from ALL projects. This, coupled with the fact that I’ve been yearning for a drag and drop sortable list has driven me to hack activeCollab’s My Tasks page and add a new feature that I’ve called ‘Prioritask’.

Principal
activeCollab works on the following hierarchical principal:
Project > Milestone(optional) > Tasklist > Task.

Milestones are optional and are probably better understood if one thinks of them as completion dates for 1 or more tasklists. I like to think of ‘tasklists’ as small goals and ‘tasks’ as the steps needed to achieve them.

There are times when it makes more sense to carry out steps relating to different goals(and different projects) in sequence. For instance; 2 unrelated tasklists might each have a step that involves a visit to the post office. It would be more productive for those steps to be grouped.

Enter Prioritask…screenshot1smaller.gif
Prioritask is built to display a single list of tasks (steps) that can be ordered however one wishes. Project and Tasklist info is always attached to the task. The information in each field is linked to the related activeCollab page.

screenshot2.gifMilestones are also taken into account and the days remaining to completion are displayed. If the task is late or due today, the task is highlighted red.

screenshot3.gifTo order, simply drag and drop the task to it’s new position. When the drag begins, sibling tasks (belonging to the same tasklist) are highlighted to help with placement in relation to each other.

To save the new order click on the Save Order button.
screenshot4.gif

Prioritask saves the order for both Tasklists and Tasks meaning that their order will be reflected throughout all other activeCollab pages.

Other Features
- Prioritask is added to My Tasks so no existing features or functionality is lost.
- No database changes are made.
- Task field links to the task comments hack task_details page. See here.
- Easy uninstall*

*I’ve tried to keep all Prioritask code within the new my_tasks.php file. Although this goes against the MVC schema of activeCollab it provides the next best way (to a plugin) to isolate the new code from the default installation. To revert, simply replace the new hacked my_tasks.php with the original my_tasks.php file.

Some Notes
- Tasks are only featured in the list if they belong to the user (or Anyone)
- Milestone Data is only featured in the list if Milestone belongs to the user (or Anyone)
- Completed tasks are not taken into ‘ordering’ account
- Tasklists with no Tasks are not displayed in the list (and therefore not ordered)

Thanks to
The fantastic Scriptaculous library and Greg Neustaetter who’s precious time saving PHP class is used by Prioritask.

Installation

  1. Download and unpack the zip file
  2. ac_071-prioritask_hack.zip Downloads: 5081 times
  3. Backup /application/views/dashboard/my_tasks.php
  4. From the zip file, upload all the files and folders
    from (but not including) Files/dashboard/ to /application/views/dashboard/
  5. Backup and then replace the following 2 files*
    /application/models/projects/Project.class.php
    /application/models/project_milestones/ProjectMilestone.class.php

*or amend the existing files yourself by changing lines 154 (Project.class.php) and 875 (ProjectMilestone.class.php) from ‘order’ => ‘created_on’ to ‘order’ => ‘`order`’