diff --git a/addons/base_automation/models/base_automation.py b/addons/base_automation/models/base_automation.py index dafc746de29..ac16bbbaa02 100644 --- a/addons/base_automation/models/base_automation.py +++ b/addons/base_automation/models/base_automation.py @@ -403,9 +403,15 @@ class BaseAutomation(models.Model): # check preconditions on records pre = {action: action._filter_pre(records) for action in actions} # read old values before the update + # but skip readonly computed not stored fields + fields = [f for f in vals if f in self._fields and not ( + self._fields[f].readonly and + self._fields[f].compute and + not self._fields[f].store + )] old_values = { old_vals.pop('id'): old_vals - for old_vals in (records.read(list(vals)) if vals else []) + for old_vals in (records.read(fields) if fields else []) } # call original method write.origin(self.with_env(actions.env), vals, **kw)