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 -*-
|
# -*- coding: 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/>.
|
|
||||||
#
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
from . import report
|
from . import report
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# -*- encoding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
##############################################################################
|
##############################################################################
|
||||||
#
|
#
|
||||||
# Base Other Report Engines module for OpenERP/Odoo
|
# Base Other Report Engines module for Odoo
|
||||||
# Copyright (C) 2014 Akretion (http://www.akretion.com)
|
# Copyright (C) 2014-2015 Akretion (http://www.akretion.com)
|
||||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# 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
|
# Base Other Report Engines module for Odoo
|
||||||
# Copyright (C) 2014 Akretion (http://www.akretion.com)
|
# Copyright (C) 2014-2015 Akretion (http://www.akretion.com)
|
||||||
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
# @author Alexis de Lattre <alexis.delattre@akretion.com>
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# 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"
|
_inherit = "report"
|
||||||
|
|
||||||
def _get_report_from_name(self, cr, uid, report_name):
|
def _get_report_from_name(self, cr, uid, report_name):
|
||||||
|
|||||||
Reference in New Issue
Block a user