summaryrefslogtreecommitdiff
path: root/odoo/fields.py
diff options
context:
space:
mode:
Diffstat (limited to 'odoo/fields.py')
-rw-r--r--odoo/fields.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/odoo/fields.py b/odoo/fields.py
index dc685d7885b..2576fd770ac 100644
--- a/odoo/fields.py
+++ b/odoo/fields.py
@@ -1435,8 +1435,8 @@ class _String(Field):
update_column = True
update_trans = True
elif lang != 'en_US':
- # update the translations only
- update_column = False
+ # update the translations only except if emptying
+ update_column = cache_value is None
update_trans = True
# update towrite if modifying the source
@@ -1445,7 +1445,7 @@ class _String(Field):
for rid in real_recs._ids:
# cache_value is already in database format
towrite[rid][self.name] = cache_value
- if self.translate is True:
+ if self.translate is True and cache_value is not None:
tname = "%s,%s" % (records._name, self.name)
records.env['ir.translation']._set_source(tname, real_recs._ids, value)
@@ -1464,7 +1464,13 @@ class _String(Field):
source_recs[self.name] = value
source_value = value
tname = "%s,%s" % (self.model_name, self.name)
- if single_lang:
+ if value is None:
+ records.env['ir.translation'].search([
+ ('name', '=', tname),
+ ('type', '=', 'model'),
+ ('res_id', 'in', real_recs._ids)
+ ]).unlink()
+ elif single_lang:
records.env['ir.translation']._update_translations([dict(
src=source_value,
value=value,