mirror of
https://github.com/OCA/reporting-engine.git
synced 2025-02-16 16:30:38 +02:00
[IMP] report_fillpdf: black, isort, prettier
This commit is contained in:
@@ -2,31 +2,36 @@
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
|
||||
from io import BytesIO
|
||||
import os
|
||||
from contextlib import closing
|
||||
import logging
|
||||
import os
|
||||
import tempfile
|
||||
from subprocess import Popen, PIPE
|
||||
from contextlib import closing
|
||||
from io import BytesIO
|
||||
from subprocess import PIPE, Popen
|
||||
|
||||
from odoo import api, models, tools
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
try:
|
||||
from fdfgen import forge_fdf
|
||||
EXTERNAL_DEPENDENCY_BINARY_PDFTK = tools.find_in_path('pdftk')
|
||||
|
||||
EXTERNAL_DEPENDENCY_BINARY_PDFTK = tools.find_in_path("pdftk")
|
||||
except (ImportError, IOError) as err:
|
||||
_logger.debug('Error while importing: %s.' % err)
|
||||
_logger.debug("Error while importing: %s." % err)
|
||||
EXTERNAL_DEPENDENCY_BINARY_PDFTK = ""
|
||||
|
||||
|
||||
class ReportFillPDFAbstract(models.AbstractModel):
|
||||
_name = 'report.report_fillpdf.abstract'
|
||||
_name = "report.report_fillpdf.abstract"
|
||||
|
||||
def fill_report(self, docids, data):
|
||||
objs = self.env[self.env.context.get('active_model')].browse(docids)
|
||||
return self.fill_pdf_form(
|
||||
self.get_form(data, objs),
|
||||
self.get_document_values(data, objs)), 'pdf'
|
||||
objs = self.env[self.env.context.get("active_model")].browse(docids)
|
||||
return (
|
||||
self.fill_pdf_form(
|
||||
self.get_form(data, objs), self.get_document_values(data, objs)
|
||||
),
|
||||
"pdf",
|
||||
)
|
||||
|
||||
@api.model
|
||||
def get_original_document_path(self, data, objs):
|
||||
@@ -34,7 +39,7 @@ class ReportFillPDFAbstract(models.AbstractModel):
|
||||
|
||||
@api.model
|
||||
def get_form(self, data, objs):
|
||||
with open(self.get_original_document_path(data, objs), 'rb') as file:
|
||||
with open(self.get_original_document_path(data, objs), "rb") as file:
|
||||
result = file.read()
|
||||
return result
|
||||
|
||||
@@ -45,17 +50,18 @@ class ReportFillPDFAbstract(models.AbstractModel):
|
||||
@api.model
|
||||
def fill_pdf_form(self, form, vals):
|
||||
fdf = forge_fdf("", vals.items(), [], [], [])
|
||||
document_fd, document_path = tempfile.mkstemp(
|
||||
suffix='.pdf', prefix='')
|
||||
with closing(os.fdopen(document_fd, 'wb')) as body_file:
|
||||
document_fd, document_path = tempfile.mkstemp(suffix=".pdf", prefix="")
|
||||
with closing(os.fdopen(document_fd, "wb")) as body_file:
|
||||
body_file.write(form)
|
||||
args = [
|
||||
EXTERNAL_DEPENDENCY_BINARY_PDFTK,
|
||||
document_path,
|
||||
"fill_form", "-",
|
||||
"output", "-",
|
||||
"fill_form",
|
||||
"-",
|
||||
"output",
|
||||
"-",
|
||||
"dont_ask",
|
||||
"flatten"
|
||||
"flatten",
|
||||
]
|
||||
p = Popen(args, stdin=PIPE, stdout=PIPE, stderr=PIPE)
|
||||
stdout, stderr = p.communicate(fdf)
|
||||
|
||||
@@ -6,15 +6,14 @@ from odoo.modules import get_resource_path
|
||||
|
||||
|
||||
class PartnerPDF(models.AbstractModel):
|
||||
_name = 'report.report_fillpdf.partner_fillpdf'
|
||||
_inherit = 'report.report_fillpdf.abstract'
|
||||
_name = "report.report_fillpdf.partner_fillpdf"
|
||||
_inherit = "report.report_fillpdf.abstract"
|
||||
|
||||
@api.model
|
||||
def get_original_document_path(self, data, objs):
|
||||
return get_resource_path(
|
||||
'report_fillpdf', 'static/src/pdf', 'partner_pdf.pdf')
|
||||
return get_resource_path("report_fillpdf", "static/src/pdf", "partner_pdf.pdf")
|
||||
|
||||
@api.model
|
||||
def get_document_values(self, data, objs):
|
||||
objs.ensure_one()
|
||||
return {'name': objs.name}
|
||||
return {"name": objs.name}
|
||||
|
||||
Reference in New Issue
Block a user