Browse Source
[FIX] don't break when an attribute node in an xpath makes the
expression not match the node any more. Fixes #885
pull/1021/head
Holger Brunn
7 years ago
No known key found for this signature in database
GPG Key ID: 1C9760FECA3AE18
3 changed files with
8 additions and
1 deletions
-
base_view_inheritance_extension/__manifest__.py
-
base_view_inheritance_extension/demo/ir_ui_view.xml
-
base_view_inheritance_extension/models/ir_ui_view.py
|
@ -3,7 +3,7 @@ |
|
|
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). |
|
|
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). |
|
|
{ |
|
|
{ |
|
|
"name": "Extended view inheritance", |
|
|
"name": "Extended view inheritance", |
|
|
"version": "10.0.1.0.0", |
|
|
|
|
|
|
|
|
"version": "10.0.1.0.1", |
|
|
"author": "Therp BV,Odoo Community Association (OCA)", |
|
|
"author": "Therp BV,Odoo Community Association (OCA)", |
|
|
"license": "LGPL-3", |
|
|
"license": "LGPL-3", |
|
|
"category": "Hidden/Dependency", |
|
|
"category": "Hidden/Dependency", |
|
|
|
@ -11,6 +11,10 @@ |
|
|
<attribute name="context" operation="python_dict" key="default_name">'The company name'</attribute> |
|
|
<attribute name="context" operation="python_dict" key="default_name">'The company name'</attribute> |
|
|
<attribute name="context" operation="python_dict" key="default_company_id">context.get('company_id', context.get('company'))</attribute> |
|
|
<attribute name="context" operation="python_dict" key="default_company_id">context.get('company_id', context.get('company'))</attribute> |
|
|
</field> |
|
|
</field> |
|
|
|
|
|
<!-- without operations, the standard handler should be called /--> |
|
|
|
|
|
<field name="parent_id" position="attributes"> |
|
|
|
|
|
<attribute name="name">parent_id</attribute> |
|
|
|
|
|
</field> |
|
|
<form position="inside"> |
|
|
<form position="inside"> |
|
|
<notebook> |
|
|
<notebook> |
|
|
<page string="Phone numbers" name="phone_book" /> |
|
|
<page string="Phone numbers" name="phone_book" /> |
|
|
|
@ -55,6 +55,9 @@ class IrUiView(models.Model): |
|
|
yield node, handler |
|
|
yield node, handler |
|
|
return |
|
|
return |
|
|
if spec.get('position') == 'attributes': |
|
|
if spec.get('position') == 'attributes': |
|
|
|
|
|
if all(not c.get('operation') for c in spec): |
|
|
|
|
|
yield spec, self._get_inheritance_handler(spec) |
|
|
|
|
|
return |
|
|
for child in spec: |
|
|
for child in spec: |
|
|
node = etree.Element(spec.tag, **spec.attrib) |
|
|
node = etree.Element(spec.tag, **spec.attrib) |
|
|
node.insert(0, child) |
|
|
node.insert(0, child) |
|
|