Skip to content

Commit 033a61e

Browse files
[FIX] report_qweb_parameter: out and raw doesn't work with conditionals
1 parent 2a388f6 commit 033a61e

File tree

4 files changed

+34
-6
lines changed

4 files changed

+34
-6
lines changed

report_qweb_parameter/demo/test_report_field_length.xml

+17-2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
t-esc="docs[0].street"
1616
t-if="docs[0].street"
1717
/>
18+
<li
19+
name="esc_conditional_length"
20+
t-length="3"
21+
t-esc="docs[0].name or docs[0].company_registry"
22+
/>
1823
<li
1924
name="esc_maxlength"
2025
t-maxlength="10"
@@ -28,21 +33,31 @@
2833
t-raw="docs[0].vat"
2934
t-if="docs[0].vat"
3035
/>
36+
<li
37+
name="raw_conditional_length"
38+
t-length="4"
39+
t-raw="docs[0].name or docs[0].company_registry"
40+
/>
3141
<li
3242
name="raw_maxlength"
3343
t-maxlength="10"
3444
t-raw="docs[0].company_registry"
3545
t-if="docs[0].company_registry"
3646
/>
3747
<li
38-
name="raw_length"
48+
name="out_length"
3949
t-minlength="10"
4050
t-length="10"
4151
t-out="docs[0].vat"
4252
t-if="docs[0].vat"
4353
/>
4454
<li
45-
name="raw_maxlength"
55+
name="out_conditional_length"
56+
t-length="5"
57+
t-out="docs[0].name or docs[0].company_registry"
58+
/>
59+
<li
60+
name="out_maxlength"
4661
t-maxlength="10"
4762
t-out="docs[0].company_registry"
4863
t-if="docs[0].company_registry"

report_qweb_parameter/models/ir_qweb.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ def _compile_directive_out(self, el, compile_context, level):
4949
)
5050
if "t-length" in el.attrib:
5151
tlength = el.attrib.pop("t-length")
52-
el.attrib["t-out"] = el.attrib["t-out"] + "[:" + tlength + "]"
52+
el.attrib["t-out"] = '(' + el.attrib["t-out"] + ")[:" + tlength + "]"
5353
return super()._compile_directive_out(el, compile_context, level)
5454

5555
def _compile_directive_raw(self, el, compile_context, level):
@@ -68,5 +68,5 @@ def _compile_directive_raw(self, el, compile_context, level):
6868
)
6969
if "t-length" in el.attrib:
7070
tlength = el.attrib.pop("t-length")
71-
el.attrib["t-raw"] = el.attrib["t-raw"] + "[:" + tlength + "]"
71+
el.attrib["t-raw"] = '(' + el.attrib["t-raw"] + ")[:" + tlength + "]"
7272
return super()._compile_directive_raw(el, compile_context, level)

report_qweb_parameter/readme/CONTRIBUTORS.rst

+4
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,7 @@
55
* Carlos Roca
66

77
* Iván Antón <ozono@ozonomultimedia.com>
8+
9+
* `Sygel Technology <https://www.sygel.es>`_:
10+
11+
* Valentin Vinagre

report_qweb_parameter/tests/test_report_qweb_parameter.py

+11-2
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,18 @@ def test_qweb_parameter(self):
2424
docs.website = "1234567890" # for avoding that Odoo adds http://
2525
rep = report_object._render(report_name, docs.ids, False)
2626
root = ET.fromstring(rep[0])
27+
28+
# test length
2729
self.assertEqual(root[0].text, "1234567890")
28-
self.assertEqual(root[2].text, "1234567890")
29-
self.assertEqual(root[4].text, "1234567890")
30+
self.assertEqual(root[3].text, "1234567890")
31+
self.assertEqual(root[6].text, "1234567890")
32+
33+
# test condicional length
34+
self.assertEqual(root[1].text, "Tes")
35+
self.assertEqual(root[4].text, "Test")
36+
self.assertEqual(root[7].text, "Test ")
37+
38+
# test maxlength
3039
docs.update({"street": "123456789"})
3140
with self.assertRaises(QWebException):
3241
report_object._render(report_name, docs.ids, False)

0 commit comments

Comments
 (0)