summaryrefslogtreecommitdiff
path: root/odoo/fields.py
diff options
context:
space:
mode:
authorRaphael Collet <rco@odoo.com>2019-08-20 15:56:34 +0000
committerRaphael Collet <rco@odoo.com>2019-08-22 13:40:40 +0000
commitfcb77f0f53fbd24d29d13d2739e0eb395c981cb9 (patch)
tree7675a8b0ead08f4d8b4af3af68e7e4068c3be138 /odoo/fields.py
parented6575a813f9520823b3e2d911c5dcc460fe9e42 (diff)
[FIX] fields: use column format in towrite
Diffstat (limited to 'odoo/fields.py')
-rw-r--r--odoo/fields.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/odoo/fields.py b/odoo/fields.py
index 295ac96cbf4..a9cab8ae48a 100644
--- a/odoo/fields.py
+++ b/odoo/fields.py
@@ -998,7 +998,9 @@ class Field(MetaField('DummyField', (object,), {})):
# update towrite
if self.store:
towrite = records.env.all.towrite[self.model_name]
- column_value = self.convert_to_column(cache_value, records)
+ record = records[:1]
+ write_value = self.convert_to_write(cache_value, record)
+ column_value = self.convert_to_column(write_value, record)
for record in records.filtered('id'):
towrite[record.id][self.name] = column_value
@@ -1435,9 +1437,9 @@ class _String(Field):
# update towrite if modifying the source
if update_column:
towrite = records.env.all.towrite[self.model_name]
- column_value = self.convert_to_column(cache_value, records)
for record in records.filtered('id'):
- towrite[record.id][self.name] = column_value
+ # cache_value is already in database format
+ towrite[record.id][self.name] = cache_value
if self.translate is True:
tname = "%s,%s" % (records._name, self.name)
records.env['ir.translation']._set_source(tname, records.ids, value)
@@ -2424,9 +2426,9 @@ class Many2one(_Relational):
# update towrite
if self.store:
towrite = records.env.all.towrite[self.model_name]
- write_value = self.convert_to_column(self.convert_to_write(cache_value, records), records)
for record in records.filtered('id'):
- towrite[record.id][self.name] = write_value
+ # cache_value is already in database format
+ towrite[record.id][self.name] = cache_value
return records