Browse Source

[IMP] report_wkhtmltopdf_param: black, isort, prettier

myc-14.0-py3o
Saran440 4 years ago
committed by fshah
parent
commit
f8b51745f6
  1. 13
      report_wkhtmltopdf_param/__manifest__.py
  2. 18
      report_wkhtmltopdf_param/models/report.py
  3. 31
      report_wkhtmltopdf_param/models/report_paperformat.py
  4. 18
      report_wkhtmltopdf_param/models/report_paperformat_parameter.py
  5. 27
      report_wkhtmltopdf_param/tests/test_report_paperformat.py
  6. 10
      report_wkhtmltopdf_param/views/paperformat.xml

13
report_wkhtmltopdf_param/__manifest__.py

@ -10,18 +10,11 @@
Add new parameters for a paper format to be used by wkhtmltopdf
command as arguments.
""",
"author": "Avoin.Systems,"
"Eficent,"
"Odoo Community Association (OCA)",
"author": "Avoin.Systems," "Eficent," "Odoo Community Association (OCA)",
"website": "https://avoin.systems",
"category": "Technical Settings",
"depends": [
"web",
],
"data": [
"security/ir.model.access.csv",
"views/paperformat.xml",
],
"depends": ["web",],
"data": ["security/ir.model.access.csv", "views/paperformat.xml",],
"installable": True,
"auto_install": False,
"application": False,

18
report_wkhtmltopdf_param/models/report.py

@ -6,21 +6,19 @@ from odoo import api, models
class IrActionsReport(models.Model):
_inherit = 'ir.actions.report'
_inherit = "ir.actions.report"
@api.model
def _build_wkhtmltopdf_args(
self,
paperformat_id,
landscape,
specific_paperformat_args=None,
set_viewport_size=False):
self,
paperformat_id,
landscape,
specific_paperformat_args=None,
set_viewport_size=False,
):
# noinspection PyUnresolvedReferences,PyProtectedMember
command_args = super(IrActionsReport, self)._build_wkhtmltopdf_args(
paperformat_id,
landscape,
specific_paperformat_args,
set_viewport_size
paperformat_id, landscape, specific_paperformat_args, set_viewport_size
)
for param in paperformat_id.custom_params:

31
report_wkhtmltopdf_param/models/report_paperformat.py

@ -2,25 +2,25 @@
# Copyright 2017 Eficent Business and IT Consulting Services, S.L.
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import api, fields, models, _
from odoo.exceptions import ValidationError
import logging
from odoo import _, api, fields, models
from odoo.exceptions import ValidationError
_logger = logging.getLogger(__name__)
class Paper(models.Model):
_inherit = 'report.paperformat'
_inherit = "report.paperformat"
custom_params = fields.One2many(
'report.paperformat.parameter',
'paperformat_id',
'Custom Parameters',
help='Custom Parameters passed forward as wkhtmltopdf '
'command arguments'
"report.paperformat.parameter",
"paperformat_id",
"Custom Parameters",
help="Custom Parameters passed forward as wkhtmltopdf " "command arguments",
)
@api.constrains('custom_params')
@api.constrains("custom_params")
def _check_recursion(self):
for paperformat in self:
sample_html = """
@ -33,11 +33,12 @@ class Paper(models.Model):
</body>
</html>
"""
contenthtml = [bytes(sample_html, 'utf-8')]
report = self.env['ir.actions.report'].new({
'paperformat_id': paperformat.id
})
contenthtml = [bytes(sample_html, "utf-8")]
report = self.env["ir.actions.report"].new(
{"paperformat_id": paperformat.id}
)
content = report._run_wkhtmltopdf(contenthtml)
if not content:
raise ValidationError(_(
"Failed to create a PDF using the provided parameters."))
raise ValidationError(
_("Failed to create a PDF using the provided parameters.")
)

18
report_wkhtmltopdf_param/models/report_paperformat_parameter.py

@ -1,25 +1,21 @@
# Copyright 2017 Avoin.Systems
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import models, fields
from odoo import fields, models
class ReportPaperformatParameter(models.Model):
_name = 'report.paperformat.parameter'
_description = 'wkhtmltopdf parameters'
_name = "report.paperformat.parameter"
_description = "wkhtmltopdf parameters"
paperformat_id = fields.Many2one(
'report.paperformat',
'Paper Format',
required=True,
"report.paperformat", "Paper Format", required=True,
)
name = fields.Char(
'Name',
"Name",
required=True,
help='The command argument name. Remember to add prefix -- or -'
help="The command argument name. Remember to add prefix -- or -",
)
value = fields.Char(
'Value',
)
value = fields.Char("Value",)

27
report_wkhtmltopdf_param/tests/test_report_paperformat.py

@ -10,23 +10,24 @@ from odoo.exceptions import ValidationError
@odoo.tests.common.post_install(True)
class TestWkhtmltopdf(odoo.tests.TransactionCase):
def test_wkhtmltopdf_incorrect_parameter(self):
for report_paperformat in self.env['report.paperformat'].search([]):
for report_paperformat in self.env["report.paperformat"].search([]):
with self.assertRaises(ValidationError):
report_paperformat.update({
'custom_params': [(0, 0, {
'name': 'bad-parameter'
})]})
report_paperformat.update(
{"custom_params": [(0, 0, {"name": "bad-parameter"})]}
)
def test_wkhtmltopdf_valid_parameter(self):
for report_paperformat in self.env['report.paperformat'].search([]):
for report_paperformat in self.env["report.paperformat"].search([]):
error = False
try:
report_paperformat.update({
'custom_params': [(0, 0, {
'name': '--disable-smart-shrinking'
})]})
report_paperformat.update(
{"custom_params": [(0, 0, {"name": "--disable-smart-shrinking"})]}
)
except ValidationError:
error = True
self.assertEquals(error, False,
"There was an error adding wkhtmltopdf "
"parameter --disable-smart-shrinking")
self.assertEquals(
error,
False,
"There was an error adding wkhtmltopdf "
"parameter --disable-smart-shrinking",
)

10
report_wkhtmltopdf_param/views/paperformat.xml

@ -1,21 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<!-- FORM: report.paperformat -->
<record id="paperformat_view_form_custom" model="ir.ui.view">
<field name="name">paperformat with custom parameters</field>
<field name="model">report.paperformat</field>
<field name="inherit_id" ref="base.paperformat_view_form"/>
<field name="inherit_id" ref="base.paperformat_view_form" />
<field name="arch" type="xml">
<field name="report_ids" position="after">
<field name="custom_params">
<tree editable="bottom">
<field name="name"/>
<field name="value"/>
<field name="name" />
<field name="value" />
</tree>
</field>
</field>
</field>
</record>
</odoo>
Loading…
Cancel
Save