summaryrefslogtreecommitdiff
path: root/addons/web_editor/models
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2019-02-21 15:37:19 +0100
committerChristophe Simonis <chs@odoo.com>2019-02-21 15:37:19 +0100
commit1d2b6f1bef6af13245d29d56cbb5f9d61f9ca038 (patch)
tree8ea1d203aef83d287de9ec578f81bd64eedb7359 /addons/web_editor/models
parentf945b1bcc21621cfc056e40f4d66b7181d19239e (diff)
parent84143a34b313c01b0b37b7d7246ce3d5c9476002 (diff)
[MERGE] forward port branch 12.0 up to 84143a34b31
Diffstat (limited to 'addons/web_editor/models')
-rw-r--r--addons/web_editor/models/ir_ui_view.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/addons/web_editor/models/ir_ui_view.py b/addons/web_editor/models/ir_ui_view.py
index e281d9f9ecc..41de79b3c24 100644
--- a/addons/web_editor/models/ir_ui_view.py
+++ b/addons/web_editor/models/ir_ui_view.py
@@ -159,6 +159,10 @@ class IrUiView(models.Model):
out.tail = el.tail
return out
+ @api.model
+ def _set_noupdate(self):
+ self.sudo().mapped('model_data_id').write({'noupdate': True})
+
@api.multi
def save(self, value, xpath=None):
""" Update a view section. The view section may embed fields to write
@@ -195,16 +199,12 @@ class IrUiView(models.Model):
new_arch = self.replace_arch_section(xpath, arch_section)
old_arch = etree.fromstring(self.arch.encode('utf-8'))
if not self._are_archs_equal(old_arch, new_arch):
- self.sudo().model_data_id.write({'noupdate': True}) # TODO check if we remove this
+ self._set_noupdate()
self.write({'arch': self._pretty_arch(new_arch)})
@api.model
def _view_get_inherited_children(self, view, options):
- extensions = view.inherit_children_ids
- if not options:
- # only active children
- extensions = extensions.filtered(lambda view: view.active)
- return extensions
+ return view.inherit_children_ids
@api.model
def _view_obj(self, view_id):
@@ -252,6 +252,9 @@ class IrUiView(models.Model):
views_to_return += self._views_get(called_view, options=options, bundles=bundles)
extensions = self._view_get_inherited_children(view, options)
+ if not options:
+ # only active children
+ extensions = extensions.filtered(lambda view: view.active)
# Keep options in a deterministic order regardless of their applicability
for extension in extensions.sorted(key=lambda v: v.id):