From ae19ae72553eab953c046a71488d6fa7da676aa4 Mon Sep 17 00:00:00 2001 From: Elouan Date: Mon, 9 Sep 2019 16:13:40 +0200 Subject: [PATCH] Report controller not needed anymore in 12.0 for beesdoo_base --- beesdoo_base/controllers/__init__.py | 1 - beesdoo_base/controllers/report.py | 72 ---------------------------- 2 files changed, 73 deletions(-) delete mode 100644 beesdoo_base/controllers/__init__.py delete mode 100644 beesdoo_base/controllers/report.py diff --git a/beesdoo_base/controllers/__init__.py b/beesdoo_base/controllers/__init__.py deleted file mode 100644 index 0e90f6f..0000000 --- a/beesdoo_base/controllers/__init__.py +++ /dev/null @@ -1 +0,0 @@ -# from . import report diff --git a/beesdoo_base/controllers/report.py b/beesdoo_base/controllers/report.py deleted file mode 100644 index db16d4b..0000000 --- a/beesdoo_base/controllers/report.py +++ /dev/null @@ -1,72 +0,0 @@ -# Part of Odoo. See LICENSE file for full copyright and licensing details. - -from odoo.addons.web.http import Controller, route, request -from odoo.addons.web.controllers.main import _serialize_exception, content_disposition -from odoo.tools import html_escape - -import json -import time -from werkzeug import url_decode -from werkzeug.test import Client -from werkzeug.wrappers import BaseResponse -from werkzeug.datastructures import Headers - -from odoo.addons.report.controllers.main import ReportController -from odoo.tools.safe_eval import safe_eval - - -class ReportCustom(ReportController): - - @route(['/report/download'], type='http', auth="user") - def report_download(self, data, token): - """This function is used by 'qwebactionmanager.js' in order to trigger the download of - a pdf/controller report. - - :param data: a javascript array JSON.stringified containg report internal url ([0]) and - type [1] - :returns: Response with a filetoken cookie and an attachment header - """ - requestcontent = json.loads(data) - url, type = requestcontent[0], requestcontent[1] - try: - if type == 'qweb-pdf': - reportname = url.split('/report/pdf/')[1].split('?')[0] - - docids = None - if '/' in reportname: - reportname, docids = reportname.split('/') - - if docids: - # Generic report: - response = self.report_routes(reportname, docids=docids, converter='pdf') - else: - # Particular report: - data = list(url_decode(url.split('?')[1]).items()) # decoding the args represented in JSON - response = self.report_routes(reportname, converter='pdf', **dict(data)) - - cr, uid = request.cr, request.uid - report = request.registry['report']._get_report_from_name(cr, uid, reportname) - filename = "%s.%s" % (report.name, "pdf") - if docids: - ids = [int(x) for x in docids.split(",")] - obj = request.env[report.model].browse(ids) - if report.attachment and not len(obj) > 1: - filename = safe_eval(report.attachment, {'object': obj, 'time': time}) - response.headers.add('Content-Disposition', content_disposition(filename)) - response.set_cookie('fileToken', token) - return response - elif type =='controller': - reqheaders = Headers(request.httprequest.headers) - response = Client(request.httprequest.app, BaseResponse).get(url, headers=reqheaders, follow_redirects=True) - response.set_cookie('fileToken', token) - return response - else: - return - except Exception as e: - se = _serialize_exception(e) - error = { - 'code': 200, - 'message': "Odoo Server Error", - 'data': se - } - return request.make_response(html_escape(json.dumps(error)))