From 1af9e493476a4d62a231a88657ef8229c700ed7d Mon Sep 17 00:00:00 2001
From: etobella
Date: Mon, 26 Jun 2017 16:19:58 +0200
Subject: [PATCH 01/17] [ADD] report_field_length
---
report_qweb_parameter/README.rst | 65 ++++++++++++++++++
report_qweb_parameter/__init__.py | 4 ++
report_qweb_parameter/__manifest__.py | 27 ++++++++
.../demo/test_report_field_length.xml | 25 +++++++
report_qweb_parameter/models/__init__.py | 4 ++
report_qweb_parameter/models/ir_qweb.py | 47 +++++++++++++
.../static/description/icon.png | Bin 0 -> 9455 bytes
report_qweb_parameter/tests/__init__.py | 4 ++
.../tests/test_report_qweb_parameter.py | 50 ++++++++++++++
9 files changed, 226 insertions(+)
create mode 100644 report_qweb_parameter/README.rst
create mode 100644 report_qweb_parameter/__init__.py
create mode 100644 report_qweb_parameter/__manifest__.py
create mode 100644 report_qweb_parameter/demo/test_report_field_length.xml
create mode 100644 report_qweb_parameter/models/__init__.py
create mode 100644 report_qweb_parameter/models/ir_qweb.py
create mode 100644 report_qweb_parameter/static/description/icon.png
create mode 100644 report_qweb_parameter/tests/__init__.py
create mode 100644 report_qweb_parameter/tests/test_report_qweb_parameter.py
diff --git a/report_qweb_parameter/README.rst b/report_qweb_parameter/README.rst
new file mode 100644
index 0000000000..261adc786f
--- /dev/null
+++ b/report_qweb_parameter/README.rst
@@ -0,0 +1,65 @@
+.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :alt: License: AGPL-3
+
+=====================
+Report QWeb Parameter
+=====================
+
+This module allows you to add new parameters on QWeb reports.
+Currently, we have defined a field maximum on a report and a validation of
+maximal and minimal size.
+It is useful on xml reports in order to validate length.
+XML are sometimes XSD dependant and we must validate its format.
+For example, in spanish facturae (http://www.facturae.gob.es/Paginas/Index.aspx), where
+length and format must be validated in several fields in order to send an invoice.
+
+
+Usage
+=====
+
+#. Add a t-length attribute on report templates fields that will truncate the field
+#. Add a t-minlength attribute on report template fields that will check the min length
+#. Add a t-maxlength attribute on report template fields that will check the max length
+
+.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
+ :alt: Try me on Runbot
+ :target: https://runbot.odoo-community.org/runbot/143/10.0
+
+
+Bug Tracker
+===========
+
+Bugs are tracked on `GitHub Issues
+`_. In case of trouble, please
+check there if your issue has already been reported. If you spotted it first,
+help us smashing it by providing a detailed and welcomed feedback.
+
+Credits
+=======
+
+Images
+------
+
+* Odoo Community Association: `Icon `_.
+
+Contributors
+------------
+
+* Enric Tobella
+
+
+Maintainer
+----------
+
+.. image:: https://odoo-community.org/logo.png
+ :alt: Odoo Community Association
+ :target: https://odoo-community.org
+
+This module is maintained by the OCA.
+
+OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
+To contribute to this module, please visit https://odoo-community.org.
diff --git a/report_qweb_parameter/__init__.py b/report_qweb_parameter/__init__.py
new file mode 100644
index 0000000000..ec50cfc0f3
--- /dev/null
+++ b/report_qweb_parameter/__init__.py
@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from . import models
diff --git a/report_qweb_parameter/__manifest__.py b/report_qweb_parameter/__manifest__.py
new file mode 100644
index 0000000000..99741eb7fb
--- /dev/null
+++ b/report_qweb_parameter/__manifest__.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+# Copyright 2017 Creu Blanca
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+# noinspection PyStatementEffect
+{
+ "name": "Report QWeb Parameter",
+ "version": "10.0.1.0.1",
+ "license": "AGPL-3",
+ "summary": """
+ Add new parameters for qweb templates in order to reduce field length
+ and check minimal length
+ """,
+ "author": "Creu Blanca,"
+ "Odoo Community Association (OCA)",
+ "website": "https://github.com/oca/reporting-engine",
+ "category": "Technical Settings",
+ "depends": [
+ "report",
+ ],
+ "data": [
+ ],
+ "demo": [
+ "demo/test_report_field_length.xml"
+ ],
+ "installable": True,
+}
diff --git a/report_qweb_parameter/demo/test_report_field_length.xml b/report_qweb_parameter/demo/test_report_field_length.xml
new file mode 100644
index 0000000000..2b3d92f3de
--- /dev/null
+++ b/report_qweb_parameter/demo/test_report_field_length.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/report_qweb_parameter/models/__init__.py b/report_qweb_parameter/models/__init__.py
new file mode 100644
index 0000000000..6b04fd254d
--- /dev/null
+++ b/report_qweb_parameter/models/__init__.py
@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from . import ir_qweb
diff --git a/report_qweb_parameter/models/ir_qweb.py b/report_qweb_parameter/models/ir_qweb.py
new file mode 100644
index 0000000000..7042198cba
--- /dev/null
+++ b/report_qweb_parameter/models/ir_qweb.py
@@ -0,0 +1,47 @@
+# -*- coding: utf-8 -*-
+# Copyright 2017 Creu Blanca
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from odoo import models, _
+from odoo.exceptions import ValidationError
+
+
+class IrQWeb(models.AbstractModel):
+ _inherit = 'ir.qweb'
+
+ @staticmethod
+ def check_length(value, min_length=False, max_length=False):
+ if min_length and len(value) < min_length:
+ raise ValidationError(
+ _('Length cannot be less than %s') % str(min_length))
+ if max_length and len(value) > max_length:
+ raise ValidationError(
+ _('Length cannot be more than %s') % str(max_length))
+ return value
+
+ def _compile_directive_esc(self, el, options):
+ min_value = el.attrib.pop('t-minlength', False)
+ max_value = el.attrib.pop('t-maxlength', False)
+ if min_value or max_value:
+ el.attrib['t-esc'] = 'docs.env["ir.qweb"].check_length(' + \
+ el.attrib['t-esc'] + ', ' + \
+ (min_value or 'False') + ', ' + \
+ (max_value or 'False') + ')'
+ if 't-length' in el.attrib:
+ length = el.attrib.pop('t-length')
+ el.attrib['t-esc'] = '(' + el.attrib[
+ 't-esc'] + ')[:' + length + ']'
+ return super(IrQWeb, self)._compile_directive_esc(el, options)
+
+ def _compile_directive_raw(self, el, options):
+ min_value = el.attrib.pop('t-minlength', False)
+ max_value = el.attrib.pop('t-maxlength', False)
+ if min_value or max_value:
+ el.attrib['t-raw'] = 'docs.env["ir.qweb"].check_length(' + \
+ el.attrib['t-raw'] + ', ' + \
+ (min_value or 'False') + ', ' + \
+ (max_value or 'False') + ')'
+ if 't-length' in el.attrib:
+ length = el.attrib.pop('t-length')
+ el.attrib['t-raw'] = el.attrib['t-raw'] + '[:' + length + ']'
+ return super(IrQWeb, self)._compile_directive_raw(el, options)
diff --git a/report_qweb_parameter/static/description/icon.png b/report_qweb_parameter/static/description/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d
GIT binary patch
literal 9455
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
z
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
Xviia!U7SGha1wx#SCgwmn*{w2TRX*I
literal 0
HcmV?d00001
diff --git a/report_qweb_parameter/tests/__init__.py b/report_qweb_parameter/tests/__init__.py
new file mode 100644
index 0000000000..e4695dbf57
--- /dev/null
+++ b/report_qweb_parameter/tests/__init__.py
@@ -0,0 +1,4 @@
+# -*- coding: utf-8 -*-
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+from . import test_report_qweb_parameter
diff --git a/report_qweb_parameter/tests/test_report_qweb_parameter.py b/report_qweb_parameter/tests/test_report_qweb_parameter.py
new file mode 100644
index 0000000000..70251161e5
--- /dev/null
+++ b/report_qweb_parameter/tests/test_report_qweb_parameter.py
@@ -0,0 +1,50 @@
+# -*- coding: utf-8 -*-
+# Copyright 2017 Creu Blanca
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+
+import xml.etree.ElementTree as ET
+
+from odoo.addons.base.ir.ir_qweb import QWebException
+from odoo.tests import common
+
+
+class TestReportQWebParameter(common.TransactionCase):
+ def test_qweb_parameter(self):
+ report_object = self.env['ir.actions.report.xml']
+ report_name = 'report_qweb_parameter.test_report_length'
+ docs = self.env['res.company'].search([], limit=1)
+ vat = docs.vat
+ website = docs.website
+ fax = docs.fax
+ company_registry = docs.company_registry
+ docs.update({
+ 'fax': '12345678901',
+ 'vat': '12345678901',
+ 'website': '1234567890',
+ 'company_registry': '1234567890'
+ })
+ rep = report_object.render_report(docs.ids, report_name, False)
+ root = ET.fromstring(
+ rep[0]
+ )
+ self.assertEqual(root[1][0][0][0].text, "1234567890")
+ self.assertEqual(root[1][0][0][2].text, "1234567890")
+ docs.update({'fax': '123456789'})
+ with self.assertRaises(QWebException):
+ report_object.render_report(docs.ids, report_name, False)
+ docs.update({'fax': '1234567890', 'vat': '123456789'})
+ with self.assertRaises(QWebException):
+ report_object.render_report(docs.ids, report_name, False)
+ docs.update({'vat': '1234567890', 'website': '12345678901'})
+ with self.assertRaises(QWebException):
+ report_object.render_report(docs.ids, report_name, False)
+ docs.update(
+ {'website': '1234567890', 'company_registry': '12345678901'})
+ with self.assertRaises(QWebException):
+ report_object.render_report(docs.ids, report_name, False)
+ docs.update({
+ 'fax': fax,
+ 'vat': vat,
+ 'website': website,
+ 'company_registry': company_registry
+ })
From 1c355ee564a759c386c6da2db07eee7f7c7ffbf5 Mon Sep 17 00:00:00 2001
From: Enric Tobella
Date: Fri, 6 Oct 2017 12:35:06 +0200
Subject: [PATCH 02/17] [MIG] report_qweb_parameter: Migration to 11.0
---
report_qweb_parameter/README.rst | 4 +-
report_qweb_parameter/__init__.py | 2 +-
report_qweb_parameter/__manifest__.py | 9 ++--
.../demo/test_report_field_length.xml | 8 ++--
report_qweb_parameter/i18n/fr.po | 41 +++++++++++++++++++
.../i18n/report_qweb_parameter.pot | 37 +++++++++++++++++
report_qweb_parameter/models/__init__.py | 2 +-
report_qweb_parameter/models/ir_qweb.py | 2 +-
report_qweb_parameter/tests/__init__.py | 2 +-
.../tests/test_report_qweb_parameter.py | 34 +++++++--------
10 files changed, 108 insertions(+), 33 deletions(-)
create mode 100644 report_qweb_parameter/i18n/fr.po
create mode 100644 report_qweb_parameter/i18n/report_qweb_parameter.pot
diff --git a/report_qweb_parameter/README.rst b/report_qweb_parameter/README.rst
index 261adc786f..e365943353 100644
--- a/report_qweb_parameter/README.rst
+++ b/report_qweb_parameter/README.rst
@@ -1,5 +1,5 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
- :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
=====================
@@ -24,7 +24,7 @@ Usage
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
- :target: https://runbot.odoo-community.org/runbot/143/10.0
+ :target: https://runbot.odoo-community.org/runbot/143/11.0
Bug Tracker
diff --git a/report_qweb_parameter/__init__.py b/report_qweb_parameter/__init__.py
index ec50cfc0f3..b44d765940 100644
--- a/report_qweb_parameter/__init__.py
+++ b/report_qweb_parameter/__init__.py
@@ -1,4 +1,4 @@
# -*- coding: utf-8 -*-
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import models
diff --git a/report_qweb_parameter/__manifest__.py b/report_qweb_parameter/__manifest__.py
index 99741eb7fb..1d8d7060ab 100644
--- a/report_qweb_parameter/__manifest__.py
+++ b/report_qweb_parameter/__manifest__.py
@@ -1,11 +1,10 @@
# -*- coding: utf-8 -*-
# Copyright 2017 Creu Blanca
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
-# noinspection PyStatementEffect
{
"name": "Report QWeb Parameter",
- "version": "10.0.1.0.1",
+ "version": "11.0.1.0.0",
"license": "AGPL-3",
"summary": """
Add new parameters for qweb templates in order to reduce field length
@@ -16,9 +15,7 @@
"website": "https://github.com/oca/reporting-engine",
"category": "Technical Settings",
"depends": [
- "report",
- ],
- "data": [
+ "web",
],
"demo": [
"demo/test_report_field_length.xml"
diff --git a/report_qweb_parameter/demo/test_report_field_length.xml b/report_qweb_parameter/demo/test_report_field_length.xml
index 2b3d92f3de..2b12743173 100644
--- a/report_qweb_parameter/demo/test_report_field_length.xml
+++ b/report_qweb_parameter/demo/test_report_field_length.xml
@@ -5,14 +5,14 @@
id="test_report_length_report_id"
model="res.company"
string="Length Report"
- report_type="qweb-pdf"
+ report_type="qweb-html"
name="report_qweb_parameter.test_report_length"
/>
-
+
+ t-esc="docs[0].street" t-if="docs[0].street"/>
-
+
diff --git a/report_qweb_parameter/i18n/fr.po b/report_qweb_parameter/i18n/fr.po
new file mode 100644
index 0000000000..6c5c6bcfc5
--- /dev/null
+++ b/report_qweb_parameter/i18n/fr.po
@@ -0,0 +1,41 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * report_qweb_parameter
+#
+# Translators:
+# Nicolas JEUDY , 2018
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 11.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2018-01-05 17:53+0000\n"
+"PO-Revision-Date: 2018-01-05 17:53+0000\n"
+"Last-Translator: Nicolas JEUDY , 2018\n"
+"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. module: report_qweb_parameter
+#: model:ir.actions.report,name:report_qweb_parameter.test_report_length_report_id
+msgid "Length Report"
+msgstr "Longueur du rapport "
+
+#. module: report_qweb_parameter
+#: code:addons/report_qweb_parameter/models/ir_qweb.py:16
+#, python-format
+msgid "Length cannot be less than %s"
+msgstr "La longueur du rapport ne peut pas être inférieure à %s"
+
+#. module: report_qweb_parameter
+#: code:addons/report_qweb_parameter/models/ir_qweb.py:19
+#, python-format
+msgid "Length cannot be more than %s"
+msgstr "La longueur du rapport ne peut pas être supérieure à %s"
+
+#. module: report_qweb_parameter
+#: model:ir.model,name:report_qweb_parameter.model_ir_qweb
+msgid "ir.qweb"
+msgstr "ir.qweb"
diff --git a/report_qweb_parameter/i18n/report_qweb_parameter.pot b/report_qweb_parameter/i18n/report_qweb_parameter.pot
new file mode 100644
index 0000000000..01f6a6b0c7
--- /dev/null
+++ b/report_qweb_parameter/i18n/report_qweb_parameter.pot
@@ -0,0 +1,37 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * report_qweb_parameter
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 11.0\n"
+"Report-Msgid-Bugs-To: \n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: report_qweb_parameter
+#: model:ir.actions.report,name:report_qweb_parameter.test_report_length_report_id
+msgid "Length Report"
+msgstr ""
+
+#. module: report_qweb_parameter
+#: code:addons/report_qweb_parameter/models/ir_qweb.py:16
+#, python-format
+msgid "Length cannot be less than %s"
+msgstr ""
+
+#. module: report_qweb_parameter
+#: code:addons/report_qweb_parameter/models/ir_qweb.py:19
+#, python-format
+msgid "Length cannot be more than %s"
+msgstr ""
+
+#. module: report_qweb_parameter
+#: model:ir.model,name:report_qweb_parameter.model_ir_qweb
+msgid "ir.qweb"
+msgstr ""
+
diff --git a/report_qweb_parameter/models/__init__.py b/report_qweb_parameter/models/__init__.py
index 6b04fd254d..dd58c12a55 100644
--- a/report_qweb_parameter/models/__init__.py
+++ b/report_qweb_parameter/models/__init__.py
@@ -1,4 +1,4 @@
# -*- coding: utf-8 -*-
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import ir_qweb
diff --git a/report_qweb_parameter/models/ir_qweb.py b/report_qweb_parameter/models/ir_qweb.py
index 7042198cba..67e80044ec 100644
--- a/report_qweb_parameter/models/ir_qweb.py
+++ b/report_qweb_parameter/models/ir_qweb.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Copyright 2017 Creu Blanca
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import models, _
from odoo.exceptions import ValidationError
diff --git a/report_qweb_parameter/tests/__init__.py b/report_qweb_parameter/tests/__init__.py
index e4695dbf57..e6422248c7 100644
--- a/report_qweb_parameter/tests/__init__.py
+++ b/report_qweb_parameter/tests/__init__.py
@@ -1,4 +1,4 @@
# -*- coding: utf-8 -*-
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import test_report_qweb_parameter
diff --git a/report_qweb_parameter/tests/test_report_qweb_parameter.py b/report_qweb_parameter/tests/test_report_qweb_parameter.py
index 70251161e5..510770ab3d 100644
--- a/report_qweb_parameter/tests/test_report_qweb_parameter.py
+++ b/report_qweb_parameter/tests/test_report_qweb_parameter.py
@@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Copyright 2017 Creu Blanca
-# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
import xml.etree.ElementTree as ET
@@ -10,40 +10,40 @@
class TestReportQWebParameter(common.TransactionCase):
def test_qweb_parameter(self):
- report_object = self.env['ir.actions.report.xml']
report_name = 'report_qweb_parameter.test_report_length'
+ report_obj = self.env['ir.actions.report']
+ report_object = report_obj._get_report_from_name(report_name)
+
docs = self.env['res.company'].search([], limit=1)
vat = docs.vat
website = docs.website
- fax = docs.fax
+ street = docs.street
company_registry = docs.company_registry
docs.update({
- 'fax': '12345678901',
+ 'street': '12345678901',
'vat': '12345678901',
'website': '1234567890',
'company_registry': '1234567890'
})
- rep = report_object.render_report(docs.ids, report_name, False)
- root = ET.fromstring(
- rep[0]
- )
- self.assertEqual(root[1][0][0][0].text, "1234567890")
- self.assertEqual(root[1][0][0][2].text, "1234567890")
- docs.update({'fax': '123456789'})
+ rep = report_object.render(docs.ids, False)
+ root = ET.fromstring(rep[0])
+ self.assertEqual(root[0].text, "1234567890")
+ self.assertEqual(root[2].text, "1234567890")
+ docs.update({'street': '123456789'})
with self.assertRaises(QWebException):
- report_object.render_report(docs.ids, report_name, False)
- docs.update({'fax': '1234567890', 'vat': '123456789'})
+ report_object.render(docs.ids, False)
+ docs.update({'street': '1234567890', 'vat': '123456789'})
with self.assertRaises(QWebException):
- report_object.render_report(docs.ids, report_name, False)
+ report_object.render(docs.ids, False)
docs.update({'vat': '1234567890', 'website': '12345678901'})
with self.assertRaises(QWebException):
- report_object.render_report(docs.ids, report_name, False)
+ report_object.render(docs.ids, False)
docs.update(
{'website': '1234567890', 'company_registry': '12345678901'})
with self.assertRaises(QWebException):
- report_object.render_report(docs.ids, report_name, False)
+ report_object.render(docs.ids, False)
docs.update({
- 'fax': fax,
+ 'street': street,
'vat': vat,
'website': website,
'company_registry': company_registry
From 3e20933a85662a276ce384230bbf435c6776bbba Mon Sep 17 00:00:00 2001
From: Efren
Date: Fri, 21 Jun 2019 11:19:27 +0100
Subject: [PATCH 03/17] [MIG] report_qweb_parameter: Migration to 12.0
---
report_qweb_parameter/__manifest__.py | 2 +-
report_qweb_parameter/i18n/fr.po | 7 +++-
report_qweb_parameter/i18n/pt.po | 39 +++++++++++++++++++
.../i18n/report_qweb_parameter.pot | 4 +-
.../tests/test_report_qweb_parameter.py | 2 +-
5 files changed, 48 insertions(+), 6 deletions(-)
create mode 100644 report_qweb_parameter/i18n/pt.po
diff --git a/report_qweb_parameter/__manifest__.py b/report_qweb_parameter/__manifest__.py
index 1d8d7060ab..28904594aa 100644
--- a/report_qweb_parameter/__manifest__.py
+++ b/report_qweb_parameter/__manifest__.py
@@ -4,7 +4,7 @@
{
"name": "Report QWeb Parameter",
- "version": "11.0.1.0.0",
+ "version": "12.0.1.0.0",
"license": "AGPL-3",
"summary": """
Add new parameters for qweb templates in order to reduce field length
diff --git a/report_qweb_parameter/i18n/fr.po b/report_qweb_parameter/i18n/fr.po
index 6c5c6bcfc5..45bad87577 100644
--- a/report_qweb_parameter/i18n/fr.po
+++ b/report_qweb_parameter/i18n/fr.po
@@ -37,5 +37,8 @@ msgstr "La longueur du rapport ne peut pas être supérieure à %s"
#. module: report_qweb_parameter
#: model:ir.model,name:report_qweb_parameter.model_ir_qweb
-msgid "ir.qweb"
-msgstr "ir.qweb"
+msgid "Qweb"
+msgstr ""
+
+#~ msgid "ir.qweb"
+#~ msgstr "ir.qweb"
diff --git a/report_qweb_parameter/i18n/pt.po b/report_qweb_parameter/i18n/pt.po
new file mode 100644
index 0000000000..b7e6a113e9
--- /dev/null
+++ b/report_qweb_parameter/i18n/pt.po
@@ -0,0 +1,39 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * report_qweb_parameter
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 12.0\n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: 2019-08-14 13:44+0000\n"
+"Last-Translator: Pedro Castro Silva \n"
+"Language-Team: none\n"
+"Language: pt\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
+"X-Generator: Weblate 3.7.1\n"
+
+#. module: report_qweb_parameter
+#: model:ir.actions.report,name:report_qweb_parameter.test_report_length_report_id
+msgid "Length Report"
+msgstr "Relatório de Comprimento"
+
+#. module: report_qweb_parameter
+#: code:addons/report_qweb_parameter/models/ir_qweb.py:16
+#, python-format
+msgid "Length cannot be less than %s"
+msgstr "Comprimento não pode ser superior a %s"
+
+#. module: report_qweb_parameter
+#: code:addons/report_qweb_parameter/models/ir_qweb.py:19
+#, python-format
+msgid "Length cannot be more than %s"
+msgstr "Comprimento não pode ser inferior a %s"
+
+#. module: report_qweb_parameter
+#: model:ir.model,name:report_qweb_parameter.model_ir_qweb
+msgid "Qweb"
+msgstr ""
diff --git a/report_qweb_parameter/i18n/report_qweb_parameter.pot b/report_qweb_parameter/i18n/report_qweb_parameter.pot
index 01f6a6b0c7..e886e30cb2 100644
--- a/report_qweb_parameter/i18n/report_qweb_parameter.pot
+++ b/report_qweb_parameter/i18n/report_qweb_parameter.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 11.0\n"
+"Project-Id-Version: Odoo Server 12.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: <>\n"
"Language-Team: \n"
@@ -32,6 +32,6 @@ msgstr ""
#. module: report_qweb_parameter
#: model:ir.model,name:report_qweb_parameter.model_ir_qweb
-msgid "ir.qweb"
+msgid "Qweb"
msgstr ""
diff --git a/report_qweb_parameter/tests/test_report_qweb_parameter.py b/report_qweb_parameter/tests/test_report_qweb_parameter.py
index 510770ab3d..df61faceb5 100644
--- a/report_qweb_parameter/tests/test_report_qweb_parameter.py
+++ b/report_qweb_parameter/tests/test_report_qweb_parameter.py
@@ -4,7 +4,7 @@
import xml.etree.ElementTree as ET
-from odoo.addons.base.ir.ir_qweb import QWebException
+from odoo.addons.base.models.qweb import QWebException
from odoo.tests import common
From d6d7eb610daa5723b7b2491d0e376a930cc1a14e Mon Sep 17 00:00:00 2001
From: "Pedro M. Baeza"
Date: Mon, 13 Apr 2020 19:02:39 +0200
Subject: [PATCH 04/17] [IMP] report_qweb_parameter: Avoid error on integration
tests
If reusing existing records, there's the risk of conflicting tests, like modifying
the VAT for the existing company and that company having a country with VAT check.
We avoid it creating a new company instead.
---
.../tests/test_report_qweb_parameter.py | 17 +++--------------
1 file changed, 3 insertions(+), 14 deletions(-)
diff --git a/report_qweb_parameter/tests/test_report_qweb_parameter.py b/report_qweb_parameter/tests/test_report_qweb_parameter.py
index df61faceb5..77e2b7548f 100644
--- a/report_qweb_parameter/tests/test_report_qweb_parameter.py
+++ b/report_qweb_parameter/tests/test_report_qweb_parameter.py
@@ -13,18 +13,13 @@ def test_qweb_parameter(self):
report_name = 'report_qweb_parameter.test_report_length'
report_obj = self.env['ir.actions.report']
report_object = report_obj._get_report_from_name(report_name)
-
- docs = self.env['res.company'].search([], limit=1)
- vat = docs.vat
- website = docs.website
- street = docs.street
- company_registry = docs.company_registry
- docs.update({
+ docs = self.env['res.company'].create({
+ 'name': 'Test company',
'street': '12345678901',
'vat': '12345678901',
- 'website': '1234567890',
'company_registry': '1234567890'
})
+ docs.website = '1234567890' # for avoding that Odoo adds http://
rep = report_object.render(docs.ids, False)
root = ET.fromstring(rep[0])
self.assertEqual(root[0].text, "1234567890")
@@ -42,9 +37,3 @@ def test_qweb_parameter(self):
{'website': '1234567890', 'company_registry': '12345678901'})
with self.assertRaises(QWebException):
report_object.render(docs.ids, False)
- docs.update({
- 'street': street,
- 'vat': vat,
- 'website': website,
- 'company_registry': company_registry
- })
From fede15360a30d42bbdb951a1344a70ff98b9f350 Mon Sep 17 00:00:00 2001
From: Carlos Roca
Date: Wed, 28 Oct 2020 09:24:25 +0100
Subject: [PATCH 05/17] [IMP] report_qweb_parameter: black, isort, prettier
---
report_qweb_parameter/__init__.py | 1 -
report_qweb_parameter/__manifest__.py | 12 +---
.../demo/test_report_field_length.xml | 47 ++++++++++-----
report_qweb_parameter/models/__init__.py | 1 -
report_qweb_parameter/models/ir_qweb.py | 58 ++++++++++---------
report_qweb_parameter/tests/__init__.py | 1 -
.../tests/test_report_qweb_parameter.py | 33 ++++++-----
7 files changed, 83 insertions(+), 70 deletions(-)
diff --git a/report_qweb_parameter/__init__.py b/report_qweb_parameter/__init__.py
index b44d765940..31660d6a96 100644
--- a/report_qweb_parameter/__init__.py
+++ b/report_qweb_parameter/__init__.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import models
diff --git a/report_qweb_parameter/__manifest__.py b/report_qweb_parameter/__manifest__.py
index 28904594aa..ec86cd9246 100644
--- a/report_qweb_parameter/__manifest__.py
+++ b/report_qweb_parameter/__manifest__.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
# Copyright 2017 Creu Blanca
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
@@ -10,15 +9,10 @@
Add new parameters for qweb templates in order to reduce field length
and check minimal length
""",
- "author": "Creu Blanca,"
- "Odoo Community Association (OCA)",
+ "author": "Creu Blanca," "Odoo Community Association (OCA)",
"website": "https://github.com/oca/reporting-engine",
"category": "Technical Settings",
- "depends": [
- "web",
- ],
- "demo": [
- "demo/test_report_field_length.xml"
- ],
+ "depends": ["web"],
+ "demo": ["demo/test_report_field_length.xml"],
"installable": True,
}
diff --git a/report_qweb_parameter/demo/test_report_field_length.xml b/report_qweb_parameter/demo/test_report_field_length.xml
index 2b12743173..f529361629 100644
--- a/report_qweb_parameter/demo/test_report_field_length.xml
+++ b/report_qweb_parameter/demo/test_report_field_length.xml
@@ -1,25 +1,40 @@
-
+
-
-
-
-
-
-
+
+
+
+ t-if="docs[0].company_registry"
+ />
diff --git a/report_qweb_parameter/models/__init__.py b/report_qweb_parameter/models/__init__.py
index dd58c12a55..3abf9999a5 100644
--- a/report_qweb_parameter/models/__init__.py
+++ b/report_qweb_parameter/models/__init__.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import ir_qweb
diff --git a/report_qweb_parameter/models/ir_qweb.py b/report_qweb_parameter/models/ir_qweb.py
index 67e80044ec..5d110acfb0 100644
--- a/report_qweb_parameter/models/ir_qweb.py
+++ b/report_qweb_parameter/models/ir_qweb.py
@@ -1,47 +1,53 @@
-# -*- coding: utf-8 -*-
# Copyright 2017 Creu Blanca
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
-from odoo import models, _
+from odoo import _, models
from odoo.exceptions import ValidationError
class IrQWeb(models.AbstractModel):
- _inherit = 'ir.qweb'
+ _inherit = "ir.qweb"
@staticmethod
def check_length(value, min_length=False, max_length=False):
if min_length and len(value) < min_length:
- raise ValidationError(
- _('Length cannot be less than %s') % str(min_length))
+ raise ValidationError(_("Length cannot be less than %s") % str(min_length))
if max_length and len(value) > max_length:
- raise ValidationError(
- _('Length cannot be more than %s') % str(max_length))
+ raise ValidationError(_("Length cannot be more than %s") % str(max_length))
return value
def _compile_directive_esc(self, el, options):
- min_value = el.attrib.pop('t-minlength', False)
- max_value = el.attrib.pop('t-maxlength', False)
+ min_value = el.attrib.pop("t-minlength", False)
+ max_value = el.attrib.pop("t-maxlength", False)
if min_value or max_value:
- el.attrib['t-esc'] = 'docs.env["ir.qweb"].check_length(' + \
- el.attrib['t-esc'] + ', ' + \
- (min_value or 'False') + ', ' + \
- (max_value or 'False') + ')'
- if 't-length' in el.attrib:
- length = el.attrib.pop('t-length')
- el.attrib['t-esc'] = '(' + el.attrib[
- 't-esc'] + ')[:' + length + ']'
+ el.attrib["t-esc"] = (
+ 'docs.env["ir.qweb"].check_length('
+ + el.attrib["t-esc"]
+ + ", "
+ + (min_value or "False")
+ + ", "
+ + (max_value or "False")
+ + ")"
+ )
+ if "t-length" in el.attrib:
+ length = el.attrib.pop("t-length")
+ el.attrib["t-esc"] = "(" + el.attrib["t-esc"] + ")[:" + length + "]"
return super(IrQWeb, self)._compile_directive_esc(el, options)
def _compile_directive_raw(self, el, options):
- min_value = el.attrib.pop('t-minlength', False)
- max_value = el.attrib.pop('t-maxlength', False)
+ min_value = el.attrib.pop("t-minlength", False)
+ max_value = el.attrib.pop("t-maxlength", False)
if min_value or max_value:
- el.attrib['t-raw'] = 'docs.env["ir.qweb"].check_length(' + \
- el.attrib['t-raw'] + ', ' + \
- (min_value or 'False') + ', ' + \
- (max_value or 'False') + ')'
- if 't-length' in el.attrib:
- length = el.attrib.pop('t-length')
- el.attrib['t-raw'] = el.attrib['t-raw'] + '[:' + length + ']'
+ el.attrib["t-raw"] = (
+ 'docs.env["ir.qweb"].check_length('
+ + el.attrib["t-raw"]
+ + ", "
+ + (min_value or "False")
+ + ", "
+ + (max_value or "False")
+ + ")"
+ )
+ if "t-length" in el.attrib:
+ length = el.attrib.pop("t-length")
+ el.attrib["t-raw"] = el.attrib["t-raw"] + "[:" + length + "]"
return super(IrQWeb, self)._compile_directive_raw(el, options)
diff --git a/report_qweb_parameter/tests/__init__.py b/report_qweb_parameter/tests/__init__.py
index e6422248c7..62db47d0f9 100644
--- a/report_qweb_parameter/tests/__init__.py
+++ b/report_qweb_parameter/tests/__init__.py
@@ -1,4 +1,3 @@
-# -*- coding: utf-8 -*-
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import test_report_qweb_parameter
diff --git a/report_qweb_parameter/tests/test_report_qweb_parameter.py b/report_qweb_parameter/tests/test_report_qweb_parameter.py
index 77e2b7548f..82ae745855 100644
--- a/report_qweb_parameter/tests/test_report_qweb_parameter.py
+++ b/report_qweb_parameter/tests/test_report_qweb_parameter.py
@@ -1,39 +1,40 @@
-# -*- coding: utf-8 -*-
# Copyright 2017 Creu Blanca
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
import xml.etree.ElementTree as ET
-from odoo.addons.base.models.qweb import QWebException
from odoo.tests import common
+from odoo.addons.base.models.qweb import QWebException
+
class TestReportQWebParameter(common.TransactionCase):
def test_qweb_parameter(self):
- report_name = 'report_qweb_parameter.test_report_length'
- report_obj = self.env['ir.actions.report']
+ report_name = "report_qweb_parameter.test_report_length"
+ report_obj = self.env["ir.actions.report"]
report_object = report_obj._get_report_from_name(report_name)
- docs = self.env['res.company'].create({
- 'name': 'Test company',
- 'street': '12345678901',
- 'vat': '12345678901',
- 'company_registry': '1234567890'
- })
- docs.website = '1234567890' # for avoding that Odoo adds http://
+ docs = self.env["res.company"].create(
+ {
+ "name": "Test company",
+ "street": "12345678901",
+ "vat": "12345678901",
+ "company_registry": "1234567890",
+ }
+ )
+ docs.website = "1234567890" # for avoding that Odoo adds http://
rep = report_object.render(docs.ids, False)
root = ET.fromstring(rep[0])
self.assertEqual(root[0].text, "1234567890")
self.assertEqual(root[2].text, "1234567890")
- docs.update({'street': '123456789'})
+ docs.update({"street": "123456789"})
with self.assertRaises(QWebException):
report_object.render(docs.ids, False)
- docs.update({'street': '1234567890', 'vat': '123456789'})
+ docs.update({"street": "1234567890", "vat": "123456789"})
with self.assertRaises(QWebException):
report_object.render(docs.ids, False)
- docs.update({'vat': '1234567890', 'website': '12345678901'})
+ docs.update({"vat": "1234567890", "website": "12345678901"})
with self.assertRaises(QWebException):
report_object.render(docs.ids, False)
- docs.update(
- {'website': '1234567890', 'company_registry': '12345678901'})
+ docs.update({"website": "1234567890", "company_registry": "12345678901"})
with self.assertRaises(QWebException):
report_object.render(docs.ids, False)
From 9e7c3e5d818b7455c3297e404245a269c25c177e Mon Sep 17 00:00:00 2001
From: Carlos Roca
Date: Wed, 28 Oct 2020 10:23:07 +0100
Subject: [PATCH 06/17] [MIG] report_qweb_parameter: Migration to v13
---
report_qweb_parameter/README.rst | 69 ++-
report_qweb_parameter/__manifest__.py | 4 +-
report_qweb_parameter/i18n/es.po | 40 ++
report_qweb_parameter/i18n/fr.po | 4 +-
report_qweb_parameter/i18n/it.po | 39 ++
report_qweb_parameter/i18n/pt.po | 6 +-
.../i18n/report_qweb_parameter.pot | 11 +-
report_qweb_parameter/models/ir_qweb.py | 12 +-
report_qweb_parameter/readme/CONTRIBUTORS.rst | 5 +
report_qweb_parameter/readme/DESCRIPTION.rst | 7 +
report_qweb_parameter/readme/USAGE.rst | 3 +
.../static/description/index.html | 442 ++++++++++++++++++
12 files changed, 601 insertions(+), 41 deletions(-)
create mode 100644 report_qweb_parameter/i18n/es.po
create mode 100644 report_qweb_parameter/i18n/it.po
create mode 100644 report_qweb_parameter/readme/CONTRIBUTORS.rst
create mode 100644 report_qweb_parameter/readme/DESCRIPTION.rst
create mode 100644 report_qweb_parameter/readme/USAGE.rst
create mode 100644 report_qweb_parameter/static/description/index.html
diff --git a/report_qweb_parameter/README.rst b/report_qweb_parameter/README.rst
index e365943353..47807da325 100644
--- a/report_qweb_parameter/README.rst
+++ b/report_qweb_parameter/README.rst
@@ -1,11 +1,30 @@
-.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
- :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html
- :alt: License: AGPL-3
-
=====================
Report QWeb Parameter
=====================
+.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! This file is generated by oca-gen-addon-readme !!
+ !! changes will be overwritten. !!
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
+ :target: https://odoo-community.org/page/development-status
+ :alt: Beta
+.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
+ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
+ :alt: License: AGPL-3
+.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github
+ :target: https://github.com/OCA/reporting-engine/tree/13.0/report_qweb_parameter
+ :alt: OCA/reporting-engine
+.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
+ :target: https://translation.odoo-community.org/projects/reporting-engine-13-0/reporting-engine-13-0-report_qweb_parameter
+ :alt: Translate me on Weblate
+.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
+ :target: https://runbot.odoo-community.org/runbot/143/13.0
+ :alt: Try me on Runbot
+
+|badge1| |badge2| |badge3| |badge4| |badge5|
+
This module allows you to add new parameters on QWeb reports.
Currently, we have defined a field maximum on a report and a validation of
maximal and minimal size.
@@ -14,6 +33,10 @@ XML are sometimes XSD dependant and we must validate its format.
For example, in spanish facturae (http://www.facturae.gob.es/Paginas/Index.aspx), where
length and format must be validated in several fields in order to send an invoice.
+**Table of contents**
+
+.. contents::
+ :local:
Usage
=====
@@ -22,44 +45,46 @@ Usage
#. Add a t-minlength attribute on report template fields that will check the min length
#. Add a t-maxlength attribute on report template fields that will check the max length
-.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
- :alt: Try me on Runbot
- :target: https://runbot.odoo-community.org/runbot/143/11.0
-
-
Bug Tracker
===========
-Bugs are tracked on `GitHub Issues
-`_. In case of trouble, please
-check there if your issue has already been reported. If you spotted it first,
-help us smashing it by providing a detailed and welcomed feedback.
+Bugs are tracked on `GitHub Issues `_.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+`feedback `_.
+
+Do not contact contributors directly about support or help with technical issues.
Credits
=======
-Images
-------
+Authors
+~~~~~~~
-* Odoo Community Association: `Icon `_.
+* Creu Blanca
Contributors
-------------
+~~~~~~~~~~~~
* Enric Tobella
+* `Tecnativa `_:
-Maintainer
-----------
+ * Carlos Roca
+
+Maintainers
+~~~~~~~~~~~
+
+This module is maintained by the OCA.
.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org
-This module is maintained by the OCA.
-
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-To contribute to this module, please visit https://odoo-community.org.
+This module is part of the `OCA/reporting-engine `_ project on GitHub.
+
+You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/report_qweb_parameter/__manifest__.py b/report_qweb_parameter/__manifest__.py
index ec86cd9246..d8e5dc6c6e 100644
--- a/report_qweb_parameter/__manifest__.py
+++ b/report_qweb_parameter/__manifest__.py
@@ -3,13 +3,13 @@
{
"name": "Report QWeb Parameter",
- "version": "12.0.1.0.0",
+ "version": "13.0.1.0.0",
"license": "AGPL-3",
"summary": """
Add new parameters for qweb templates in order to reduce field length
and check minimal length
""",
- "author": "Creu Blanca," "Odoo Community Association (OCA)",
+ "author": "Creu Blanca, Odoo Community Association (OCA)",
"website": "https://github.com/oca/reporting-engine",
"category": "Technical Settings",
"depends": ["web"],
diff --git a/report_qweb_parameter/i18n/es.po b/report_qweb_parameter/i18n/es.po
new file mode 100644
index 0000000000..7cc1952b8f
--- /dev/null
+++ b/report_qweb_parameter/i18n/es.po
@@ -0,0 +1,40 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * report_qweb_parameter
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 12.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: \n"
+"Last-Translator: Carlos \n"
+"Language-Team: \n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 2.0.6\n"
+
+#. module: report_qweb_parameter
+#: model:ir.actions.report,name:report_qweb_parameter.test_report_length_report_id
+msgid "Length Report"
+msgstr "Longitud del informe"
+
+#. module: report_qweb_parameter
+#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
+#, python-format
+msgid "Length cannot be less than %s"
+msgstr "La longitud no puede ser menor a %s"
+
+#. module: report_qweb_parameter
+#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
+#, python-format
+msgid "Length cannot be more than %s"
+msgstr "La longitud no puede ser mayor a %s"
+
+#. module: report_qweb_parameter
+#: model:ir.model,name:report_qweb_parameter.model_ir_qweb
+msgid "Qweb"
+msgstr "Qweb"
diff --git a/report_qweb_parameter/i18n/fr.po b/report_qweb_parameter/i18n/fr.po
index 45bad87577..5cc9108307 100644
--- a/report_qweb_parameter/i18n/fr.po
+++ b/report_qweb_parameter/i18n/fr.po
@@ -24,13 +24,13 @@ msgid "Length Report"
msgstr "Longueur du rapport "
#. module: report_qweb_parameter
-#: code:addons/report_qweb_parameter/models/ir_qweb.py:16
+#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
#, python-format
msgid "Length cannot be less than %s"
msgstr "La longueur du rapport ne peut pas être inférieure à %s"
#. module: report_qweb_parameter
-#: code:addons/report_qweb_parameter/models/ir_qweb.py:19
+#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
#, python-format
msgid "Length cannot be more than %s"
msgstr "La longueur du rapport ne peut pas être supérieure à %s"
diff --git a/report_qweb_parameter/i18n/it.po b/report_qweb_parameter/i18n/it.po
new file mode 100644
index 0000000000..868bc8c17f
--- /dev/null
+++ b/report_qweb_parameter/i18n/it.po
@@ -0,0 +1,39 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * report_qweb_parameter
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 13.0\n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: 2020-11-20 23:36+0000\n"
+"Last-Translator: Alessandro Fiorino \n"
+"Language-Team: none\n"
+"Language: it\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 3.10\n"
+
+#. module: report_qweb_parameter
+#: model:ir.actions.report,name:report_qweb_parameter.test_report_length_report_id
+msgid "Length Report"
+msgstr "Lunghezza Report"
+
+#. module: report_qweb_parameter
+#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
+#, python-format
+msgid "Length cannot be less than %s"
+msgstr "La lunghezza non può essere meno di %s"
+
+#. module: report_qweb_parameter
+#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
+#, python-format
+msgid "Length cannot be more than %s"
+msgstr "La lunghezza non può essere più di %s"
+
+#. module: report_qweb_parameter
+#: model:ir.model,name:report_qweb_parameter.model_ir_qweb
+msgid "Qweb"
+msgstr "Qweb"
diff --git a/report_qweb_parameter/i18n/pt.po b/report_qweb_parameter/i18n/pt.po
index b7e6a113e9..0be7522a28 100644
--- a/report_qweb_parameter/i18n/pt.po
+++ b/report_qweb_parameter/i18n/pt.po
@@ -1,6 +1,6 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
-# * report_qweb_parameter
+# * report_qweb_parameter
#
msgid ""
msgstr ""
@@ -22,13 +22,13 @@ msgid "Length Report"
msgstr "Relatório de Comprimento"
#. module: report_qweb_parameter
-#: code:addons/report_qweb_parameter/models/ir_qweb.py:16
+#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
#, python-format
msgid "Length cannot be less than %s"
msgstr "Comprimento não pode ser superior a %s"
#. module: report_qweb_parameter
-#: code:addons/report_qweb_parameter/models/ir_qweb.py:19
+#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
#, python-format
msgid "Length cannot be more than %s"
msgstr "Comprimento não pode ser inferior a %s"
diff --git a/report_qweb_parameter/i18n/report_qweb_parameter.pot b/report_qweb_parameter/i18n/report_qweb_parameter.pot
index e886e30cb2..4df2be043a 100644
--- a/report_qweb_parameter/i18n/report_qweb_parameter.pot
+++ b/report_qweb_parameter/i18n/report_qweb_parameter.pot
@@ -1,12 +1,12 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
-# * report_qweb_parameter
+# * report_qweb_parameter
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: <>\n"
+"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -19,13 +19,13 @@ msgid "Length Report"
msgstr ""
#. module: report_qweb_parameter
-#: code:addons/report_qweb_parameter/models/ir_qweb.py:16
+#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
#, python-format
msgid "Length cannot be less than %s"
msgstr ""
#. module: report_qweb_parameter
-#: code:addons/report_qweb_parameter/models/ir_qweb.py:19
+#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
#, python-format
msgid "Length cannot be more than %s"
msgstr ""
@@ -34,4 +34,3 @@ msgstr ""
#: model:ir.model,name:report_qweb_parameter.model_ir_qweb
msgid "Qweb"
msgstr ""
-
diff --git a/report_qweb_parameter/models/ir_qweb.py b/report_qweb_parameter/models/ir_qweb.py
index 5d110acfb0..51e9dfc368 100644
--- a/report_qweb_parameter/models/ir_qweb.py
+++ b/report_qweb_parameter/models/ir_qweb.py
@@ -30,9 +30,9 @@ def _compile_directive_esc(self, el, options):
+ ")"
)
if "t-length" in el.attrib:
- length = el.attrib.pop("t-length")
- el.attrib["t-esc"] = "(" + el.attrib["t-esc"] + ")[:" + length + "]"
- return super(IrQWeb, self)._compile_directive_esc(el, options)
+ tlength = el.attrib.pop("t-length")
+ el.attrib["t-esc"] = "(" + el.attrib["t-esc"] + ")[:" + tlength + "]"
+ return super()._compile_directive_esc(el, options)
def _compile_directive_raw(self, el, options):
min_value = el.attrib.pop("t-minlength", False)
@@ -48,6 +48,6 @@ def _compile_directive_raw(self, el, options):
+ ")"
)
if "t-length" in el.attrib:
- length = el.attrib.pop("t-length")
- el.attrib["t-raw"] = el.attrib["t-raw"] + "[:" + length + "]"
- return super(IrQWeb, self)._compile_directive_raw(el, options)
+ tlength = el.attrib.pop("t-length")
+ el.attrib["t-raw"] = el.attrib["t-raw"] + "[:" + tlength + "]"
+ return super()._compile_directive_raw(el, options)
diff --git a/report_qweb_parameter/readme/CONTRIBUTORS.rst b/report_qweb_parameter/readme/CONTRIBUTORS.rst
new file mode 100644
index 0000000000..f2b5eb2e7f
--- /dev/null
+++ b/report_qweb_parameter/readme/CONTRIBUTORS.rst
@@ -0,0 +1,5 @@
+* Enric Tobella
+
+* `Tecnativa `_:
+
+ * Carlos Roca
diff --git a/report_qweb_parameter/readme/DESCRIPTION.rst b/report_qweb_parameter/readme/DESCRIPTION.rst
new file mode 100644
index 0000000000..a738afa66a
--- /dev/null
+++ b/report_qweb_parameter/readme/DESCRIPTION.rst
@@ -0,0 +1,7 @@
+This module allows you to add new parameters on QWeb reports.
+Currently, we have defined a field maximum on a report and a validation of
+maximal and minimal size.
+It is useful on xml reports in order to validate length.
+XML are sometimes XSD dependant and we must validate its format.
+For example, in spanish facturae (http://www.facturae.gob.es/Paginas/Index.aspx), where
+length and format must be validated in several fields in order to send an invoice.
diff --git a/report_qweb_parameter/readme/USAGE.rst b/report_qweb_parameter/readme/USAGE.rst
new file mode 100644
index 0000000000..80469d005e
--- /dev/null
+++ b/report_qweb_parameter/readme/USAGE.rst
@@ -0,0 +1,3 @@
+#. Add a t-length attribute on report templates fields that will truncate the field
+#. Add a t-minlength attribute on report template fields that will check the min length
+#. Add a t-maxlength attribute on report template fields that will check the max length
diff --git a/report_qweb_parameter/static/description/index.html b/report_qweb_parameter/static/description/index.html
new file mode 100644
index 0000000000..aac51e791a
--- /dev/null
+++ b/report_qweb_parameter/static/description/index.html
@@ -0,0 +1,442 @@
+
+
+
+
+
+
+Report QWeb Parameter
+
+
+
+
+
Report QWeb Parameter
+
+
+
+
This module allows you to add new parameters on QWeb reports.
+Currently, we have defined a field maximum on a report and a validation of
+maximal and minimal size.
+It is useful on xml reports in order to validate length.
+XML are sometimes XSD dependant and we must validate its format.
+For example, in spanish facturae (http://www.facturae.gob.es/Paginas/Index.aspx), where
+length and format must be validated in several fields in order to send an invoice.
+
Table of contents
+
+
+
+
+- Add a t-length attribute on report templates fields that will truncate the field
+- Add a t-minlength attribute on report template fields that will check the min length
+- Add a t-maxlength attribute on report template fields that will check the max length
+
+
+
+
+
Bugs are tracked on GitHub Issues.
+In case of trouble, please check there if your issue has already been reported.
+If you spotted it first, help us smashing it by providing a detailed and welcomed
+feedback.
+
Do not contact contributors directly about support or help with technical issues.
+
+
+
+
+
+
+
+
This module is maintained by the OCA.
+
+
OCA, or the Odoo Community Association, is a nonprofit organization whose
+mission is to support the collaborative development of Odoo features and
+promote its widespread use.
+
This module is part of the OCA/reporting-engine project on GitHub.
+
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
+
+
+
+
+
From 0f9e40e6a844a77f78e3d0c3ae06af3c0c8ce8c7 Mon Sep 17 00:00:00 2001
From: Francisco Ivan Anton Prieto
Date: Tue, 26 Jan 2021 18:33:21 +0100
Subject: [PATCH 07/17] [IMP] report_qweb_parameter: black, isort, prettier
---
report_qweb_parameter/__manifest__.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/report_qweb_parameter/__manifest__.py b/report_qweb_parameter/__manifest__.py
index d8e5dc6c6e..404438e14f 100644
--- a/report_qweb_parameter/__manifest__.py
+++ b/report_qweb_parameter/__manifest__.py
@@ -10,7 +10,7 @@
and check minimal length
""",
"author": "Creu Blanca, Odoo Community Association (OCA)",
- "website": "https://github.com/oca/reporting-engine",
+ "website": "https://github.com/OCA/reporting-engine",
"category": "Technical Settings",
"depends": ["web"],
"demo": ["demo/test_report_field_length.xml"],
From 9bd1a081ce98054de8ab6817c5021c07d496b175 Mon Sep 17 00:00:00 2001
From: Francisco Ivan Anton Prieto
Date: Tue, 26 Jan 2021 18:50:03 +0100
Subject: [PATCH 08/17] [MIG] report_qweb_parameter: Migration to 14.0
---
report_qweb_parameter/README.rst | 12 +++++++-----
report_qweb_parameter/__manifest__.py | 2 +-
.../demo/test_report_field_length.xml | 13 ++++++-------
.../i18n/report_qweb_parameter.pot | 17 ++++++++++++++++-
report_qweb_parameter/readme/CONTRIBUTORS.rst | 2 ++
.../static/description/index.html | 8 +++++---
.../tests/test_report_qweb_parameter.py | 10 +++++-----
7 files changed, 42 insertions(+), 22 deletions(-)
diff --git a/report_qweb_parameter/README.rst b/report_qweb_parameter/README.rst
index 47807da325..d428be6d7e 100644
--- a/report_qweb_parameter/README.rst
+++ b/report_qweb_parameter/README.rst
@@ -14,13 +14,13 @@ Report QWeb Parameter
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github
- :target: https://github.com/OCA/reporting-engine/tree/13.0/report_qweb_parameter
+ :target: https://github.com/OCA/reporting-engine/tree/14.0/report_qweb_parameter
:alt: OCA/reporting-engine
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/reporting-engine-13-0/reporting-engine-13-0-report_qweb_parameter
+ :target: https://translation.odoo-community.org/projects/reporting-engine-14-0/reporting-engine-14-0-report_qweb_parameter
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/143/13.0
+ :target: https://runbot.odoo-community.org/runbot/143/14.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -51,7 +51,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -72,6 +72,8 @@ Contributors
* Carlos Roca
+* Iván Antón
+
Maintainers
~~~~~~~~~~~
@@ -85,6 +87,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-This module is part of the `OCA/reporting-engine `_ project on GitHub.
+This module is part of the `OCA/reporting-engine `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/report_qweb_parameter/__manifest__.py b/report_qweb_parameter/__manifest__.py
index 404438e14f..365b595143 100644
--- a/report_qweb_parameter/__manifest__.py
+++ b/report_qweb_parameter/__manifest__.py
@@ -3,7 +3,7 @@
{
"name": "Report QWeb Parameter",
- "version": "13.0.1.0.0",
+ "version": "14.0.1.0.0",
"license": "AGPL-3",
"summary": """
Add new parameters for qweb templates in order to reduce field length
diff --git a/report_qweb_parameter/demo/test_report_field_length.xml b/report_qweb_parameter/demo/test_report_field_length.xml
index f529361629..f76b10ae94 100644
--- a/report_qweb_parameter/demo/test_report_field_length.xml
+++ b/report_qweb_parameter/demo/test_report_field_length.xml
@@ -1,12 +1,11 @@
-
+
+ Length Report
+ res.company
+ qweb-html
+ report_qweb_parameter.test_report_length
+
`_:
* Carlos Roca
+
+* Iván Antón
diff --git a/report_qweb_parameter/static/description/index.html b/report_qweb_parameter/static/description/index.html
index aac51e791a..45331445f6 100644
--- a/report_qweb_parameter/static/description/index.html
+++ b/report_qweb_parameter/static/description/index.html
@@ -367,7 +367,7 @@ Report QWeb Parameter
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
This module allows you to add new parameters on QWeb reports.
Currently, we have defined a field maximum on a report and a validation of
maximal and minimal size.
@@ -401,7 +401,7 @@
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.
+feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -433,7 +435,7 @@
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-
This module is part of the OCA/reporting-engine project on GitHub.
+
This module is part of the OCA/reporting-engine project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/report_qweb_parameter/tests/test_report_qweb_parameter.py b/report_qweb_parameter/tests/test_report_qweb_parameter.py
index 82ae745855..6455a97421 100644
--- a/report_qweb_parameter/tests/test_report_qweb_parameter.py
+++ b/report_qweb_parameter/tests/test_report_qweb_parameter.py
@@ -22,19 +22,19 @@ def test_qweb_parameter(self):
}
)
docs.website = "1234567890" # for avoding that Odoo adds http://
- rep = report_object.render(docs.ids, False)
+ rep = report_object._render(docs.ids, False)
root = ET.fromstring(rep[0])
self.assertEqual(root[0].text, "1234567890")
self.assertEqual(root[2].text, "1234567890")
docs.update({"street": "123456789"})
with self.assertRaises(QWebException):
- report_object.render(docs.ids, False)
+ report_object._render(docs.ids, False)
docs.update({"street": "1234567890", "vat": "123456789"})
with self.assertRaises(QWebException):
- report_object.render(docs.ids, False)
+ report_object._render(docs.ids, False)
docs.update({"vat": "1234567890", "website": "12345678901"})
with self.assertRaises(QWebException):
- report_object.render(docs.ids, False)
+ report_object._render(docs.ids, False)
docs.update({"website": "1234567890", "company_registry": "12345678901"})
with self.assertRaises(QWebException):
- report_object.render(docs.ids, False)
+ report_object._render(docs.ids, False)
From d9b8022295148afcdf5e3cabe3da0c1317e48d0b Mon Sep 17 00:00:00 2001
From: AlexanderAcysos <100213934+alexanderacysos@users.noreply.github.com>
Date: Tue, 22 Feb 2022 17:15:00 +0100
Subject: [PATCH 09/17] [MIG] report_qweb_parameter: Migration to 15.0
---
report_qweb_parameter/README.rst | 10 ++---
report_qweb_parameter/__manifest__.py | 2 +-
report_qweb_parameter/i18n/ca.po | 39 +++++++++++++++++++
.../i18n/report_qweb_parameter.pot | 17 +-------
report_qweb_parameter/models/ir_qweb.py | 8 ++--
.../static/description/index.html | 6 +--
6 files changed, 53 insertions(+), 29 deletions(-)
create mode 100644 report_qweb_parameter/i18n/ca.po
diff --git a/report_qweb_parameter/README.rst b/report_qweb_parameter/README.rst
index d428be6d7e..561eb86646 100644
--- a/report_qweb_parameter/README.rst
+++ b/report_qweb_parameter/README.rst
@@ -14,13 +14,13 @@ Report QWeb Parameter
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github
- :target: https://github.com/OCA/reporting-engine/tree/14.0/report_qweb_parameter
+ :target: https://github.com/OCA/reporting-engine/tree/15.0/report_qweb_parameter
:alt: OCA/reporting-engine
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/reporting-engine-14-0/reporting-engine-14-0-report_qweb_parameter
+ :target: https://translation.odoo-community.org/projects/reporting-engine-15-0/reporting-engine-15-0-report_qweb_parameter
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/143/14.0
+ :target: https://runbot.odoo-community.org/runbot/143/15.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -51,7 +51,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -87,6 +87,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-This module is part of the `OCA/reporting-engine `_ project on GitHub.
+This module is part of the `OCA/reporting-engine `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/report_qweb_parameter/__manifest__.py b/report_qweb_parameter/__manifest__.py
index 365b595143..0b57c29d8a 100644
--- a/report_qweb_parameter/__manifest__.py
+++ b/report_qweb_parameter/__manifest__.py
@@ -3,7 +3,7 @@
{
"name": "Report QWeb Parameter",
- "version": "14.0.1.0.0",
+ "version": "15.0.1.0.0",
"license": "AGPL-3",
"summary": """
Add new parameters for qweb templates in order to reduce field length
diff --git a/report_qweb_parameter/i18n/ca.po b/report_qweb_parameter/i18n/ca.po
new file mode 100644
index 0000000000..f549b17fea
--- /dev/null
+++ b/report_qweb_parameter/i18n/ca.po
@@ -0,0 +1,39 @@
+# Translation of Odoo Server.
+# This file contains the translation of the following modules:
+# * report_qweb_parameter
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Odoo Server 15.0\n"
+"Report-Msgid-Bugs-To: \n"
+"PO-Revision-Date: 2022-06-15 18:05+0000\n"
+"Last-Translator: jabelchi \n"
+"Language-Team: none\n"
+"Language: ca\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Generator: Weblate 4.3.2\n"
+
+#. module: report_qweb_parameter
+#: model:ir.actions.report,name:report_qweb_parameter.test_report_length_report_id
+msgid "Length Report"
+msgstr "Longitud de l'informe"
+
+#. module: report_qweb_parameter
+#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
+#, python-format
+msgid "Length cannot be less than %s"
+msgstr "La longitut no pot ser menor que %s"
+
+#. module: report_qweb_parameter
+#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
+#, python-format
+msgid "Length cannot be more than %s"
+msgstr "La llargada no pot ser més gran que %s"
+
+#. module: report_qweb_parameter
+#: model:ir.model,name:report_qweb_parameter.model_ir_qweb
+msgid "Qweb"
+msgstr "Qweb"
diff --git a/report_qweb_parameter/i18n/report_qweb_parameter.pot b/report_qweb_parameter/i18n/report_qweb_parameter.pot
index cb6e012e19..bc9d5c911e 100644
--- a/report_qweb_parameter/i18n/report_qweb_parameter.pot
+++ b/report_qweb_parameter/i18n/report_qweb_parameter.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 14.0\n"
+"Project-Id-Version: Odoo Server 15.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -13,21 +13,6 @@ msgstr ""
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
-#. module: report_qweb_parameter
-#: model:ir.model.fields,field_description:report_qweb_parameter.field_ir_qweb__display_name
-msgid "Display Name"
-msgstr ""
-
-#. module: report_qweb_parameter
-#: model:ir.model.fields,field_description:report_qweb_parameter.field_ir_qweb__id
-msgid "ID"
-msgstr ""
-
-#. module: report_qweb_parameter
-#: model:ir.model.fields,field_description:report_qweb_parameter.field_ir_qweb____last_update
-msgid "Last Modified on"
-msgstr ""
-
#. module: report_qweb_parameter
#: model:ir.actions.report,name:report_qweb_parameter.test_report_length_report_id
msgid "Length Report"
diff --git a/report_qweb_parameter/models/ir_qweb.py b/report_qweb_parameter/models/ir_qweb.py
index 51e9dfc368..348ac97b2f 100644
--- a/report_qweb_parameter/models/ir_qweb.py
+++ b/report_qweb_parameter/models/ir_qweb.py
@@ -16,7 +16,7 @@ def check_length(value, min_length=False, max_length=False):
raise ValidationError(_("Length cannot be more than %s") % str(max_length))
return value
- def _compile_directive_esc(self, el, options):
+ def _compile_directive_esc(self, el, options, indent):
min_value = el.attrib.pop("t-minlength", False)
max_value = el.attrib.pop("t-maxlength", False)
if min_value or max_value:
@@ -32,9 +32,9 @@ def _compile_directive_esc(self, el, options):
if "t-length" in el.attrib:
tlength = el.attrib.pop("t-length")
el.attrib["t-esc"] = "(" + el.attrib["t-esc"] + ")[:" + tlength + "]"
- return super()._compile_directive_esc(el, options)
+ return super()._compile_directive_esc(el, options, indent)
- def _compile_directive_raw(self, el, options):
+ def _compile_directive_raw(self, el, options, indent):
min_value = el.attrib.pop("t-minlength", False)
max_value = el.attrib.pop("t-maxlength", False)
if min_value or max_value:
@@ -50,4 +50,4 @@ def _compile_directive_raw(self, el, options):
if "t-length" in el.attrib:
tlength = el.attrib.pop("t-length")
el.attrib["t-raw"] = el.attrib["t-raw"] + "[:" + tlength + "]"
- return super()._compile_directive_raw(el, options)
+ return super()._compile_directive_raw(el, options, indent)
diff --git a/report_qweb_parameter/static/description/index.html b/report_qweb_parameter/static/description/index.html
index 45331445f6..1cc8d45e82 100644
--- a/report_qweb_parameter/static/description/index.html
+++ b/report_qweb_parameter/static/description/index.html
@@ -367,7 +367,7 @@ Report QWeb Parameter
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-
+
This module allows you to add new parameters on QWeb reports.
Currently, we have defined a field maximum on a report and a validation of
maximal and minimal size.
@@ -401,7 +401,7 @@
Bugs are tracked on GitHub Issues.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us smashing it by providing a detailed and welcomed
-feedback.
+feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -435,7 +435,7 @@
OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-
This module is part of the OCA/reporting-engine project on GitHub.
+
This module is part of the OCA/reporting-engine project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
From 8e8728fe1c3a73748bbbbc4f4279a42eb0717e2e Mon Sep 17 00:00:00 2001
From: David Ramia
Date: Wed, 26 Oct 2022 21:53:47 +0200
Subject: [PATCH 10/17] [MIG] report_qweb_parameter: Migration to 16.0
---
report_qweb_parameter/README.rst | 23 +++++-----
report_qweb_parameter/__manifest__.py | 2 +-
.../demo/test_report_field_length.xml | 13 ++++++
report_qweb_parameter/i18n/ca.po | 2 +
report_qweb_parameter/i18n/es.po | 2 +
report_qweb_parameter/i18n/fr.po | 2 +
report_qweb_parameter/i18n/it.po | 2 +
report_qweb_parameter/i18n/pt.po | 2 +
.../i18n/report_qweb_parameter.pot | 4 +-
report_qweb_parameter/models/ir_qweb.py | 27 ++++++++++--
.../static/description/index.html | 42 ++++++++++---------
.../tests/test_report_qweb_parameter.py | 15 +++----
12 files changed, 93 insertions(+), 43 deletions(-)
diff --git a/report_qweb_parameter/README.rst b/report_qweb_parameter/README.rst
index 561eb86646..899c56f9e4 100644
--- a/report_qweb_parameter/README.rst
+++ b/report_qweb_parameter/README.rst
@@ -2,10 +2,13 @@
Report QWeb Parameter
=====================
-.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+..
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+ !! source digest: sha256:6e50557d8d49cab3485b6aa968d1dbc2a8d55f1fd8cdc34b3b269db65edf9693
+ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
@@ -14,16 +17,16 @@ Report QWeb Parameter
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Freporting--engine-lightgray.png?logo=github
- :target: https://github.com/OCA/reporting-engine/tree/15.0/report_qweb_parameter
+ :target: https://github.com/OCA/reporting-engine/tree/16.0/report_qweb_parameter
:alt: OCA/reporting-engine
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/reporting-engine-15-0/reporting-engine-15-0-report_qweb_parameter
+ :target: https://translation.odoo-community.org/projects/reporting-engine-16-0/reporting-engine-16-0-report_qweb_parameter
:alt: Translate me on Weblate
-.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/143/15.0
- :alt: Try me on Runbot
+.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
+ :target: https://runboat.odoo-community.org/builds?repo=OCA/reporting-engine&target_branch=16.0
+ :alt: Try me on Runboat
-|badge1| |badge2| |badge3| |badge4| |badge5|
+|badge1| |badge2| |badge3| |badge4| |badge5|
This module allows you to add new parameters on QWeb reports.
Currently, we have defined a field maximum on a report and a validation of
@@ -50,8 +53,8 @@ Bug Tracker
Bugs are tracked on `GitHub Issues `_.
In case of trouble, please check there if your issue has already been reported.
-If you spotted it first, help us smashing it by providing a detailed and welcomed
-`feedback `_.
+If you spotted it first, help us to smash it by providing a detailed and welcomed
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -87,6 +90,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
-This module is part of the `OCA/reporting-engine `_ project on GitHub.
+This module is part of the `OCA/reporting-engine `_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
diff --git a/report_qweb_parameter/__manifest__.py b/report_qweb_parameter/__manifest__.py
index 0b57c29d8a..f12365bf78 100644
--- a/report_qweb_parameter/__manifest__.py
+++ b/report_qweb_parameter/__manifest__.py
@@ -3,7 +3,7 @@
{
"name": "Report QWeb Parameter",
- "version": "15.0.1.0.0",
+ "version": "16.0.1.0.0",
"license": "AGPL-3",
"summary": """
Add new parameters for qweb templates in order to reduce field length
diff --git a/report_qweb_parameter/demo/test_report_field_length.xml b/report_qweb_parameter/demo/test_report_field_length.xml
index f76b10ae94..d786acce7f 100644
--- a/report_qweb_parameter/demo/test_report_field_length.xml
+++ b/report_qweb_parameter/demo/test_report_field_length.xml
@@ -34,6 +34,19 @@
t-raw="docs[0].company_registry"
t-if="docs[0].company_registry"
/>
+
+
diff --git a/report_qweb_parameter/i18n/ca.po b/report_qweb_parameter/i18n/ca.po
index f549b17fea..a116902932 100644
--- a/report_qweb_parameter/i18n/ca.po
+++ b/report_qweb_parameter/i18n/ca.po
@@ -22,12 +22,14 @@ msgid "Length Report"
msgstr "Longitud de l'informe"
#. module: report_qweb_parameter
+#. odoo-python
#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
#, python-format
msgid "Length cannot be less than %s"
msgstr "La longitut no pot ser menor que %s"
#. module: report_qweb_parameter
+#. odoo-python
#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
#, python-format
msgid "Length cannot be more than %s"
diff --git a/report_qweb_parameter/i18n/es.po b/report_qweb_parameter/i18n/es.po
index 7cc1952b8f..060c57c729 100644
--- a/report_qweb_parameter/i18n/es.po
+++ b/report_qweb_parameter/i18n/es.po
@@ -23,12 +23,14 @@ msgid "Length Report"
msgstr "Longitud del informe"
#. module: report_qweb_parameter
+#. odoo-python
#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
#, python-format
msgid "Length cannot be less than %s"
msgstr "La longitud no puede ser menor a %s"
#. module: report_qweb_parameter
+#. odoo-python
#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
#, python-format
msgid "Length cannot be more than %s"
diff --git a/report_qweb_parameter/i18n/fr.po b/report_qweb_parameter/i18n/fr.po
index 5cc9108307..3ae4e02222 100644
--- a/report_qweb_parameter/i18n/fr.po
+++ b/report_qweb_parameter/i18n/fr.po
@@ -24,12 +24,14 @@ msgid "Length Report"
msgstr "Longueur du rapport "
#. module: report_qweb_parameter
+#. odoo-python
#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
#, python-format
msgid "Length cannot be less than %s"
msgstr "La longueur du rapport ne peut pas être inférieure à %s"
#. module: report_qweb_parameter
+#. odoo-python
#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
#, python-format
msgid "Length cannot be more than %s"
diff --git a/report_qweb_parameter/i18n/it.po b/report_qweb_parameter/i18n/it.po
index 868bc8c17f..451cb2d322 100644
--- a/report_qweb_parameter/i18n/it.po
+++ b/report_qweb_parameter/i18n/it.po
@@ -22,12 +22,14 @@ msgid "Length Report"
msgstr "Lunghezza Report"
#. module: report_qweb_parameter
+#. odoo-python
#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
#, python-format
msgid "Length cannot be less than %s"
msgstr "La lunghezza non può essere meno di %s"
#. module: report_qweb_parameter
+#. odoo-python
#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
#, python-format
msgid "Length cannot be more than %s"
diff --git a/report_qweb_parameter/i18n/pt.po b/report_qweb_parameter/i18n/pt.po
index 0be7522a28..8456f83da7 100644
--- a/report_qweb_parameter/i18n/pt.po
+++ b/report_qweb_parameter/i18n/pt.po
@@ -22,12 +22,14 @@ msgid "Length Report"
msgstr "Relatório de Comprimento"
#. module: report_qweb_parameter
+#. odoo-python
#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
#, python-format
msgid "Length cannot be less than %s"
msgstr "Comprimento não pode ser superior a %s"
#. module: report_qweb_parameter
+#. odoo-python
#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
#, python-format
msgid "Length cannot be more than %s"
diff --git a/report_qweb_parameter/i18n/report_qweb_parameter.pot b/report_qweb_parameter/i18n/report_qweb_parameter.pot
index bc9d5c911e..171f1623d3 100644
--- a/report_qweb_parameter/i18n/report_qweb_parameter.pot
+++ b/report_qweb_parameter/i18n/report_qweb_parameter.pot
@@ -4,7 +4,7 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 15.0\n"
+"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: \n"
"Language-Team: \n"
@@ -19,12 +19,14 @@ msgid "Length Report"
msgstr ""
#. module: report_qweb_parameter
+#. odoo-python
#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
#, python-format
msgid "Length cannot be less than %s"
msgstr ""
#. module: report_qweb_parameter
+#. odoo-python
#: code:addons/report_qweb_parameter/models/ir_qweb.py:0
#, python-format
msgid "Length cannot be more than %s"
diff --git a/report_qweb_parameter/models/ir_qweb.py b/report_qweb_parameter/models/ir_qweb.py
index 348ac97b2f..b763d3183d 100644
--- a/report_qweb_parameter/models/ir_qweb.py
+++ b/report_qweb_parameter/models/ir_qweb.py
@@ -16,7 +16,7 @@ def check_length(value, min_length=False, max_length=False):
raise ValidationError(_("Length cannot be more than %s") % str(max_length))
return value
- def _compile_directive_esc(self, el, options, indent):
+ def _compile_directive_esc(self, el, compile_context, level):
min_value = el.attrib.pop("t-minlength", False)
max_value = el.attrib.pop("t-maxlength", False)
if min_value or max_value:
@@ -32,9 +32,28 @@ def _compile_directive_esc(self, el, options, indent):
if "t-length" in el.attrib:
tlength = el.attrib.pop("t-length")
el.attrib["t-esc"] = "(" + el.attrib["t-esc"] + ")[:" + tlength + "]"
- return super()._compile_directive_esc(el, options, indent)
+ return super()._compile_directive_esc(el, compile_context, level)
- def _compile_directive_raw(self, el, options, indent):
+ def _compile_directive_out(self, el, compile_context, level):
+ min_value = el.attrib.pop("t-minlength", False)
+ max_value = el.attrib.pop("t-maxlength", False)
+ if min_value or max_value:
+ el.attrib["t-out"] = (
+ 'docs.env["ir.qweb"].check_length('
+ + el.attrib["t-out"]
+ + ", "
+ + (min_value or "False")
+ + ", "
+ + (max_value or "False")
+ + ")"
+ )
+ if "t-length" in el.attrib:
+ tlength = el.attrib.pop("t-length")
+ el.attrib["t-out"] = el.attrib["t-out"] + "[:" + tlength + "]"
+ return super()._compile_directive_out(el, compile_context, level)
+
+ def _compile_directive_raw(self, el, compile_context, level):
+ # TODO: t-raw is deprecated, can it be removed?
min_value = el.attrib.pop("t-minlength", False)
max_value = el.attrib.pop("t-maxlength", False)
if min_value or max_value:
@@ -50,4 +69,4 @@ def _compile_directive_raw(self, el, options, indent):
if "t-length" in el.attrib:
tlength = el.attrib.pop("t-length")
el.attrib["t-raw"] = el.attrib["t-raw"] + "[:" + tlength + "]"
- return super()._compile_directive_raw(el, options, indent)
+ return super()._compile_directive_raw(el, compile_context, level)
diff --git a/report_qweb_parameter/static/description/index.html b/report_qweb_parameter/static/description/index.html
index 1cc8d45e82..c5c8f37cee 100644
--- a/report_qweb_parameter/static/description/index.html
+++ b/report_qweb_parameter/static/description/index.html
@@ -1,20 +1,20 @@
-
+
-
+
Report QWeb Parameter