diff options
| author | Jigar Amin <jam@tinyerp.com> | 2011-06-30 17:17:31 +0530 |
|---|---|---|
| committer | Jigar Amin <jam@tinyerp.com> | 2011-06-30 17:17:31 +0530 |
| commit | 8fec9dab1183705ba7ccd2fa69446c7898f1577d (patch) | |
| tree | e247e9a79a870fc89f4f3d963e531c0e5e5e3c80 /addons | |
| parent | da785dae559dde0cf77d97237c51f12b5479d636 (diff) | |
[FIX] project_long_term - scheduling task based on child task paretn shoud be at last
bzr revid: jam@tinyerp.com-20110630114731-usnnqe2y834chwb0
Diffstat (limited to 'addons')
| -rw-r--r-- | addons/project_long_term/project_long_term.py | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/addons/project_long_term/project_long_term.py b/addons/project_long_term/project_long_term.py index 9925c59bee4..a6437819248 100644 --- a/addons/project_long_term/project_long_term.py +++ b/addons/project_long_term/project_long_term.py @@ -23,6 +23,7 @@ from datetime import datetime from tools.translate import _ from osv import fields, osv from resource.faces import task as Task +from operator import itemgetter class project_phase(osv.osv): _name = "project.phase" @@ -725,22 +726,11 @@ class project_task(osv.osv): 'user_id' : False } - def _get_child_duration(self, cr, uid, tasks, duration, context=None): - #DFS : visit all child - for task in tasks: - if task.child_ids: - duration = self._get_child_duration(cr, uid, task.child_ids, duration, context) - duration += task.planned_hours - return duration - def generate_task(self, cr, uid, task_id, parent=False, flag=False, context=None): if context is None: context = {} task = self.browse(cr, uid, task_id, context=context) - duration = task.planned_hours - if task.child_ids: - duration = self._get_child_duration(cr, uid, task.child_ids, duration, context) - duration = str(duration)+ 'H' + duration = str(task.planned_hours)+ 'H' str_resource = False parent = task.parent_ids if task.phase_id.resource_ids: @@ -754,10 +744,12 @@ class project_task(osv.osv): effort = \'%s\' resource = %s '''%(task.id, task.name, duration, str_resource) - if parent: + if task.child_ids: + seq = [[child.planned_hours, child.id] for child in task.child_ids] + seq.sort(key=itemgetter(0)) s +=''' - start = up.Task_%s.start -'''%(parent[0].id) + start = up.Task_%s.end + '''%(seq[-1][1]) else: s = ''' def Task_%s(): @@ -765,10 +757,12 @@ class project_task(osv.osv): effort = \'%s\' resource = %s '''%(task.id, task.name, duration, str_resource) - if parent: + if task.child_ids: + seq = [[child.planned_hours, child.id] for child in task.child_ids] + seq.sort(key=itemgetter(0)) s +=''' - start = up.Task_%s.start -'''%(parent[0].id) + start = up.Task_%s.end +'''%(seq[-1][1]) s += '\n' return s project_task() |
