odoo-addon-base-view-inheritance-extension 18.0.1.0.2.1__py3-none-any.whl → 19.0.1.0.0.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- odoo/addons/base_view_inheritance_extension/README.rst +48 -7
- odoo/addons/base_view_inheritance_extension/__manifest__.py +2 -1
- odoo/addons/base_view_inheritance_extension/i18n/base_view_inheritance_extension.pot +22 -9
- odoo/addons/base_view_inheritance_extension/i18n/tr.po +5 -6
- odoo/addons/base_view_inheritance_extension/models/ir_ui_view.py +83 -3
- odoo/addons/base_view_inheritance_extension/readme/CONTRIBUTORS.md +1 -1
- odoo/addons/base_view_inheritance_extension/readme/USAGE.md +33 -0
- odoo/addons/base_view_inheritance_extension/static/description/index.html +33 -5
- odoo/addons/base_view_inheritance_extension/tests/test_base_view_inheritance_extension.py +70 -2
- {odoo_addon_base_view_inheritance_extension-18.0.1.0.2.1.dist-info → odoo_addon_base_view_inheritance_extension-19.0.1.0.0.6.dist-info}/METADATA +51 -11
- {odoo_addon_base_view_inheritance_extension-18.0.1.0.2.1.dist-info → odoo_addon_base_view_inheritance_extension-19.0.1.0.0.6.dist-info}/RECORD +13 -13
- {odoo_addon_base_view_inheritance_extension-18.0.1.0.2.1.dist-info → odoo_addon_base_view_inheritance_extension-19.0.1.0.0.6.dist-info}/WHEEL +0 -0
- {odoo_addon_base_view_inheritance_extension-18.0.1.0.2.1.dist-info → odoo_addon_base_view_inheritance_extension-19.0.1.0.0.6.dist-info}/top_level.txt +0 -0
|
@@ -11,7 +11,7 @@ Extended view inheritance
|
|
|
11
11
|
!! This file is generated by oca-gen-addon-readme !!
|
|
12
12
|
!! changes will be overwritten. !!
|
|
13
13
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
14
|
-
!! source digest: sha256:
|
|
14
|
+
!! source digest: sha256:9089555b5aea01b23ff4a0350d6fd69589d63f1beb4e272ed5a96eebf05b2a81
|
|
15
15
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
16
16
|
|
|
17
17
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
|
|
@@ -21,13 +21,13 @@ Extended view inheritance
|
|
|
21
21
|
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
|
|
22
22
|
:alt: License: LGPL-3
|
|
23
23
|
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github
|
|
24
|
-
:target: https://github.com/OCA/server-tools/tree/
|
|
24
|
+
:target: https://github.com/OCA/server-tools/tree/19.0/base_view_inheritance_extension
|
|
25
25
|
:alt: OCA/server-tools
|
|
26
26
|
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
|
27
|
-
:target: https://translation.odoo-community.org/projects/server-tools-
|
|
27
|
+
:target: https://translation.odoo-community.org/projects/server-tools-19-0/server-tools-19-0-base_view_inheritance_extension
|
|
28
28
|
:alt: Translate me on Weblate
|
|
29
29
|
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
|
|
30
|
-
:target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=
|
|
30
|
+
:target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=19.0
|
|
31
31
|
:alt: Try me on Runboat
|
|
32
32
|
|
|
33
33
|
|badge1| |badge2| |badge3| |badge4| |badge5|
|
|
@@ -76,6 +76,39 @@ conditional changes**
|
|
|
76
76
|
$domain_to_add
|
|
77
77
|
</attribute>
|
|
78
78
|
|
|
79
|
+
**Wrap loose text in an element for further processing**
|
|
80
|
+
|
|
81
|
+
.. code:: xml
|
|
82
|
+
|
|
83
|
+
<wraptext expr="//some/node" position="text" element="span" />
|
|
84
|
+
<wraptext expr="//some/node/other_node" position="tail" element="div" />
|
|
85
|
+
|
|
86
|
+
which transforms
|
|
87
|
+
|
|
88
|
+
.. code:: xml
|
|
89
|
+
|
|
90
|
+
<some>
|
|
91
|
+
<node>
|
|
92
|
+
plain text 1
|
|
93
|
+
<other_node />
|
|
94
|
+
plain text2
|
|
95
|
+
</node>
|
|
96
|
+
</some>
|
|
97
|
+
|
|
98
|
+
to
|
|
99
|
+
|
|
100
|
+
.. code:: xml
|
|
101
|
+
|
|
102
|
+
<some>
|
|
103
|
+
<node>
|
|
104
|
+
<span>plain text 1</span>
|
|
105
|
+
<other_node />
|
|
106
|
+
<div>plain text2</div>
|
|
107
|
+
</node>
|
|
108
|
+
</some>
|
|
109
|
+
|
|
110
|
+
making those texts accessible for further operations
|
|
111
|
+
|
|
79
112
|
Known issues / Roadmap
|
|
80
113
|
======================
|
|
81
114
|
|
|
@@ -87,7 +120,7 @@ Bug Tracker
|
|
|
87
120
|
Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-tools/issues>`_.
|
|
88
121
|
In case of trouble, please check there if your issue has already been reported.
|
|
89
122
|
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
|
90
|
-
`feedback <https://github.com/OCA/server-tools/issues/new?body=module:%20base_view_inheritance_extension%0Aversion:%
|
|
123
|
+
`feedback <https://github.com/OCA/server-tools/issues/new?body=module:%20base_view_inheritance_extension%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
|
91
124
|
|
|
92
125
|
Do not contact contributors directly about support or help with technical issues.
|
|
93
126
|
|
|
@@ -102,7 +135,7 @@ Authors
|
|
|
102
135
|
Contributors
|
|
103
136
|
------------
|
|
104
137
|
|
|
105
|
-
- Holger Brunn <
|
|
138
|
+
- Holger Brunn <mail@hunki-enterprises.com>
|
|
106
139
|
- Ronald Portier <rportier@therp.nl>
|
|
107
140
|
- `Tecnativa <https://www.tecnativa.com>`__:
|
|
108
141
|
|
|
@@ -129,6 +162,14 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
|
|
|
129
162
|
mission is to support the collaborative development of Odoo features and
|
|
130
163
|
promote its widespread use.
|
|
131
164
|
|
|
132
|
-
|
|
165
|
+
.. |maintainer-hbrunn| image:: https://github.com/hbrunn.png?size=40px
|
|
166
|
+
:target: https://github.com/hbrunn
|
|
167
|
+
:alt: hbrunn
|
|
168
|
+
|
|
169
|
+
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
|
|
170
|
+
|
|
171
|
+
|maintainer-hbrunn|
|
|
172
|
+
|
|
173
|
+
This module is part of the `OCA/server-tools <https://github.com/OCA/server-tools/tree/19.0/base_view_inheritance_extension>`_ project on GitHub.
|
|
133
174
|
|
|
134
175
|
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
|
|
4
4
|
{
|
|
5
5
|
"name": "Extended view inheritance",
|
|
6
|
-
"version": "
|
|
6
|
+
"version": "19.0.1.0.0",
|
|
7
7
|
"development_status": "Mature",
|
|
8
8
|
"author": "Therp BV,Odoo Community Association (OCA)",
|
|
9
9
|
"license": "LGPL-3",
|
|
@@ -12,4 +12,5 @@
|
|
|
12
12
|
"website": "https://github.com/OCA/server-tools",
|
|
13
13
|
"depends": ["base"],
|
|
14
14
|
"demo": ["demo/ir_ui_view.xml"],
|
|
15
|
+
"maintainers": ["hbrunn"],
|
|
15
16
|
}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
#
|
|
5
5
|
msgid ""
|
|
6
6
|
msgstr ""
|
|
7
|
-
"Project-Id-Version: Odoo Server
|
|
7
|
+
"Project-Id-Version: Odoo Server 19.0\n"
|
|
8
8
|
"Report-Msgid-Bugs-To: \n"
|
|
9
9
|
"Last-Translator: \n"
|
|
10
10
|
"Language-Team: \n"
|
|
@@ -14,21 +14,34 @@ msgstr ""
|
|
|
14
14
|
"Plural-Forms: \n"
|
|
15
15
|
|
|
16
16
|
#. module: base_view_inheritance_extension
|
|
17
|
-
#:
|
|
18
|
-
msgid "
|
|
17
|
+
#: model:ir.model.fields,field_description:base_view_inheritance_extension.field_ir_ui_view__display_name
|
|
18
|
+
msgid "Display Name"
|
|
19
19
|
msgstr ""
|
|
20
20
|
|
|
21
21
|
#. module: base_view_inheritance_extension
|
|
22
|
-
#:
|
|
23
|
-
msgid "
|
|
22
|
+
#: model:ir.model.fields,field_description:base_view_inheritance_extension.field_ir_ui_view__id
|
|
23
|
+
msgid "ID"
|
|
24
24
|
msgstr ""
|
|
25
25
|
|
|
26
26
|
#. module: base_view_inheritance_extension
|
|
27
|
-
#: model:ir.model
|
|
28
|
-
msgid "
|
|
27
|
+
#: model:ir.model,name:base_view_inheritance_extension.model_ir_ui_view
|
|
28
|
+
msgid "View"
|
|
29
29
|
msgstr ""
|
|
30
30
|
|
|
31
31
|
#. module: base_view_inheritance_extension
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
#. odoo-python
|
|
33
|
+
#: code:addons/base_view_inheritance_extension/models/ir_ui_view.py:0
|
|
34
|
+
msgid "wraptext elements cannot have children"
|
|
35
|
+
msgstr ""
|
|
36
|
+
|
|
37
|
+
#. module: base_view_inheritance_extension
|
|
38
|
+
#. odoo-python
|
|
39
|
+
#: code:addons/base_view_inheritance_extension/models/ir_ui_view.py:0
|
|
40
|
+
msgid "wraptext: nothing found for expression %r"
|
|
41
|
+
msgstr ""
|
|
42
|
+
|
|
43
|
+
#. module: base_view_inheritance_extension
|
|
44
|
+
#. odoo-python
|
|
45
|
+
#: code:addons/base_view_inheritance_extension/models/ir_ui_view.py:0
|
|
46
|
+
msgid "wraptext: the only valid positions are 'text' or 'tail'"
|
|
34
47
|
msgstr ""
|
|
@@ -9,15 +9,14 @@ msgstr ""
|
|
|
9
9
|
"Project-Id-Version: Odoo Server 9.0c\n"
|
|
10
10
|
"Report-Msgid-Bugs-To: \n"
|
|
11
11
|
"POT-Creation-Date: 2016-12-29 03:39+0000\n"
|
|
12
|
-
"PO-Revision-Date:
|
|
13
|
-
"Last-Translator:
|
|
12
|
+
"PO-Revision-Date: 2016-12-29 03:39+0000\n"
|
|
13
|
+
"Last-Translator: Ahmet Altinisik <aaltinisik@altinkaya.com.tr>, 2016\n"
|
|
14
14
|
"Language-Team: Turkish (https://www.transifex.com/oca/teams/23907/tr/)\n"
|
|
15
15
|
"Language: tr\n"
|
|
16
16
|
"MIME-Version: 1.0\n"
|
|
17
17
|
"Content-Type: text/plain; charset=UTF-8\n"
|
|
18
18
|
"Content-Transfer-Encoding: \n"
|
|
19
19
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
|
20
|
-
"X-Generator: Weblate 5.15.2\n"
|
|
21
20
|
|
|
22
21
|
#. module: base_view_inheritance_extension
|
|
23
22
|
#: model_terms:ir.ui.view,arch_db:base_view_inheritance_extension.view_partner_simple_form
|
|
@@ -27,17 +26,17 @@ msgstr "İş ortağı formu"
|
|
|
27
26
|
#. module: base_view_inheritance_extension
|
|
28
27
|
#: model_terms:ir.ui.view,arch_db:base_view_inheritance_extension.view_partner_simple_form
|
|
29
28
|
msgid "Phone numbers"
|
|
30
|
-
msgstr "
|
|
29
|
+
msgstr ""
|
|
31
30
|
|
|
32
31
|
#. module: base_view_inheritance_extension
|
|
33
32
|
#: model:ir.model.fields,field_description:base_view_inheritance_extension.field_ir_ui_view__smart_search
|
|
34
33
|
msgid "Smart Search"
|
|
35
|
-
msgstr "
|
|
34
|
+
msgstr ""
|
|
36
35
|
|
|
37
36
|
#. module: base_view_inheritance_extension
|
|
38
37
|
#: model:ir.model,name:base_view_inheritance_extension.model_ir_ui_view
|
|
39
38
|
msgid "View"
|
|
40
|
-
msgstr "
|
|
39
|
+
msgstr ""
|
|
41
40
|
|
|
42
41
|
#~ msgid "ir.ui.view"
|
|
43
42
|
#~ msgstr "ir.ui.view"
|
|
@@ -9,7 +9,8 @@ import re
|
|
|
9
9
|
from lxml import etree
|
|
10
10
|
|
|
11
11
|
from odoo import api, models
|
|
12
|
-
from odoo.
|
|
12
|
+
from odoo.exceptions import ValidationError
|
|
13
|
+
from odoo.fields import Domain
|
|
13
14
|
|
|
14
15
|
|
|
15
16
|
def ast_dict_update(source, update):
|
|
@@ -83,6 +84,85 @@ class IrUiView(models.Model):
|
|
|
83
84
|
handler = getattr(self, f"inheritance_handler_{node.tag}")
|
|
84
85
|
return handler
|
|
85
86
|
|
|
87
|
+
@api.model
|
|
88
|
+
def inheritance_handler_wraptext(self, source, specs):
|
|
89
|
+
"""Implement wraptext inheritance spec
|
|
90
|
+
|
|
91
|
+
.. code-block:: xml
|
|
92
|
+
|
|
93
|
+
<wraptext expr="//some/node" position="text" element="span" />
|
|
94
|
+
|
|
95
|
+
Which transforms xml like
|
|
96
|
+
|
|
97
|
+
.. code-block:: xml
|
|
98
|
+
|
|
99
|
+
<some>
|
|
100
|
+
<node>
|
|
101
|
+
plain text
|
|
102
|
+
<other_node />
|
|
103
|
+
</node>
|
|
104
|
+
</some>
|
|
105
|
+
|
|
106
|
+
to
|
|
107
|
+
|
|
108
|
+
.. code-block:: xml
|
|
109
|
+
|
|
110
|
+
<some>
|
|
111
|
+
<node>
|
|
112
|
+
<span>plain text</span>
|
|
113
|
+
<other_node />
|
|
114
|
+
</node>
|
|
115
|
+
</some>
|
|
116
|
+
|
|
117
|
+
"""
|
|
118
|
+
if len(specs):
|
|
119
|
+
raise ValidationError(self.env._("wraptext elements cannot have children"))
|
|
120
|
+
|
|
121
|
+
expression = specs.attrib.get("expr")
|
|
122
|
+
found = source.xpath(specs.attrib["expr"])
|
|
123
|
+
if not found:
|
|
124
|
+
raise ValidationError(
|
|
125
|
+
self.env._("wraptext: nothing found for expression %r", expression)
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
found = found[0]
|
|
129
|
+
text_position = specs.attrib.get("position", "text")
|
|
130
|
+
if text_position not in ("text", "tail"):
|
|
131
|
+
raise ValidationError(
|
|
132
|
+
self.env._("wraptext: the only valid positions are 'text' or 'tail'")
|
|
133
|
+
)
|
|
134
|
+
|
|
135
|
+
wrapped = etree.Element(specs.attrib.get("element", "t"))
|
|
136
|
+
wrapped.text = getattr(found, text_position)
|
|
137
|
+
setattr(found, text_position, None)
|
|
138
|
+
|
|
139
|
+
if self.env.context.get("edit_translations") and not wrapped.text:
|
|
140
|
+
# translation might have wrapped the text already in a <span> element
|
|
141
|
+
# we wrap this element so that subsequent view manipulations find
|
|
142
|
+
# the wrapped element at the same position in the tree it would be at
|
|
143
|
+
# without translation
|
|
144
|
+
next_sibling = found.getnext()
|
|
145
|
+
|
|
146
|
+
if (
|
|
147
|
+
text_position == "text"
|
|
148
|
+
and len(found)
|
|
149
|
+
and found[0].attrib.get("data-oe-translation-state")
|
|
150
|
+
):
|
|
151
|
+
wrapped.append(found[0])
|
|
152
|
+
elif (
|
|
153
|
+
text_position == "tail"
|
|
154
|
+
and next_sibling is not None
|
|
155
|
+
and next_sibling.attrib.get("data-oe-translation-state")
|
|
156
|
+
):
|
|
157
|
+
wrapped.append(next_sibling)
|
|
158
|
+
|
|
159
|
+
if text_position == "text":
|
|
160
|
+
found.insert(0, wrapped)
|
|
161
|
+
elif text_position == "tail":
|
|
162
|
+
found.addnext(wrapped)
|
|
163
|
+
|
|
164
|
+
return source
|
|
165
|
+
|
|
86
166
|
@api.model
|
|
87
167
|
def _get_inheritance_handler_attributes(self, node):
|
|
88
168
|
handler = super().apply_inheritance_specs
|
|
@@ -163,9 +243,9 @@ class IrUiView(models.Model):
|
|
|
163
243
|
self._var2str_domain_text(attribute_node.text.strip())
|
|
164
244
|
)
|
|
165
245
|
if join_operator == "OR":
|
|
166
|
-
new_value = str(
|
|
246
|
+
new_value = str(Domain.OR([old_domain, new_domain]))
|
|
167
247
|
else:
|
|
168
|
-
new_value = str(
|
|
248
|
+
new_value = str(Domain.AND([old_domain, new_domain]))
|
|
169
249
|
new_value = self._str2var_domain_text(new_value)
|
|
170
250
|
old_value = "".join(old_value.splitlines())
|
|
171
251
|
else:
|
|
@@ -30,3 +30,36 @@ conditional changes**
|
|
|
30
30
|
$domain_to_add
|
|
31
31
|
</attribute>
|
|
32
32
|
```
|
|
33
|
+
|
|
34
|
+
**Wrap loose text in an element for further processing**
|
|
35
|
+
|
|
36
|
+
``` xml
|
|
37
|
+
<wraptext expr="//some/node" position="text" element="span" />
|
|
38
|
+
<wraptext expr="//some/node/other_node" position="tail" element="div" />
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
which transforms
|
|
42
|
+
|
|
43
|
+
``` xml
|
|
44
|
+
<some>
|
|
45
|
+
<node>
|
|
46
|
+
plain text 1
|
|
47
|
+
<other_node />
|
|
48
|
+
plain text2
|
|
49
|
+
</node>
|
|
50
|
+
</some>
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
to
|
|
54
|
+
|
|
55
|
+
``` xml
|
|
56
|
+
<some>
|
|
57
|
+
<node>
|
|
58
|
+
<span>plain text 1</span>
|
|
59
|
+
<other_node />
|
|
60
|
+
<div>plain text2</div>
|
|
61
|
+
</node>
|
|
62
|
+
</some>
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
making those texts accessible for further operations
|
|
@@ -372,9 +372,9 @@ ul.auto-toc {
|
|
|
372
372
|
!! This file is generated by oca-gen-addon-readme !!
|
|
373
373
|
!! changes will be overwritten. !!
|
|
374
374
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
375
|
-
!! source digest: sha256:
|
|
375
|
+
!! source digest: sha256:9089555b5aea01b23ff4a0350d6fd69589d63f1beb4e272ed5a96eebf05b2a81
|
|
376
376
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
|
377
|
-
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Mature" src="https://img.shields.io/badge/maturity-Mature-brightgreen.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/license-LGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/server-tools/tree/
|
|
377
|
+
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Mature" src="https://img.shields.io/badge/maturity-Mature-brightgreen.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/license-LGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/server-tools/tree/19.0/base_view_inheritance_extension"><img alt="OCA/server-tools" src="https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/server-tools-19-0/server-tools-19-0-base_view_inheritance_extension"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=19.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
|
378
378
|
<p>This module was written to make it simple to add custom operators for
|
|
379
379
|
view inheritance.</p>
|
|
380
380
|
<p><strong>Table of contents</strong></p>
|
|
@@ -419,6 +419,32 @@ conditional changes</strong></p>
|
|
|
419
419
|
</span>$domain_to_add<span class="w">
|
|
420
420
|
</span><span class="nt"></attribute></span>
|
|
421
421
|
</pre>
|
|
422
|
+
<p><strong>Wrap loose text in an element for further processing</strong></p>
|
|
423
|
+
<pre class="code xml literal-block">
|
|
424
|
+
<span class="nt"><wraptext</span><span class="w"> </span><span class="na">expr=</span><span class="s">"//some/node"</span><span class="w"> </span><span class="na">position=</span><span class="s">"text"</span><span class="w"> </span><span class="na">element=</span><span class="s">"span"</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
|
425
|
+
</span><span class="nt"><wraptext</span><span class="w"> </span><span class="na">expr=</span><span class="s">"//some/node/other_node"</span><span class="w"> </span><span class="na">position=</span><span class="s">"tail"</span><span class="w"> </span><span class="na">element=</span><span class="s">"div"</span><span class="w"> </span><span class="nt">/></span>
|
|
426
|
+
</pre>
|
|
427
|
+
<p>which transforms</p>
|
|
428
|
+
<pre class="code xml literal-block">
|
|
429
|
+
<span class="nt"><some></span><span class="w">
|
|
430
|
+
</span><span class="nt"><node></span><span class="w">
|
|
431
|
+
</span>plain<span class="w"> </span>text<span class="w"> </span>1<span class="w">
|
|
432
|
+
</span><span class="nt"><other_node</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
|
433
|
+
</span>plain<span class="w"> </span>text2<span class="w">
|
|
434
|
+
</span><span class="nt"></node></span><span class="w">
|
|
435
|
+
</span><span class="nt"></some></span>
|
|
436
|
+
</pre>
|
|
437
|
+
<p>to</p>
|
|
438
|
+
<pre class="code xml literal-block">
|
|
439
|
+
<span class="nt"><some></span><span class="w">
|
|
440
|
+
</span><span class="nt"><node></span><span class="w">
|
|
441
|
+
</span><span class="nt"><span></span>plain<span class="w"> </span>text<span class="w"> </span>1<span class="nt"></span></span><span class="w">
|
|
442
|
+
</span><span class="nt"><other_node</span><span class="w"> </span><span class="nt">/></span><span class="w">
|
|
443
|
+
</span><span class="nt"><div></span>plain<span class="w"> </span>text2<span class="nt"></div></span><span class="w">
|
|
444
|
+
</span><span class="nt"></node></span><span class="w">
|
|
445
|
+
</span><span class="nt"></some></span>
|
|
446
|
+
</pre>
|
|
447
|
+
<p>making those texts accessible for further operations</p>
|
|
422
448
|
</div>
|
|
423
449
|
<div class="section" id="known-issues-roadmap">
|
|
424
450
|
<h2><a class="toc-backref" href="#toc-entry-2">Known issues / Roadmap</a></h2>
|
|
@@ -431,7 +457,7 @@ conditional changes</strong></p>
|
|
|
431
457
|
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/server-tools/issues">GitHub Issues</a>.
|
|
432
458
|
In case of trouble, please check there if your issue has already been reported.
|
|
433
459
|
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
|
434
|
-
<a class="reference external" href="https://github.com/OCA/server-tools/issues/new?body=module:%20base_view_inheritance_extension%0Aversion:%
|
|
460
|
+
<a class="reference external" href="https://github.com/OCA/server-tools/issues/new?body=module:%20base_view_inheritance_extension%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
|
|
435
461
|
<p>Do not contact contributors directly about support or help with technical issues.</p>
|
|
436
462
|
</div>
|
|
437
463
|
<div class="section" id="credits">
|
|
@@ -445,7 +471,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
|
|
|
445
471
|
<div class="section" id="contributors">
|
|
446
472
|
<h3><a class="toc-backref" href="#toc-entry-6">Contributors</a></h3>
|
|
447
473
|
<ul class="simple">
|
|
448
|
-
<li>Holger Brunn <<a class="reference external" href="mailto:
|
|
474
|
+
<li>Holger Brunn <<a class="reference external" href="mailto:mail@hunki-enterprises.com">mail@hunki-enterprises.com</a>></li>
|
|
449
475
|
<li>Ronald Portier <<a class="reference external" href="mailto:rportier@therp.nl">rportier@therp.nl</a>></li>
|
|
450
476
|
<li><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a>:<ul>
|
|
451
477
|
<li>Sergio Teruel</li>
|
|
@@ -469,7 +495,9 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
|
|
|
469
495
|
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
|
|
470
496
|
mission is to support the collaborative development of Odoo features and
|
|
471
497
|
promote its widespread use.</p>
|
|
472
|
-
<p>
|
|
498
|
+
<p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainer</a>:</p>
|
|
499
|
+
<p><a class="reference external image-reference" href="https://github.com/hbrunn"><img alt="hbrunn" src="https://github.com/hbrunn.png?size=40px" /></a></p>
|
|
500
|
+
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/server-tools/tree/19.0/base_view_inheritance_extension">OCA/server-tools</a> project on GitHub.</p>
|
|
473
501
|
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
|
|
474
502
|
</div>
|
|
475
503
|
</div>
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
from lxml import etree
|
|
7
7
|
|
|
8
|
+
from odoo.exceptions import ValidationError
|
|
8
9
|
from odoo.tests.common import TransactionCase
|
|
9
10
|
|
|
10
11
|
|
|
@@ -13,10 +14,33 @@ class TestBaseViewInheritanceExtension(TransactionCase):
|
|
|
13
14
|
def setUpClass(cls):
|
|
14
15
|
super().setUpClass()
|
|
15
16
|
cls.maxDiff = None
|
|
17
|
+
cls.view = cls.env["ir.ui.view"].create(
|
|
18
|
+
{
|
|
19
|
+
"name": "Test Partner Simple Form Override",
|
|
20
|
+
"type": "form",
|
|
21
|
+
"model": "res.partner",
|
|
22
|
+
"inherit_id": cls.env.ref("base.view_partner_simple_form").id,
|
|
23
|
+
"arch": """
|
|
24
|
+
<data>
|
|
25
|
+
<xpath expr="." position="attributes">
|
|
26
|
+
<attribute name="string">Partner form</attribute>
|
|
27
|
+
</xpath>
|
|
28
|
+
|
|
29
|
+
<field name="parent_id" position="attributes">
|
|
30
|
+
<attribute name="context" operation="update">
|
|
31
|
+
{
|
|
32
|
+
"default_email": "info@odoo-community.org",
|
|
33
|
+
"default_company_id": allowed_company_ids[0]
|
|
34
|
+
}
|
|
35
|
+
</attribute>
|
|
36
|
+
</field>
|
|
37
|
+
</data>
|
|
38
|
+
""",
|
|
39
|
+
}
|
|
40
|
+
)
|
|
16
41
|
|
|
17
42
|
def test_base_view_inheritance_extension(self):
|
|
18
|
-
|
|
19
|
-
arch, _ = self.env["res.partner"]._get_view(view_id=view_id)
|
|
43
|
+
arch, _ = self.env["res.partner"]._get_view(view_id=self.view.id)
|
|
20
44
|
# Verify normal attributes work
|
|
21
45
|
self.assertEqual(arch.xpath("//form")[0].get("string"), "Partner form")
|
|
22
46
|
# Verify our extra context key worked
|
|
@@ -199,3 +223,47 @@ class TestBaseViewInheritanceExtension(TransactionCase):
|
|
|
199
223
|
)
|
|
200
224
|
with self.assertRaisesRegex(TypeError, "Attribute `domain` is not a dict"):
|
|
201
225
|
self.env["ir.ui.view"].apply_inheritance_specs(source, specs)
|
|
226
|
+
|
|
227
|
+
def test_wraptext(self):
|
|
228
|
+
"""Test textwrap transformations"""
|
|
229
|
+
base_view = self.env["ir.ui.view"].create(
|
|
230
|
+
{
|
|
231
|
+
"type": "qweb",
|
|
232
|
+
"arch": "<some>"
|
|
233
|
+
"<node>plain text 1<other_node />plain text2</node></some>",
|
|
234
|
+
}
|
|
235
|
+
)
|
|
236
|
+
inherited_view = self.env["ir.ui.view"].create(
|
|
237
|
+
{
|
|
238
|
+
"type": "qweb",
|
|
239
|
+
"inherit_id": base_view.id,
|
|
240
|
+
"arch": "<data>"
|
|
241
|
+
'<wraptext expr="//some/node" position="text" element="span" />'
|
|
242
|
+
'<wraptext expr="//some/node/other_node" position="tail" '
|
|
243
|
+
'element="div" />'
|
|
244
|
+
"</data>",
|
|
245
|
+
}
|
|
246
|
+
)
|
|
247
|
+
self.assertEqual(
|
|
248
|
+
base_view.with_context(load_all_views=True).get_combined_arch(),
|
|
249
|
+
"<some><node><span>plain text 1</span><other_node/>"
|
|
250
|
+
"<div>plain text2</div></node></some>",
|
|
251
|
+
)
|
|
252
|
+
translatable_arch = base_view.with_context(
|
|
253
|
+
load_all_views=True, edit_translations=True
|
|
254
|
+
)._get_combined_arch()
|
|
255
|
+
self.assertTrue(
|
|
256
|
+
translatable_arch.xpath("//some/node/span/span[@data-oe-translation-state]")
|
|
257
|
+
)
|
|
258
|
+
self.assertTrue(
|
|
259
|
+
translatable_arch.xpath("//some/node/div/span[@data-oe-translation-state]")
|
|
260
|
+
)
|
|
261
|
+
|
|
262
|
+
with self.assertRaisesRegex(ValidationError, "children"):
|
|
263
|
+
inherited_view.write({"arch": "<wraptext><node /></wraptext>"})
|
|
264
|
+
with self.assertRaisesRegex(ValidationError, "found"):
|
|
265
|
+
inherited_view.write({"arch": '<wraptext expr="//not/existing" />'})
|
|
266
|
+
with self.assertRaisesRegex(ValidationError, "positions"):
|
|
267
|
+
inherited_view.write(
|
|
268
|
+
{"arch": '<wraptext expr="//some/node" position="other" />'}
|
|
269
|
+
)
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: odoo-addon-base_view_inheritance_extension
|
|
3
|
-
Version:
|
|
4
|
-
Requires-
|
|
5
|
-
Requires-Dist: odoo==18.0.*
|
|
3
|
+
Version: 19.0.1.0.0.6
|
|
4
|
+
Requires-Dist: odoo==19.0.*
|
|
6
5
|
Summary: Adds more operators for view inheritance
|
|
7
6
|
Home-page: https://github.com/OCA/server-tools
|
|
8
7
|
License: LGPL-3
|
|
@@ -10,7 +9,7 @@ Author: Therp BV,Odoo Community Association (OCA)
|
|
|
10
9
|
Author-email: support@odoo-community.org
|
|
11
10
|
Classifier: Programming Language :: Python
|
|
12
11
|
Classifier: Framework :: Odoo
|
|
13
|
-
Classifier: Framework :: Odoo ::
|
|
12
|
+
Classifier: Framework :: Odoo :: 19.0
|
|
14
13
|
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
|
|
15
14
|
Classifier: Development Status :: 6 - Mature
|
|
16
15
|
Description-Content-Type: text/x-rst
|
|
@@ -28,7 +27,7 @@ Extended view inheritance
|
|
|
28
27
|
!! This file is generated by oca-gen-addon-readme !!
|
|
29
28
|
!! changes will be overwritten. !!
|
|
30
29
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
31
|
-
!! source digest: sha256:
|
|
30
|
+
!! source digest: sha256:9089555b5aea01b23ff4a0350d6fd69589d63f1beb4e272ed5a96eebf05b2a81
|
|
32
31
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
33
32
|
|
|
34
33
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
|
|
@@ -38,13 +37,13 @@ Extended view inheritance
|
|
|
38
37
|
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
|
|
39
38
|
:alt: License: LGPL-3
|
|
40
39
|
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--tools-lightgray.png?logo=github
|
|
41
|
-
:target: https://github.com/OCA/server-tools/tree/
|
|
40
|
+
:target: https://github.com/OCA/server-tools/tree/19.0/base_view_inheritance_extension
|
|
42
41
|
:alt: OCA/server-tools
|
|
43
42
|
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
|
|
44
|
-
:target: https://translation.odoo-community.org/projects/server-tools-
|
|
43
|
+
:target: https://translation.odoo-community.org/projects/server-tools-19-0/server-tools-19-0-base_view_inheritance_extension
|
|
45
44
|
:alt: Translate me on Weblate
|
|
46
45
|
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
|
|
47
|
-
:target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=
|
|
46
|
+
:target: https://runboat.odoo-community.org/builds?repo=OCA/server-tools&target_branch=19.0
|
|
48
47
|
:alt: Try me on Runboat
|
|
49
48
|
|
|
50
49
|
|badge1| |badge2| |badge3| |badge4| |badge5|
|
|
@@ -93,6 +92,39 @@ conditional changes**
|
|
|
93
92
|
$domain_to_add
|
|
94
93
|
</attribute>
|
|
95
94
|
|
|
95
|
+
**Wrap loose text in an element for further processing**
|
|
96
|
+
|
|
97
|
+
.. code:: xml
|
|
98
|
+
|
|
99
|
+
<wraptext expr="//some/node" position="text" element="span" />
|
|
100
|
+
<wraptext expr="//some/node/other_node" position="tail" element="div" />
|
|
101
|
+
|
|
102
|
+
which transforms
|
|
103
|
+
|
|
104
|
+
.. code:: xml
|
|
105
|
+
|
|
106
|
+
<some>
|
|
107
|
+
<node>
|
|
108
|
+
plain text 1
|
|
109
|
+
<other_node />
|
|
110
|
+
plain text2
|
|
111
|
+
</node>
|
|
112
|
+
</some>
|
|
113
|
+
|
|
114
|
+
to
|
|
115
|
+
|
|
116
|
+
.. code:: xml
|
|
117
|
+
|
|
118
|
+
<some>
|
|
119
|
+
<node>
|
|
120
|
+
<span>plain text 1</span>
|
|
121
|
+
<other_node />
|
|
122
|
+
<div>plain text2</div>
|
|
123
|
+
</node>
|
|
124
|
+
</some>
|
|
125
|
+
|
|
126
|
+
making those texts accessible for further operations
|
|
127
|
+
|
|
96
128
|
Known issues / Roadmap
|
|
97
129
|
======================
|
|
98
130
|
|
|
@@ -104,7 +136,7 @@ Bug Tracker
|
|
|
104
136
|
Bugs are tracked on `GitHub Issues <https://github.com/OCA/server-tools/issues>`_.
|
|
105
137
|
In case of trouble, please check there if your issue has already been reported.
|
|
106
138
|
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
|
107
|
-
`feedback <https://github.com/OCA/server-tools/issues/new?body=module:%20base_view_inheritance_extension%0Aversion:%
|
|
139
|
+
`feedback <https://github.com/OCA/server-tools/issues/new?body=module:%20base_view_inheritance_extension%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
|
|
108
140
|
|
|
109
141
|
Do not contact contributors directly about support or help with technical issues.
|
|
110
142
|
|
|
@@ -119,7 +151,7 @@ Authors
|
|
|
119
151
|
Contributors
|
|
120
152
|
------------
|
|
121
153
|
|
|
122
|
-
- Holger Brunn <
|
|
154
|
+
- Holger Brunn <mail@hunki-enterprises.com>
|
|
123
155
|
- Ronald Portier <rportier@therp.nl>
|
|
124
156
|
- `Tecnativa <https://www.tecnativa.com>`__:
|
|
125
157
|
|
|
@@ -146,6 +178,14 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
|
|
|
146
178
|
mission is to support the collaborative development of Odoo features and
|
|
147
179
|
promote its widespread use.
|
|
148
180
|
|
|
149
|
-
|
|
181
|
+
.. |maintainer-hbrunn| image:: https://github.com/hbrunn.png?size=40px
|
|
182
|
+
:target: https://github.com/hbrunn
|
|
183
|
+
:alt: hbrunn
|
|
184
|
+
|
|
185
|
+
Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
|
|
186
|
+
|
|
187
|
+
|maintainer-hbrunn|
|
|
188
|
+
|
|
189
|
+
This module is part of the `OCA/server-tools <https://github.com/OCA/server-tools/tree/19.0/base_view_inheritance_extension>`_ project on GitHub.
|
|
150
190
|
|
|
151
191
|
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
odoo/addons/base_view_inheritance_extension/README.rst,sha256=
|
|
1
|
+
odoo/addons/base_view_inheritance_extension/README.rst,sha256=bPpTwuVzGuH7aGBQc9eMk1RbUeLzYH1aEIgBVC-x3_o,5188
|
|
2
2
|
odoo/addons/base_view_inheritance_extension/__init__.py,sha256=X9EJGOE2GtZbS0G82PtSXmWSZ_R8jEM0rlJTDliQjp4,21
|
|
3
|
-
odoo/addons/base_view_inheritance_extension/__manifest__.py,sha256=
|
|
3
|
+
odoo/addons/base_view_inheritance_extension/__manifest__.py,sha256=JexcyLW9M5Oauk85oOYaJXwpVJt0j3OK3-hOvh32AhQ,595
|
|
4
4
|
odoo/addons/base_view_inheritance_extension/demo/ir_ui_view.xml,sha256=MHPVOGOM6XnNOTsq0ylz1B5r0sPJpRKHLan3K2mZ6sA,1200
|
|
5
|
-
odoo/addons/base_view_inheritance_extension/i18n/base_view_inheritance_extension.pot,sha256=
|
|
5
|
+
odoo/addons/base_view_inheritance_extension/i18n/base_view_inheritance_extension.pot,sha256=q-gDEdipn5UuPHpC6P6M_ZHpW3JNHSGh5JmASj9_Tcg,1437
|
|
6
6
|
odoo/addons/base_view_inheritance_extension/i18n/ca.po,sha256=7ncEf2XfOWoOIlU7jysZhKYtd1KEF7oUHABgxJeEm9Q,1443
|
|
7
7
|
odoo/addons/base_view_inheritance_extension/i18n/de.po,sha256=yaXLt5LJ08bt1zv4h76aKSH0blNmlHOW8ZMI34VOix8,1364
|
|
8
8
|
odoo/addons/base_view_inheritance_extension/i18n/es.po,sha256=iQy3KiLd16FHheppaA1xkRNV7uFkkBiNAGw7wlVIwYE,1458
|
|
@@ -11,18 +11,18 @@ odoo/addons/base_view_inheritance_extension/i18n/hr.po,sha256=9jsjrpjkiQ6eE36_vy
|
|
|
11
11
|
odoo/addons/base_view_inheritance_extension/i18n/it.po,sha256=342XK5tLJJavpToQ_TK5f2n93-XkP5CY7t2BrKTVWUA,1446
|
|
12
12
|
odoo/addons/base_view_inheritance_extension/i18n/nl.po,sha256=GhwvImKVOxKFw8GyANTKjBi1i9NLHAyUQ9ekbLViDSc,1261
|
|
13
13
|
odoo/addons/base_view_inheritance_extension/i18n/sl.po,sha256=qcdE0TSP9_F3oCAKT3zL2pJG9Wfntzb6gx08OKIkvlw,1446
|
|
14
|
-
odoo/addons/base_view_inheritance_extension/i18n/tr.po,sha256=
|
|
14
|
+
odoo/addons/base_view_inheritance_extension/i18n/tr.po,sha256=S3G6M2N5DNbiTpctuhlJ14hfKa_BJ_v0Ju-4cHu7eQQ,1453
|
|
15
15
|
odoo/addons/base_view_inheritance_extension/models/__init__.py,sha256=SjKfc8ocbCImvP5DpGQbS0hWmQRYPjtzJdyio6TPII0,25
|
|
16
|
-
odoo/addons/base_view_inheritance_extension/models/ir_ui_view.py,sha256=
|
|
17
|
-
odoo/addons/base_view_inheritance_extension/readme/CONTRIBUTORS.md,sha256=
|
|
16
|
+
odoo/addons/base_view_inheritance_extension/models/ir_ui_view.py,sha256=Ly32LApnmlBDbEVksSVcXvtdV_A9hck3aU9P6b8OmZo,10304
|
|
17
|
+
odoo/addons/base_view_inheritance_extension/readme/CONTRIBUTORS.md,sha256=twGLhOqn0hj9V64aQoEEPwLAe6XnicJdvvUABWyAtws,330
|
|
18
18
|
odoo/addons/base_view_inheritance_extension/readme/DESCRIPTION.md,sha256=TC-vXmaSQ5oo7nNl5jxSyurQiz2597hDzQirRGw73BI,88
|
|
19
19
|
odoo/addons/base_view_inheritance_extension/readme/ROADMAP.md,sha256=79XqQ49EvpKp11-P-rimu8Mwklpwor3rkWKFPym9YbA,54
|
|
20
|
-
odoo/addons/base_view_inheritance_extension/readme/USAGE.md,sha256=
|
|
20
|
+
odoo/addons/base_view_inheritance_extension/readme/USAGE.md,sha256=JUcs3LBeorMlOSzQYLVsAO6ERQlNLoT3_GeBdIQ8pIA,1347
|
|
21
21
|
odoo/addons/base_view_inheritance_extension/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
|
|
22
|
-
odoo/addons/base_view_inheritance_extension/static/description/index.html,sha256=
|
|
22
|
+
odoo/addons/base_view_inheritance_extension/static/description/index.html,sha256=a8oLdse7HgvcjLRPX_2P8CFpBSJl5laCHN1e4NKfY8w,18601
|
|
23
23
|
odoo/addons/base_view_inheritance_extension/tests/__init__.py,sha256=kTcGsgnWhpM7vII3sEdNX5XVxDHHqRc5KdrxInG6GSw,51
|
|
24
|
-
odoo/addons/base_view_inheritance_extension/tests/test_base_view_inheritance_extension.py,sha256=
|
|
25
|
-
odoo_addon_base_view_inheritance_extension-
|
|
26
|
-
odoo_addon_base_view_inheritance_extension-
|
|
27
|
-
odoo_addon_base_view_inheritance_extension-
|
|
28
|
-
odoo_addon_base_view_inheritance_extension-
|
|
24
|
+
odoo/addons/base_view_inheritance_extension/tests/test_base_view_inheritance_extension.py,sha256=HfNUvwVWkXvciOoprNkYqD6JobT2_n9w8qCCddE8X8g,9958
|
|
25
|
+
odoo_addon_base_view_inheritance_extension-19.0.1.0.0.6.dist-info/METADATA,sha256=v_-BF-F2RbwqMY57YTu_TeLxGm0B39Xtqe6P5oQm2JA,5792
|
|
26
|
+
odoo_addon_base_view_inheritance_extension-19.0.1.0.0.6.dist-info/WHEEL,sha256=ZhOvUsYhy81Dx67gN3TV0RchQWBIIzutDZaJODDg2Vo,81
|
|
27
|
+
odoo_addon_base_view_inheritance_extension-19.0.1.0.0.6.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
|
|
28
|
+
odoo_addon_base_view_inheritance_extension-19.0.1.0.0.6.dist-info/RECORD,,
|
|
File without changes
|