From 618f2ffb70666b33893b091aa6331959f7fab27c Mon Sep 17 00:00:00 2001
From: etobella
Date: Mon, 26 Jun 2017 16:19:58 +0200
Subject: [PATCH 01/12] [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 000000000..261adc786
--- /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 000000000..ec50cfc0f
--- /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 000000000..99741eb7f
--- /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 000000000..2b3d92f3d
--- /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 000000000..6b04fd254
--- /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 000000000..7042198cb
--- /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 000000000..e4695dbf5
--- /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 000000000..70251161e
--- /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 c33c6e00945707f53b01beb1ed91bb0afa6f5de7 Mon Sep 17 00:00:00 2001
From: Enric Tobella
Date: Fri, 6 Oct 2017 12:35:06 +0200
Subject: [PATCH 02/12] [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 261adc786..e36594335 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 ec50cfc0f..b44d76594 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 99741eb7f..1d8d7060a 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 2b3d92f3d..2b1274317 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 000000000..6c5c6bcfc
--- /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 000000000..01f6a6b0c
--- /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 6b04fd254..dd58c12a5 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 7042198cb..67e80044e 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 e4695dbf5..e6422248c 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 70251161e..510770ab3 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 @@ 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'
+ 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 351250cbffcc1782734159c75b585f64c383ef1b Mon Sep 17 00:00:00 2001
From: Efren
Date: Fri, 21 Jun 2019 11:19:27 +0100
Subject: [PATCH 03/12] [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 1d8d7060a..28904594a 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 6c5c6bcfc..45bad8757 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 000000000..b7e6a113e
--- /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 01f6a6b0c..e886e30cb 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 510770ab3..df61faceb 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 0b8cfdc299cc96f072216452493f17fcdade8d3b Mon Sep 17 00:00:00 2001
From: "Pedro M. Baeza"
Date: Mon, 13 Apr 2020 19:02:39 +0200
Subject: [PATCH 04/12] [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 df61faceb..77e2b7548 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 @@ class TestReportQWebParameter(common.TransactionCase):
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 @@ class TestReportQWebParameter(common.TransactionCase):
{'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 de6c4e3e389d1e5dfa8ced64a475323ca8189bce Mon Sep 17 00:00:00 2001
From: Carlos Roca
Date: Wed, 28 Oct 2020 09:24:25 +0100
Subject: [PATCH 05/12] [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 b44d76594..31660d6a9 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 28904594a..ec86cd924 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 2b1274317..f52936162 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 dd58c12a5..3abf9999a 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 67e80044e..5d110acfb 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 e6422248c..62db47d0f 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 77e2b7548..82ae74585 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 96f7091eeb0915c672e353550eab9881a238b7ab Mon Sep 17 00:00:00 2001
From: Carlos Roca
Date: Wed, 28 Oct 2020 10:23:07 +0100
Subject: [PATCH 06/12] [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 e36594335..47807da32 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 ec86cd924..d8e5dc6c6 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 000000000..7cc1952b8
--- /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 45bad8757..5cc910830 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 000000000..868bc8c17
--- /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 b7e6a113e..0be7522a2 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 e886e30cb..4df2be043 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 5d110acfb..51e9dfc36 100644
--- a/report_qweb_parameter/models/ir_qweb.py
+++ b/report_qweb_parameter/models/ir_qweb.py
@@ -30,9 +30,9 @@ class IrQWeb(models.AbstractModel):
+ ")"
)
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 @@ class IrQWeb(models.AbstractModel):
+ ")"
)
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 000000000..f2b5eb2e7
--- /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 000000000..a738afa66
--- /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 000000000..80469d005
--- /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 000000000..aac51e791
--- /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 6a09d23fd8ec57ac016cd647a253c4420f06fe7c Mon Sep 17 00:00:00 2001
From: Francisco Ivan Anton Prieto
Date: Tue, 26 Jan 2021 18:33:21 +0100
Subject: [PATCH 07/12] [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 d8e5dc6c6..404438e14 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 3cdaa82ba247f2798687c33f248414bc0b7e64f3 Mon Sep 17 00:00:00 2001
From: Francisco Ivan Anton Prieto
Date: Tue, 26 Jan 2021 18:50:03 +0100
Subject: [PATCH 08/12] [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 47807da32..d428be6d7 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 404438e14..365b59514 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 f52936162..f76b10ae9 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 aac51e791..45331445f 100644
--- a/report_qweb_parameter/static/description/index.html
+++ b/report_qweb_parameter/static/description/index.html
@@ -367,7 +367,7 @@ ul.auto-toc {
!! 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 @@ length and format must be validated in several fields in order to send an invoic
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.
@@ -424,6 +424,8 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
+
Iván Antón <ozono@ozonomultimedia.com>
+
@@ -433,7 +435,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
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 82ae74585..6455a9742 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 @@ class TestReportQWebParameter(common.TransactionCase):
}
)
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 41fcda22c2cab9546edb0bc4943406300a102f70 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/12] [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 d428be6d7..561eb8664 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 365b59514..0b57c29d8 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 000000000..f549b17fe
--- /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 cb6e012e1..bc9d5c911 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 51e9dfc36..348ac97b2 100644
--- a/report_qweb_parameter/models/ir_qweb.py
+++ b/report_qweb_parameter/models/ir_qweb.py
@@ -16,7 +16,7 @@ class IrQWeb(models.AbstractModel):
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 @@ class IrQWeb(models.AbstractModel):
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 @@ class IrQWeb(models.AbstractModel):
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 45331445f..1cc8d45e8 100644
--- a/report_qweb_parameter/static/description/index.html
+++ b/report_qweb_parameter/static/description/index.html
@@ -367,7 +367,7 @@ ul.auto-toc {
!! 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 @@ length and format must be validated in several fields in order to send an invoic
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 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
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 bd9f0a12b23797dcd656eba78f63b68aa3b5c7db Mon Sep 17 00:00:00 2001
From: David Ramia
Date: Wed, 26 Oct 2022 21:53:47 +0200
Subject: [PATCH 10/12] [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 561eb8664..899c56f9e 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 0b57c29d8..f12365bf7 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 f76b10ae9..d786acce7 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 f549b17fe..a11690293 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 7cc1952b8..060c57c72 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 5cc910830..3ae4e0222 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 868bc8c17..451cb2d32 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 0be7522a2..8456f83da 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 bc9d5c911..171f1623d 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 348ac97b2..b763d3183 100644
--- a/report_qweb_parameter/models/ir_qweb.py
+++ b/report_qweb_parameter/models/ir_qweb.py
@@ -16,7 +16,7 @@ class IrQWeb(models.AbstractModel):
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 @@ class IrQWeb(models.AbstractModel):
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 @@ class IrQWeb(models.AbstractModel):
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 1cc8d45e8..c5c8f37ce 100644
--- a/report_qweb_parameter/static/description/index.html
+++ b/report_qweb_parameter/static/description/index.html
@@ -1,20 +1,20 @@
-
+
-
+
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 to smash 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.
-
-
-
-
-
+
+
+
+
+
+
+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 to smash 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 e85d9341dbf89a7a7aeac7b1f583a301d3cecb7b Mon Sep 17 00:00:00 2001
From: David Ramia
Date: Sat, 18 Nov 2023 09:24:08 +0100
Subject: [PATCH 12/12] [MIG] report_qweb_parameter: Migration to 17.0
---
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 f12365bf7..f3a0b3d6f 100644
--- a/report_qweb_parameter/__manifest__.py
+++ b/report_qweb_parameter/__manifest__.py
@@ -3,7 +3,7 @@
{
"name": "Report QWeb Parameter",
- "version": "16.0.1.0.0",
+ "version": "17.0.1.0.0",
"license": "AGPL-3",
"summary": """
Add new parameters for qweb templates in order to reduce field length