Browse Source

[FIX][TASK 0048k] Revert info à supprimer quand worker id change

pull/53/head
Thibault Francois 7 years ago
parent
commit
c0028af4b6
  1. 16
      beesdoo_shift/models/task.py

16
beesdoo_shift/models/task.py

@ -36,7 +36,7 @@ class Task(models.Model):
color = fields.Integer(related="stage_id.color", readonly=True) color = fields.Integer(related="stage_id.color", readonly=True)
is_regular = fields.Boolean(default=False) is_regular = fields.Boolean(default=False)
replaced_id = fields.Many2one('res.partner', track_visibility='onchange', domain=[('eater', '=', 'worker_eater')]) replaced_id = fields.Many2one('res.partner', track_visibility='onchange', domain=[('eater', '=', 'worker_eater')])
revert_info = fields.Text()
revert_info = fields.Text(copy=False)
working_mode = fields.Selection(related='worker_id.working_mode') working_mode = fields.Selection(related='worker_id.working_mode')
def message_auto_subscribe(self, updated_fields, values=None): def message_auto_subscribe(self, updated_fields, values=None):
@ -80,11 +80,21 @@ class Task(models.Model):
def write(self, vals): def write(self, vals):
""" """
Overwrite write to track stage change Overwrite write to track stage change
If worker is changer:
Revert for the current worker
Change the worker info
Compute stage change for the new worker
""" """
if 'worker_id' in vals:
for rec in self:
if rec.worker_id != vals['worker_id']:
rec._revert()
super(Task, rec).write({'worker_id': vals['worker_id']})
rec._update_stage(rec.stage_id.id)
if 'stage_id' in vals: if 'stage_id' in vals:
for rec in self: for rec in self:
if vals['stage_id'] != rec.stage_id.id: if vals['stage_id'] != rec.stage_id.id:
rec._update_stage(rec.stage_id.id, vals['stage_id'])
rec._update_stage(vals['stage_id'])
return super(Task, self).write(vals) return super(Task, self).write(vals)
def _set_revert_info(self, data, status): def _set_revert_info(self, data, status):
@ -104,7 +114,7 @@ class Task(models.Model):
self.env['cooperative.status'].browse(data['status_id']).sudo()._change_counter(data['data']) self.env['cooperative.status'].browse(data['status_id']).sudo()._change_counter(data['data'])
self.revert_info = False self.revert_info = False
def _update_stage(self, old_stage, new_stage):
def _update_stage(self, new_stage):
self.ensure_one() self.ensure_one()
self._revert() self._revert()
update = int(self.env['ir.config_parameter'].get_param('always_update', False)) update = int(self.env['ir.config_parameter'].get_param('always_update', False))

Loading…
Cancel
Save