EnableTaskEstimates

Functional Description

Project Tasks need a (total) estimate and a todo estimate, for comparison with the time actually spend on a task. The tasks project members work on are part of quote tasks charged to the costumer. Quote tasks also have an estimate.

Technical description

Domain

Short version: Project HAS Collection<quoteTask> HAS Collection<implementationTask>. Both Tasks have estimates but only the implementationTask has a TODO-estimate and can assigned to members.
  • Project toevoeging: HASA Collection<quoteTask>
  • =Project= List<Task>,
  • Task HASA String name
  • QuoteTask HAS-A long estimate, Collection<ImplementationTask> implementationTasks
  • ImplementationTask HAS-A long estimate, long todo, TaskStatus status

Dao

ops_admin

Rewrite TaskDao, all public methods except Spring-related methods (setLdapTemplate, setLocalConfig, afterPropertiesSet):
  • TaskDao.listProjectQuoteTasks(Project project)
  • TaskDao.updateProjectTasks(Project project)
  • TaskDao.removeTasksFromProject(Project project)

(Also change ProjectDaoImpl.ProjectAttributesMapper to call TaskDao.listProjectQuoteTasks)

Manager

There are obvious changes to be made as a result of new domainobjects. And then there is some new to be implemented:
  • assertNoDuplicateTasks
    • no 2 Quotetasks with the same name for the same project * no 2 ImplementationTasks? with the same name for the same QuoteTask?
  • updateProject: do not remove implementation tasks that have already been persisted, either directely or by removing the parent quotetask.

ops_project

Rewrite org.openprojectservices.webservice.opstimesheet.OpsTimesheet.getTasksForProject

LDAP

The ldap should be restarted with a new schema, see below. All except ou=Projects will be imported. Projects will be added with the ops-admin tool.
  1. Export all for safe-keeping (from domain, dc=..., onwards)
  2. Remove all projects
  3. stop ldap
  4. rename old schema
  5. add new schema using the old schema's name
  6. restart ldap
  7. import the second export - the one without the projects
  8. add the projects that have timesheets

The new schemas contain:

  • new objectClasss: Q-Task, can have I-Task children
    • attributes required: name
    • attributes optional: estimate
  • new objectClass: I-Task
    • attributes required: name and status
    • attributes optional: total-estimate, todo-estimate
In the new schemas project can have Q-Task children. In the 2nd schema the old Task objects no longer exist. And here, btw is the current schema.

EditProjectPage

ppontw1.png
Note that 'task 1' cannot be deleted: only new tasks that have not been persisted yet can be deleted.
  • rewrite markup, table instead of list
  • write MoveTaskPage
  • rewrite EditProjectPage

Backward compatibility

See MigrationStory

Estimates

task hours todo
domain changes 6 0
schema's 8 0
rewrite TaskDao 10 0
rewrite & test manager 6 0
rewrite OpsTimesheet 4 0
rewrite EditProjectPage 15 0
rewrite markup file 9 0
create MoveTaskPage 4 0
Total 62 0


Discussion

We'll be rewriting the ldap schema, so now is the time to decide if Quote-Tasks and Implementation-Tasks should have GUID or not. List pro's and cons here:

  • pro: task referenced by uid, task names can be changed
  • con: requires a lot of changes in the rest of ops, namely in the sunbird plugin
  • I think you've focussed to much on the admin side of the story here. The other connections have to be updated as well, most notably the ops server -- IvoVanDongen - 14 Aug 2008

WhishList:

  • refactor for readability:
    • task panel for QuoteTasks with their ImplementationTaskListview
    • new ITask Panel
    • new QTask Panel
    • adding components in their own methods (void addMembersList(Form this))
  • Cant see what you cant do:
    • new I-Task textfield and button only visible when qtasks exist
    • QTasks only deletable if empty or if all I-Tasks are new
  • names of new tasks in textfields: changeable
  • pretty print string formatting in messages (added task: myTask > The task myTask has been added)

-- IvanaCace - 11 Aug 2008

Topic attachments
I Attachment Action Size Date Who Comment
pngpng ppontw1.png manage 13.3 K 11 Aug 2008 - 15:26 IvanaCace tasks
Topic revision: r21 - 30 Sep 2008 - 12:22:51 - IvanaCace

tip TWiki Tip of the Day
Breadcrumb
The breadcrumb of a topic shows you page hierarchy. It is constructed using a topic's parent setting ... Read on Read more

 
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback