Use a sequence of records, values in write

issue3499
review1641003
This commit is contained in:
Cédric Krier committed 2013-12-19 14:45:18 +01:00
1 parent 6e7e563a49
commit 8f2bf9d7a2
2 files changed
+22 -16

No files matched your search

+4 -3
View File
@@ -29,12 +29,13 @@ class Allocation(ModelSQL, ModelView):
return 100
@classmethod
def write(cls, allocations, values):
def write(cls, *args):
Work = Pool().get('project.work')
super(Allocation, cls).write(allocations, values)
super(Allocation, cls).write(*args)
works = Work.search([
('allocations', 'in', [a.id for a in allocations]),
('allocations', 'in',
[a.id for allocations in args[::2] for a in allocations]),
])
for work in works:
+18 -13
View File
@@ -536,17 +536,19 @@ class Work:
self.parent.compute_dates()
@classmethod
def write(cls, works, values):
super(Work, cls).write(works, values)
def write(cls, *args):
super(Work, cls).write(*args)
if 'effort' in values:
for work in works:
work.reset_leveling()
fields = ('constraint_start_time', 'constraint_finish_time',
'effort')
if reduce(lambda x, y: x or y in values, fields, False):
for work in works:
work.compute_dates()
actions = iter(args)
for works, values in zip(actions, actions):
if 'effort' in values:
for work in works:
work.reset_leveling()
fields = ('constraint_start_time', 'constraint_finish_time',
'effort')
if reduce(lambda x, y: x or y in values, fields, False):
for work in works:
work.compute_dates()
@classmethod
def create(cls, vlist):
@@ -580,11 +582,14 @@ class PredecessorSuccessor(ModelSQL):
ondelete='CASCADE', required=True, select=True)
@classmethod
def write(cls, pred_succs, values):
def write(cls, *args):
Work = Pool().get('project.work')
super(PredecessorSuccessor, cls).write(pred_succs, values)
super(PredecessorSuccessor, cls).write(*args)
works = Work.browse(values.itervalues())
work_ids = [v for values in args[1::2]
for k, v in values.itervalues()
if k in ('predecessor', 'successor')]
works = Work.browse(work_ids)
for work in works:
work.reset_leveling()
for work in works: