diff --git a/odoo/addons/base/ir/ir_model.py b/odoo/addons/base/ir/ir_model.py index 9a105eb2415..c989dd4efc5 100644 --- a/odoo/addons/base/ir/ir_model.py +++ b/odoo/addons/base/ir/ir_model.py @@ -152,11 +152,11 @@ class IrModel(models.Model): def write(self, vals): if '__last_update' in self._context: self = self.with_context({k: v for k, v in self._context.iteritems() if k != '__last_update'}) - if 'model' in vals: + if 'model' in vals and any(rec.model != vals['model'] for rec in self): raise UserError(_('Field "Model" cannot be modified on models.')) - if 'state' in vals: + if 'state' in vals and any(rec.state != vals['state'] for rec in self): raise UserError(_('Field "Type" cannot be modified on models.')) - if 'transient' in vals: + if 'transient' in vals and any(rec.transient != vals['transient'] for rec in self): raise UserError(_('Field "Transient Model" cannot be modified on models.')) # Filter out operations 4 from field id, because the web client always # writes (4,id,False) even for non dirty items.