summaryrefslogtreecommitdiff
path: root/account_reports_xlsx/controllers
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 17:14:58 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 17:14:58 +0700
commit1ca3b3df3421961caec3b747a364071c80f5c7da (patch)
tree6778a1f0f3f9b4c6e26d6d87ccde16e24da6c9d6 /account_reports_xlsx/controllers
parentb57188be371d36d96caac4b8d65a40745c0e972c (diff)
initial commit
Diffstat (limited to 'account_reports_xlsx/controllers')
-rw-r--r--account_reports_xlsx/controllers/__init__.py23
-rw-r--r--account_reports_xlsx/controllers/main.py56
2 files changed, 79 insertions, 0 deletions
diff --git a/account_reports_xlsx/controllers/__init__.py b/account_reports_xlsx/controllers/__init__.py
new file mode 100644
index 0000000..593cba3
--- /dev/null
+++ b/account_reports_xlsx/controllers/__init__.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+######################################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2020-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
+# Author: Cybrosys Technologies (odoo@cybrosys.com)
+#
+# This program is under the terms of the Odoo Proprietary License v1.0 (OPL-1)
+# It is forbidden to publish, distribute, sublicense, or sell copies of the Software
+# or modified copies of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+#
+########################################################################################
+
+from . import main
diff --git a/account_reports_xlsx/controllers/main.py b/account_reports_xlsx/controllers/main.py
new file mode 100644
index 0000000..3a886bf
--- /dev/null
+++ b/account_reports_xlsx/controllers/main.py
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+######################################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2020-TODAY Cybrosys Technologies(<https://www.cybrosys.com>).
+# Author: Cybrosys Technologies (odoo@cybrosys.com)
+#
+# This program is under the terms of the Odoo Proprietary License v1.0 (OPL-1)
+# It is forbidden to publish, distribute, sublicense, or sell copies of the Software
+# or modified copies of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+#
+########################################################################################
+
+import json
+from odoo import http
+from odoo.http import content_disposition, request
+from odoo.addons.web.controllers.main import _serialize_exception
+from odoo.tools import html_escape
+
+
+class XLSXReportController(http.Controller):
+
+ @http.route('/xlsx_reports', type='http', auth='user', methods=['POST'], csrf=False)
+ def get_report_xlsx(self, model, options, output_format, token, report_name, **kw):
+ uid = request.session.uid
+ report_obj = request.env[model].with_user(uid)
+ options = json.loads(options)
+ try:
+ if output_format == 'xlsx':
+ response = request.make_response(
+ None,
+ headers=[
+ ('Content-Type', 'application/vnd.ms-excel'),
+ ('Content-Disposition', content_disposition(report_name + '.xlsx'))
+ ]
+ )
+ report_obj.get_xlsx_report(options, response)
+ response.set_cookie('fileToken', token)
+ return response
+ 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))) \ No newline at end of file