diff --git a/addons/report/__openerp__.py b/addons/report/__openerp__.py index 4b51a21e9df..246fcb90689 100644 --- a/addons/report/__openerp__.py +++ b/addons/report/__openerp__.py @@ -13,6 +13,7 @@ Report 'data/report_paperformat.xml', 'security/ir.model.access.csv', 'views/report.xml', + 'views/ir_actions.xml', ], 'installable': True, 'auto_install': True, diff --git a/addons/report/controllers/main.py b/addons/report/controllers/main.py index 57e4eaab38b..3672cba8020 100644 --- a/addons/report/controllers/main.py +++ b/addons/report/controllers/main.py @@ -4,8 +4,10 @@ from openerp.addons.web.http import Controller, route, request from openerp.addons.web.controllers.main import _serialize_exception, content_disposition from openerp.tools import html_escape +from openerp.tools.safe_eval import safe_eval as eval import json +import time from werkzeug import exceptions, url_decode from werkzeug.test import Client from werkzeug.wrappers import BaseResponse @@ -102,6 +104,10 @@ class ReportController(Controller): cr, uid = request.cr, request.uid report = request.registry['report']._get_report_from_name(cr, uid, reportname) filename = "%s.%s" % (report.name, "pdf") + ids = [int(x) for x in docids.split(",")] + obj = request.env[report.model].browse(ids) + if report.print_report_name and not len(obj) > 1: + filename = eval(report.print_report_name, {'object': obj, 'time': time}) response.headers.add('Content-Disposition', content_disposition(filename)) response.set_cookie('fileToken', token) return response diff --git a/addons/report/models/__init__.py b/addons/report/models/__init__.py index 895802e57d4..337f2498e33 100644 --- a/addons/report/models/__init__.py +++ b/addons/report/models/__init__.py @@ -1,3 +1,5 @@ +import abstract_report +import ir_actions import report import report_paperformat import abstract_report diff --git a/addons/report/models/ir_actions.py b/addons/report/models/ir_actions.py new file mode 100644 index 00000000000..23dac2d60a2 --- /dev/null +++ b/addons/report/models/ir_actions.py @@ -0,0 +1,6 @@ +from openerp import models, fields + +class Actions(models.Model): + _inherit = 'ir.actions.report.xml' + + print_report_name = fields.Char('Printed Report Name', help="This is the filename of the report going to download. Keep empty to not change the report filename. You can use a python expression with the object and time variables.") diff --git a/addons/report/views/ir_actions.xml b/addons/report/views/ir_actions.xml new file mode 100644 index 00000000000..4596177741f --- /dev/null +++ b/addons/report/views/ir_actions.xml @@ -0,0 +1,18 @@ + + + + + + ir.actions.report.xml.form.inherit + + ir.actions.report.xml + + + + + + + + + + \ No newline at end of file