diff options
Diffstat (limited to 'odoo/fields.py')
| -rw-r--r-- | odoo/fields.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/odoo/fields.py b/odoo/fields.py index 6d89f9355ec..d877cd71f87 100644 --- a/odoo/fields.py +++ b/odoo/fields.py @@ -1276,11 +1276,9 @@ class Monetary(Field): def __init__(self, string=Default, currency_field=Default, **kwargs): super(Monetary, self).__init__(string=string, currency_field=currency_field, **kwargs) - _related_currency_field = property(attrgetter('currency_field')) _description_currency_field = property(attrgetter('currency_field')) - def _setup_regular_full(self, model): - super(Monetary, self)._setup_regular_full(model) + def _setup_currency_field(self, model): if not self.currency_field: # pick a default, trying in order: 'currency_id', 'x_currency_id' if 'currency_id' in model._fields: @@ -1290,6 +1288,16 @@ class Monetary(Field): assert self.currency_field in model._fields, \ "Field %s with unknown currency_field %r" % (self, self.currency_field) + def _setup_regular_full(self, model): + super(Monetary, self)._setup_regular_full(model) + self._setup_currency_field(model) + + def _setup_related_full(self, model): + super(Monetary, self)._setup_related_full(model) + if self.inherited: + self.currency_field = self.related_field.currency_field + self._setup_currency_field(model) + def convert_to_column(self, value, record, values=None, validate=True): # retrieve currency from values or record if values and self.currency_field in values: |
