diff --git a/mrp_production_request/models/mrp_production_request.py b/mrp_production_request/models/mrp_production_request.py index 4649fc784..6ac707a95 100644 --- a/mrp_production_request/models/mrp_production_request.py +++ b/mrp_production_request/models/mrp_production_request.py @@ -21,24 +21,33 @@ class MrpProductionRequest(models.Model): def _get_default_requested_by(self): return self.env.user + @api.multi + def _subscribe_assigned_user(self, vals): + self.ensure_one() + if vals.get('assigned_to'): + self.message_subscribe_users(user_ids=[self.assigned_to.id]) + + @api.model + def _create_sequence(self, vals): + if not vals.get('name') or vals.get('name') == '/': + vals['name'] = self.env['ir.sequence'].next_by_code( + 'mrp.production.request') or '/' + return vals + @api.model def create(self, vals): """Add sequence if name is not defined and subscribe to the thread the user assigned to the request.""" - if not vals.get('name') or vals.get('name') == '/': - vals['name'] = self.env['ir.sequence'].next_by_code( - 'mrp.production.request') or '/' + vals = self._create_sequence(vals) res = super(MrpProductionRequest, self).create(vals) - if vals.get('assigned_to'): - res.message_subscribe_users(user_ids=[res.assigned_to.id]) + res._subscribe_assigned_user(vals) return res @api.multi def write(self, vals): res = super(MrpProductionRequest, self).write(vals) for request in self: - if vals.get('assigned_to'): - self.message_subscribe_users(user_ids=[request.assigned_to.id]) + request._subscribe_assigned_user(vals) return res @api.onchange('product_id')