From 0c97c7e1b2a38eac46f2b09add5707a9e72f6171 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Tue, 17 Jun 2025 11:16:20 +0000 Subject: [PATCH] Add module product_print_zpl_barcode_cups --- product_print_zpl_barcode_cups/README.rst | 6 +++++ product_print_zpl_barcode_cups/__init__.py | 1 + .../__manifest__.py | 21 +++++++++++++++ .../wizards/__init__.py | 1 + .../wizards/product_print_zpl_barcode.py | 26 +++++++++++++++++++ .../product_print_zpl_barcode_view.xml | 24 +++++++++++++++++ 6 files changed, 79 insertions(+) create mode 100644 product_print_zpl_barcode_cups/README.rst create mode 100644 product_print_zpl_barcode_cups/__init__.py create mode 100644 product_print_zpl_barcode_cups/__manifest__.py create mode 100644 product_print_zpl_barcode_cups/wizards/__init__.py create mode 100644 product_print_zpl_barcode_cups/wizards/product_print_zpl_barcode.py create mode 100644 product_print_zpl_barcode_cups/wizards/product_print_zpl_barcode_view.xml diff --git a/product_print_zpl_barcode_cups/README.rst b/product_print_zpl_barcode_cups/README.rst new file mode 100644 index 0000000..d58450e --- /dev/null +++ b/product_print_zpl_barcode_cups/README.rst @@ -0,0 +1,6 @@ +Product Print ZPL Barcode via CUPS +================================== + +This is a glue module between product_print_zpl_barcode (same repository) and base_report_to_printer (from `OCA/report-print-send `). It is useful when you have an USB ZPL printer that you can only reach via CUPS. + +This module has been written by Alexis de Lattre from Akretion France . diff --git a/product_print_zpl_barcode_cups/__init__.py b/product_print_zpl_barcode_cups/__init__.py new file mode 100644 index 0000000..5cb1c49 --- /dev/null +++ b/product_print_zpl_barcode_cups/__init__.py @@ -0,0 +1 @@ +from . import wizards diff --git a/product_print_zpl_barcode_cups/__manifest__.py b/product_print_zpl_barcode_cups/__manifest__.py new file mode 100644 index 0000000..bff5d64 --- /dev/null +++ b/product_print_zpl_barcode_cups/__manifest__.py @@ -0,0 +1,21 @@ +# Copyright 2016-2020 Akretion (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + 'name': 'Product Print ZPL Barcode via CUPS', + 'version': '16.0.1.0.0', + 'category': 'Extra Tools', + 'license': 'AGPL-3', + 'summary': 'Glue module between product_print_zpl_barcode and base_report_to_printer', + 'author': 'Akretion', + 'website': 'https://github.com/akretion/odoo-usability', + 'depends': [ + 'product_print_zpl_barcode', + 'base_report_to_printer', + ], + 'data': [ + 'wizards/product_print_zpl_barcode_view.xml', + ], + 'installable': True, +} diff --git a/product_print_zpl_barcode_cups/wizards/__init__.py b/product_print_zpl_barcode_cups/wizards/__init__.py new file mode 100644 index 0000000..71c6c20 --- /dev/null +++ b/product_print_zpl_barcode_cups/wizards/__init__.py @@ -0,0 +1 @@ +from . import product_print_zpl_barcode diff --git a/product_print_zpl_barcode_cups/wizards/product_print_zpl_barcode.py b/product_print_zpl_barcode_cups/wizards/product_print_zpl_barcode.py new file mode 100644 index 0000000..74e8769 --- /dev/null +++ b/product_print_zpl_barcode_cups/wizards/product_print_zpl_barcode.py @@ -0,0 +1,26 @@ +# Copyright 2025 Akretion France (http://www.akretion.com/) +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, fields, models +import base64 + + +class ProductPrintZplBarcode(models.TransientModel): + _inherit = 'product.print.zpl.barcode' + + zpl_printer_id = fields.Many2one('printing.printer', string='ZPL Printer') + + @api.model + def default_get(self, fields_list): + res = super().default_get(fields_list) + printer = self.env['printing.printer'].get_default() + res['zpl_printer_id'] = printer and printer.id or False + return res + + def print_zpl(self): + if self.zpl_printer_id: + self.zpl_printer_id.print_document( + self.zpl_filename, base64.decodebytes(self.zpl_file), format='raw') + else: + return super().print_zpl() diff --git a/product_print_zpl_barcode_cups/wizards/product_print_zpl_barcode_view.xml b/product_print_zpl_barcode_cups/wizards/product_print_zpl_barcode_view.xml new file mode 100644 index 0000000..4c0072b --- /dev/null +++ b/product_print_zpl_barcode_cups/wizards/product_print_zpl_barcode_view.xml @@ -0,0 +1,24 @@ + + + + + + + product_print_zpl_barcode.CUPS.form + product.print.zpl.barcode + + + + {'invisible': 1} + + + + + + + +