fix(#259): handle case of print attachment wizard

The fix in #259 only worked for reports being printed at generation
of the PDF. This PR handles sending an attachment to a printer through
the Print Attachment wizard.

Also clarify the configuration section of the README.
This commit is contained in:
Alexandre Fayolle
2022-03-09 12:00:36 +01:00
committed by sonhd
parent edf2c41056
commit c24ea1b992
4 changed files with 13 additions and 5 deletions

View File

@@ -82,7 +82,8 @@ The jobs will be sent to the printer with a name matching the print_report_name
of the report (truncated at 80 characters). By default this will not be of the report (truncated at 80 characters). By default this will not be
displayed by CUPS web interface or in Odoo. To see this information, you need displayed by CUPS web interface or in Odoo. To see this information, you need
to change the configuration of your CUPS server and set the JobPrivateValue to change the configuration of your CUPS server and set the JobPrivateValue
directive to "job-name", and reload the server. See `cupsd.conf(5) directive to "none" (or some other list of values which does not include
"job-name") , and reload the server. See `cupsd.conf(5)
<https://www.cups.org/doc/man-cupsd.conf.html>` for details. <https://www.cups.org/doc/man-cupsd.conf.html>` for details.
Usage Usage

View File

@@ -8,5 +8,6 @@ The jobs will be sent to the printer with a name matching the print_report_name
of the report (truncated at 80 characters). By default this will not be of the report (truncated at 80 characters). By default this will not be
displayed by CUPS web interface or in Odoo. To see this information, you need displayed by CUPS web interface or in Odoo. To see this information, you need
to change the configuration of your CUPS server and set the JobPrivateValue to change the configuration of your CUPS server and set the JobPrivateValue
directive to "job-name", and reload the server. See `cupsd.conf(5) directive to "none" (or some other list of values which does not include
"job-name") , and reload the server. See `cupsd.conf(5)
<https://www.cups.org/doc/man-cupsd.conf.html>` for details. <https://www.cups.org/doc/man-cupsd.conf.html>` for details.

View File

@@ -432,7 +432,8 @@ rights to give users the ability to view the print menu.</li>
of the report (truncated at 80 characters). By default this will not be of the report (truncated at 80 characters). By default this will not be
displayed by CUPS web interface or in Odoo. To see this information, you need displayed by CUPS web interface or in Odoo. To see this information, you need
to change the configuration of your CUPS server and set the JobPrivateValue to change the configuration of your CUPS server and set the JobPrivateValue
directive to “job-name”, and reload the server. See <cite>cupsd.conf(5) directive to “none” (or some other list of values which does not include
“job-name”) , and reload the server. See <cite>cupsd.conf(5)
&lt;https://www.cups.org/doc/man-cupsd.conf.html&gt;</cite> for details.</p> &lt;https://www.cups.org/doc/man-cupsd.conf.html&gt;</cite> for details.</p>
</div> </div>
<div class="section" id="usage"> <div class="section" id="usage">

View File

@@ -22,18 +22,23 @@ class PrintAttachment(models.TransientModel):
) )
def print_attachments(self): def print_attachments(self):
""" Prints a label per selected record """ """Prints a label per selected record"""
self.ensure_one() self.ensure_one()
errors = [] errors = []
for att_line in self.attachment_line_ids: for att_line in self.attachment_line_ids:
data = att_line.attachment_id.datas data = att_line.attachment_id.datas
title = att_line.attachment_id.store_fname
if not data: if not data:
errors.append(att_line) errors.append(att_line)
continue continue
content = base64.b64decode(data) content = base64.b64decode(data)
content_format = att_line.get_format() content_format = att_line.get_format()
self.printer_id.print_document( self.printer_id.print_document(
None, content=content, format=content_format, copies=att_line.copies None,
content=content,
format=content_format,
copies=att_line.copies,
title=title,
) )
if errors: if errors:
return { return {