summaryrefslogtreecommitdiff
path: root/dynamic_accounts_report/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 /dynamic_accounts_report/controllers
parentb57188be371d36d96caac4b8d65a40745c0e972c (diff)
initial commit
Diffstat (limited to 'dynamic_accounts_report/controllers')
-rw-r--r--dynamic_accounts_report/controllers/__init__.py3
-rw-r--r--dynamic_accounts_report/controllers/controllers.py37
2 files changed, 40 insertions, 0 deletions
diff --git a/dynamic_accounts_report/controllers/__init__.py b/dynamic_accounts_report/controllers/__init__.py
new file mode 100644
index 0000000..457bae2
--- /dev/null
+++ b/dynamic_accounts_report/controllers/__init__.py
@@ -0,0 +1,3 @@
+# -*- coding: utf-8 -*-
+
+from . import controllers \ No newline at end of file
diff --git a/dynamic_accounts_report/controllers/controllers.py b/dynamic_accounts_report/controllers/controllers.py
new file mode 100644
index 0000000..d1d39a7
--- /dev/null
+++ b/dynamic_accounts_report/controllers/controllers.py
@@ -0,0 +1,37 @@
+# -*- coding: utf-8 -*-
+
+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 TBXLSXReportController(http.Controller):
+ @http.route('/dynamic_xlsx_reports', type='http', auth='user', methods=['POST'], csrf=False)
+ def get_report_xlsx(self, model, options, output_format, token, report_data, report_name, dfr_data, **kw):
+
+ uid = request.session.uid
+ report_obj = request.env[model].with_user(uid)
+ dfr_data = dfr_data
+ options = 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_dynamic_xlsx_report(options, response, report_data, dfr_data)
+ 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)))