mirror of
https://github.com/OCA/reporting-engine.git
synced 2025-02-16 16:30:38 +02:00
@@ -3,7 +3,8 @@
|
|||||||
|
|
||||||
import json
|
import json
|
||||||
|
|
||||||
from odoo.http import content_disposition, request, route
|
from odoo.http import content_disposition, request, route, serialize_exception
|
||||||
|
from odoo.tools import html_escape
|
||||||
from odoo.tools.safe_eval import safe_eval
|
from odoo.tools.safe_eval import safe_eval
|
||||||
|
|
||||||
from odoo.addons.web.controllers import main as report
|
from odoo.addons.web.controllers import main as report
|
||||||
@@ -13,6 +14,13 @@ class ReportController(report.ReportController):
|
|||||||
@route()
|
@route()
|
||||||
def report_routes(self, reportname, docids=None, converter=None, **data):
|
def report_routes(self, reportname, docids=None, converter=None, **data):
|
||||||
if converter == "xlsx":
|
if converter == "xlsx":
|
||||||
|
return self._report_routes_xlsx(reportname, docids, converter, **data)
|
||||||
|
return super(ReportController, self).report_routes(
|
||||||
|
reportname, docids, converter, **data
|
||||||
|
)
|
||||||
|
|
||||||
|
def _report_routes_xlsx(self, reportname, docids=None, converter=None, **data):
|
||||||
|
try:
|
||||||
report = request.env["ir.actions.report"]._get_report_from_name(reportname)
|
report = request.env["ir.actions.report"]._get_report_from_name(reportname)
|
||||||
context = dict(request.env.context)
|
context = dict(request.env.context)
|
||||||
if docids:
|
if docids:
|
||||||
@@ -42,6 +50,7 @@ class ReportController(report.ReportController):
|
|||||||
("Content-Disposition", content_disposition(report_name + ".xlsx")),
|
("Content-Disposition", content_disposition(report_name + ".xlsx")),
|
||||||
]
|
]
|
||||||
return request.make_response(xlsx, headers=xlsxhttpheaders)
|
return request.make_response(xlsx, headers=xlsxhttpheaders)
|
||||||
return super(ReportController, self).report_routes(
|
except Exception as e:
|
||||||
reportname, docids, converter, **data
|
se = serialize_exception(e)
|
||||||
)
|
error = {"code": 200, "message": "Odoo Server Error", "data": se}
|
||||||
|
return request.make_response(html_escape(json.dumps(error)))
|
||||||
|
|||||||
@@ -5,3 +5,4 @@
|
|||||||
* Graeme Gellatly <gdgellatly@gmail.com>
|
* Graeme Gellatly <gdgellatly@gmail.com>
|
||||||
* Cristian Salamea <cs@prisehub.com>
|
* Cristian Salamea <cs@prisehub.com>
|
||||||
* Rod Schouteden <rod.schouteden@dynapps.be>
|
* Rod Schouteden <rod.schouteden@dynapps.be>
|
||||||
|
* Eugene Molotov <molotov@it-projects.info>
|
||||||
|
|||||||
Reference in New Issue
Block a user