summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorJigar Amin <jam@tinyerp.com>2011-06-30 17:17:31 +0530
committerJigar Amin <jam@tinyerp.com>2011-06-30 17:17:31 +0530
commit8fec9dab1183705ba7ccd2fa69446c7898f1577d (patch)
treee247e9a79a870fc89f4f3d963e531c0e5e5e3c80 /addons
parentda785dae559dde0cf77d97237c51f12b5479d636 (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.py30
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()