summaryrefslogtreecommitdiff
path: root/odoo/fields.py
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2018-11-16 19:30:20 +0100
committerChristophe Simonis <chs@odoo.com>2018-11-16 19:30:20 +0100
commit6faad524cf5e4db02855cb213277c40aee14c42a (patch)
tree383c984dc1461a03481baa9fbdce8c156ca97e2e /odoo/fields.py
parent3657dc77c2ddb4275f07d1271b93e7f25e09913a (diff)
parentbc744a1da46efda6f1eb5c341f2fa5df30c9c7ad (diff)
[MERGE] forward port branch 12.0 up to bc744a1da46
Diffstat (limited to 'odoo/fields.py')
-rw-r--r--odoo/fields.py14
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: