Use a sequence of records, values in write

issue3499
review1641003
This commit is contained in:
Cédric Krier committed 2013-12-19 14:45:31 +01:00
1 parent 9da5c5b86b
commit 0ba33d88a2
4 files changed
+52 -44

No files matched your search

+3 -2
View File
@@ -244,8 +244,9 @@ class Location(ModelSQL, ModelView):
return locations
@classmethod
def write(cls, locations, vals):
super(Location, cls).write(locations, vals)
def write(cls, *args):
super(Location, cls).write(*args)
locations = sum(args[::2], [])
cls._set_warehouse_parent(locations)
ids = [l.id for l in locations]
+29 -24
View File
@@ -660,31 +660,36 @@ class Move(Workflow, ModelSQL, ModelView):
return moves
@classmethod
def write(cls, moves, vals):
vals_set = set(vals)
if cls._deny_modify_assigned & vals_set:
def write(cls, *args):
actions = iter(args)
for moves, values in zip(actions, actions):
vals_set = set(values)
if cls._deny_modify_assigned & vals_set:
for move in moves:
if move.state == 'assigned':
cls.raise_user_error('modify_assigned', move.rec_name)
if cls._deny_modify_done_cancel & vals_set:
for move in moves:
if move.state in ('done', 'cancel'):
cls.raise_user_error('modify_done_cancel',
(move.rec_name,))
if any(f not in cls._allow_modify_closed_period for f in values):
cls.check_period_closed(moves)
super(Move, cls).write(*args)
actions = iter(args)
for moves, values in zip(actions, actions):
for move in moves:
if move.state == 'assigned':
cls.raise_user_error('modify_assigned', (move.rec_name,))
if cls._deny_modify_done_cancel & vals_set:
for move in moves:
if move.state in ('done', 'cancel'):
cls.raise_user_error('modify_done_cancel',
(move.rec_name,))
if any(f not in cls._allow_modify_closed_period for f in vals):
cls.check_period_closed(moves)
super(Move, cls).write(moves, vals)
for move in moves:
internal_quantity = cls._get_internal_quantity(move.quantity,
move.uom, move.product)
if (internal_quantity != move.internal_quantity
and internal_quantity != vals.get('internal_quantity')):
cls.write([move], {
'internal_quantity': internal_quantity,
})
internal_quantity = cls._get_internal_quantity(move.quantity,
move.uom, move.product)
if (internal_quantity != move.internal_quantity
and internal_quantity
!= values.get('internal_quantity')):
cls.write([move], {
'internal_quantity': internal_quantity,
})
@classmethod
def delete(cls, moves):
+8 -6
View File
@@ -65,13 +65,15 @@ class Template:
cls.raise_user_error(error)
@classmethod
def write(cls, templates, values):
def write(cls, *args):
if Transaction().user != 0:
for field, error in cls._modify_no_move:
if values.get(field):
cls.check_no_move(templates, error)
break
super(Template, cls).write(templates, values)
actions = iter(args)
for templates, values in zip(actions, actions):
for field, error in cls._modify_no_move:
if values.get(field):
cls.check_no_move(templates, error)
break
super(Template, cls).write(*args)
class Product(object, StockMixin):
+12 -12
View File
@@ -375,9 +375,9 @@ class ShipmentIn(Workflow, ModelSQL, ModelView):
return shipments
@classmethod
def write(cls, shipments, values):
super(ShipmentIn, cls).write(shipments, values)
cls._set_move_planned_date(shipments)
def write(cls, *args):
super(ShipmentIn, cls).write(*args)
cls._set_move_planned_date(sum(args[::2], []))
@classmethod
def copy(cls, shipments, default=None):
@@ -672,9 +672,9 @@ class ShipmentInReturn(Workflow, ModelSQL, ModelView):
return shipments
@classmethod
def write(cls, shipments, values):
super(ShipmentInReturn, cls).write(shipments, values)
cls._set_move_planned_date(shipments)
def write(cls, *args):
super(ShipmentInReturn, cls).write(*args)
cls._set_move_planned_date(sum(args[::2], []))
@classmethod
def delete(cls, shipments):
@@ -1223,9 +1223,9 @@ class ShipmentOut(Workflow, ModelSQL, ModelView):
return shipments
@classmethod
def write(cls, shipments, values):
super(ShipmentOut, cls).write(shipments, values)
cls._set_move_planned_date(shipments)
def write(cls, *args):
super(ShipmentOut, cls).write(*args)
cls._set_move_planned_date(sum(args[::2], []))
@classmethod
def copy(cls, shipments, default=None):
@@ -1581,9 +1581,9 @@ class ShipmentOutReturn(Workflow, ModelSQL, ModelView):
return shipments
@classmethod
def write(cls, shipments, values):
super(ShipmentOutReturn, cls).write(shipments, values)
cls._set_move_planned_date(shipments)
def write(cls, *args):
super(ShipmentOutReturn, cls).write(*args)
cls._set_move_planned_date(sum(args[::2], []))
@classmethod
def copy(cls, shipments, default=None):