Add module aeroo_report_to_printer
Minor code update in base_other_report_engines
This commit is contained in:
3
aeroo_report_to_printer/__init__.py
Normal file
3
aeroo_report_to_printer/__init__.py
Normal file
@@ -0,0 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import printing
|
||||
50
aeroo_report_to_printer/__openerp__.py
Normal file
50
aeroo_report_to_printer/__openerp__.py
Normal file
@@ -0,0 +1,50 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Aeroo Report to Printer module for Odoo
|
||||
# Copyright (C) 2015 Akretion (http://www.akretion.com)
|
||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
|
||||
{
|
||||
'name': 'Aeroo Report to Printer',
|
||||
'version': '0.1',
|
||||
'category': 'Aeroo',
|
||||
'license': 'AGPL-3',
|
||||
'summary': 'Connect aeroo_report to base_report_to_printer',
|
||||
'description': """
|
||||
Aeroo Report to Printer
|
||||
=======================
|
||||
|
||||
There is a module *report_aeroo_direct_print* in https://github.com/aeroo/aeroo_reports that adds support for CUPS printing, but it's not as mature and clean as the OCA module *base_report_to_printer* from https://github.com/OCA/report-print-send.
|
||||
|
||||
And I want to use the best of both world : the best reporting engine (Aeroo) with the best CUPS printing module (base_report_to_printer). So I developped this small glue module.
|
||||
|
||||
You will find some sample code to use this module in the comments of the main Python file.
|
||||
|
||||
This module has been written by Alexis de Lattre from Akretion <alexis.delattre@akretion.com>.
|
||||
""",
|
||||
'author': 'Akretion',
|
||||
'website': 'http://www.akretion.com',
|
||||
'depends': [
|
||||
'base_report_to_printer',
|
||||
'report_aeroo',
|
||||
'base_other_report_engines',
|
||||
],
|
||||
'installable': True,
|
||||
}
|
||||
70
aeroo_report_to_printer/printing.py
Normal file
70
aeroo_report_to_printer/printing.py
Normal file
@@ -0,0 +1,70 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Aeroo Report to Printer module for Odoo
|
||||
# Copyright (C) 2015 Akretion (http://www.akretion.com)
|
||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from openerp import models, api, _
|
||||
from openerp.exceptions import Warning as UserError
|
||||
|
||||
|
||||
class PrintingPrinter(models.Model):
|
||||
_inherit = 'printing.printer'
|
||||
|
||||
@api.multi
|
||||
def aeroo_print_document(self, report_name, object_id, copies=1):
|
||||
'''
|
||||
Send an aeroo report to CUPS server for printing
|
||||
|
||||
Usage example :
|
||||
|
||||
Add this button in an inherit of the view 'stock.view_picking_form':
|
||||
<button name="print_delivery" type="object" states="done"
|
||||
string="Print 2 copies"/>
|
||||
|
||||
Add this code in the StockPicking class that inherit 'stock.picking'
|
||||
|
||||
@api.multi
|
||||
def print_delivery(self):
|
||||
if not self.env.user.printing_printer_id:
|
||||
raise UserError(_(
|
||||
"Missing 'Default Printer' in your preferences"))
|
||||
self.env.user.printing_printer_id.aeroo_print_document(
|
||||
'stock.report_picking', self.env.context['active_id'],
|
||||
copies=2)
|
||||
'''
|
||||
self.ensure_one()
|
||||
report = self.env['ir.actions.report.xml']._lookup_report(report_name)
|
||||
report_xml = self.env['report']._get_report_from_name(report_name)
|
||||
data = {
|
||||
'model': report_xml.model,
|
||||
'id': object_id,
|
||||
'report_type': 'aeroo',
|
||||
}
|
||||
aeroo_report_content, aeroo_report_format = report.create(
|
||||
self.env.cr, self.env.uid, [object_id],
|
||||
data, context=dict(self.env.context))
|
||||
if aeroo_report_format in ('pdf', 'raw'):
|
||||
self.print_document(
|
||||
report_name, aeroo_report_content, aeroo_report_format, copies)
|
||||
else:
|
||||
raise UserError(_(
|
||||
"Format '%s' is not supported for printing")
|
||||
% aeroo_report_format)
|
||||
return True
|
||||
@@ -1,23 +1,3 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Base Other Report Engines module for OpenERP/Odoo
|
||||
# Copyright (C) 2014 Akretion (http://www.akretion.com)
|
||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from . import report
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Base Other Report Engines module for OpenERP/Odoo
|
||||
# Copyright (C) 2014 Akretion (http://www.akretion.com)
|
||||
# Base Other Report Engines module for Odoo
|
||||
# Copyright (C) 2014-2015 Akretion (http://www.akretion.com)
|
||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# Base Other Report Engines module for OpenERP/Odoo
|
||||
# Copyright (C) 2014 Akretion (http://www.akretion.com)
|
||||
# Base Other Report Engines module for Odoo
|
||||
# Copyright (C) 2014-2015 Akretion (http://www.akretion.com)
|
||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
@@ -20,10 +20,10 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from openerp.osv import orm
|
||||
from openerp import models
|
||||
|
||||
|
||||
class Report(orm.Model):
|
||||
class Report(models.Model):
|
||||
_inherit = "report"
|
||||
|
||||
def _get_report_from_name(self, cr, uid, report_name):
|
||||
|
||||
Reference in New Issue
Block a user