[IMP] report_fillpdf: black, isort, prettier

This commit is contained in:
Cyril VINH-TUNG
2022-10-12 11:27:53 -10:00
parent fc700935da
commit e405538571
12 changed files with 144 additions and 120 deletions

View File

@@ -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)

View File

@@ -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}