Skip to content

Commit 9fae2b9

Browse files
committed
[IMP] util.remove_field
When removing a related field, update its usage instead of replacing the domains with a TRUE_LEAF. closes #314 Related: odoo/upgrade#8395 Signed-off-by: Christophe Simonis (chs) <chs@odoo.com>
1 parent 9b2e0ac commit 9fae2b9

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/util/fields.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,8 +223,17 @@ def adapter(leaf, is_or, negated):
223223
return [FALSE_LEAF]
224224
return [TRUE_LEAF]
225225

226-
# clean domains
227-
adapt_domains(cr, model, fieldname, "ignored", adapter=adapter, skip_inherit=skip_inherit, force_adapt=True)
226+
related = None
227+
if column_exists(cr, "ir_model_fields", "related"):
228+
cr.execute("SELECT related FROM ir_model_fields WHERE model=%s AND name=%s", [model, fieldname])
229+
if cr.rowcount:
230+
related = cr.fetchone()[0]
231+
232+
if related:
233+
update_field_usage(cr, model, fieldname, related, skip_inherit=skip_inherit)
234+
else:
235+
# clean domains
236+
adapt_domains(cr, model, fieldname, "ignored", adapter=adapter, skip_inherit=skip_inherit, force_adapt=True)
228237

229238
if table_exists(cr, "ir_server_object_lines"):
230239
cr.execute(

0 commit comments

Comments
 (0)