diff --git a/excel_report_designer/excel_report_designer/README.rst b/excel_report_designer/excel_report_designer/README.rst deleted file mode 100644 index 1cf7ad081..000000000 --- a/excel_report_designer/excel_report_designer/README.rst +++ /dev/null @@ -1,40 +0,0 @@ -Excel Report Designer v16 -========================= -This module helps to create reports from various modules - -Configuration -============= -* No additional configurations needed - -Company -------- -* `Cybrosys Techno Solutions `__ - -Credits -------- -* Developers: Cybrosys Techno Solutions odoo@cybrosys.com - Version 16: Gayathri V @cybrosys - -Contacts --------- -* Mail Contact : odoo@cybrosys.com -* Website : https://cybrosys.com - -Bug Tracker ------------ -Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. - -Maintainer -========== -.. image:: https://cybrosys.com/images/logo.png - :target: https://cybrosys.com - -This module is maintained by Cybrosys Technologies. - -For support and more information, please visit `Our Website `__ - -Further information -=================== -HTML Description: ``__ - - diff --git a/excel_report_designer/excel_report_designer/__init__.py b/excel_report_designer/excel_report_designer/__init__.py deleted file mode 100644 index 55f9037ec..000000000 --- a/excel_report_designer/excel_report_designer/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################# -# -# Cybrosys Technologies Pvt. Ltd. -# -# Copyright (C) 2023-TODAY Cybrosys Technologies() -# Author: Cybrosys Techno Solutions() -# -# You can modify it under the terms of the GNU LESSER -# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. -# -# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE -# (LGPL v3) along with this program. -# If not, see . -# -############################################################################# -from . import models -from . import controllers diff --git a/excel_report_designer/excel_report_designer/__manifest__.py b/excel_report_designer/excel_report_designer/__manifest__.py deleted file mode 100644 index 5bb08f517..000000000 --- a/excel_report_designer/excel_report_designer/__manifest__.py +++ /dev/null @@ -1,48 +0,0 @@ -# -*- coding: utf-8 -*- -############################################################################# -# -# Cybrosys Technologies Pvt. Ltd. -# -# Copyright (C) 2023-TODAY Cybrosys Technologies() -# Author: Cybrosys Techno Solutions() -# -# You can modify it under the terms of the GNU LESSER -# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. -# -# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE -# (LGPL v3) along with this program. -# If not, see . -# -############################################################################# -{ - 'name': 'Excel Report Designer', - 'version': '16.0.1.0.0', - 'author': 'Cybrosys Techno Solutions', - 'company': 'Cybrosys Techno Solutions', - 'maintainer': 'Cybrosys Techno Solutions', - 'website': 'https://www.cybrosys.com', - 'category': 'Technical', - 'summary': 'This module is used to create reports for models and can be select the fields the user want to print.', - 'description': """Create Excel Reports for Any Models""", - 'depends': ['sale', 'purchase', 'account', 'base'], - 'data': [ - 'security/ir.model.access.csv', - 'views/excel_report_wizards.xml', - 'views/report_excel.xml', - ], - 'assets': { - 'web.assets_backend': [ - '/excel_report_designer/static/src/js/action_manager.js' - ], - }, - 'images': ['static/description/banner.png'], - 'license': 'AGPL-3', - 'installable': True, - 'auto_install': False, - 'application': False, -} diff --git a/excel_report_designer/excel_report_designer/controllers/__init__.py b/excel_report_designer/excel_report_designer/controllers/__init__.py deleted file mode 100644 index 645df28a2..000000000 --- a/excel_report_designer/excel_report_designer/controllers/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -"""excel report designer""" -# -*- coding: utf-8 -*- -############################################################################# -# -# Cybrosys Technologies Pvt. Ltd. -# -# Copyright (C) 2023-TODAY Cybrosys Technologies() -# Author: Cybrosys Techno Solutions() -# -# You can modify it under the terms of the GNU LESSER -# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. -# -# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE -# (LGPL v3) along with this program. -# If not, see . -# -############################################################################# -from . import main diff --git a/excel_report_designer/excel_report_designer/controllers/main.py b/excel_report_designer/excel_report_designer/controllers/main.py deleted file mode 100644 index 53dd90b23..000000000 --- a/excel_report_designer/excel_report_designer/controllers/main.py +++ /dev/null @@ -1,60 +0,0 @@ -"""excel_report""" -# -*- coding: utf-8 -*- -############################################################################# -# -# Cybrosys Technologies Pvt. Ltd. -# -# Copyright (C) 2023-TODAY Cybrosys Technologies() -# Author: Cybrosys Techno Solutions() -# -# You can modify it under the terms of the GNU LESSER -# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. -# -# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE -# (LGPL v3) along with this program. -# If not, see . -# -############################################################################# - -import json -from odoo import http -from odoo.http import content_disposition, request -from odoo.tools import html_escape - - -class XLSXReportController(http.Controller): - """This is used to call the xlsx report function""" - @http.route('/xlsx_reports', type='http', auth='user', methods=['POST'], - csrf=False) - def get_report_xlsx(self, model, options, output_format, report_name, **kw): - """this is used to call the function""" - uid = request.session.uid - report_obj = request.env[model].with_user(uid) - options = json.loads(options) - token = 'dummy-because-api-expects-one' - 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 = http.serialize_exception(e) - error = { - 'code': 200, - 'message': 'Odoo Server Error', - 'data': se - } - return request.make_response(html_escape(json.dumps(error))) diff --git a/excel_report_designer/excel_report_designer/doc/RELEASE_NOTES.md b/excel_report_designer/excel_report_designer/doc/RELEASE_NOTES.md deleted file mode 100644 index 910f67ae5..000000000 --- a/excel_report_designer/excel_report_designer/doc/RELEASE_NOTES.md +++ /dev/null @@ -1,11 +0,0 @@ -## Module - -#### 12.12.2022 -#### Version 16.0.1.0.0 -#### ADD -Initial Commit Excel Report Designer - - - - - diff --git a/excel_report_designer/excel_report_designer/models/__init__.py b/excel_report_designer/excel_report_designer/models/__init__.py deleted file mode 100644 index 7abaf68e4..000000000 --- a/excel_report_designer/excel_report_designer/models/__init__.py +++ /dev/null @@ -1,23 +0,0 @@ -"""report excel""" -# -*- coding: utf-8 -*- -############################################################################# -# -# Cybrosys Technologies Pvt. Ltd. -# -# Copyright (C) 2023-TODAY Cybrosys Technologies() -# Author: Cybrosys Techno Solutions() -# -# You can modify it under the terms of the GNU LESSER -# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. -# -# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE -# (LGPL v3) along with this program. -# If not, see . -# -############################################################################# -from . import select_report diff --git a/excel_report_designer/excel_report_designer/models/select_report.py b/excel_report_designer/excel_report_designer/models/select_report.py deleted file mode 100644 index ef3b33407..000000000 --- a/excel_report_designer/excel_report_designer/models/select_report.py +++ /dev/null @@ -1,536 +0,0 @@ -"""report excel""" -# -*- coding: utf-8 -*- -############################################################################# -# -# Cybrosys Technologies Pvt. Ltd. -# -# Copyright (C) 2023-TODAY Cybrosys Technologies() -# Author: Cybrosys Techno Solutions() -# -# You can modify it under the terms of the GNU LESSER -# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. -# -# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE -# (LGPL v3) along with this program. -# If not, see . -# -############################################################################# -from odoo import api, fields, models, _ - -try: - from odoo.tools.misc import xlsxwriter -except ImportError: - import xlsxwriter -import io -import json -import datetime -from odoo.tools import date_utils - - -class ReportExcel(models.Model): - """this is used to create the a binding action""" - _name = 'report.excel' - _description = "report excel" - _rec_name = 'name' - - name = fields.Char(string='Name', help='Name') - model_id = fields.Many2one('ir.model', string='Model', required=True, - ondelete="cascade", help="The binding model") - fields_ids = fields.Many2many('ir.model.fields', string='Fields', - required=True, ondelete="cascade", - help="the fields to be printed in the report") - date_field = fields.Many2one('ir.model.fields', string='Date Filter', - ondelete="cascade", - help="filter on the basis of date") - start_date = fields.Date(string='Start Date', help="start date") - end_date = fields.Date(string='End Date', help="end date") - field_order = fields.Char(default='[]', help="the field order") - action_button = fields.Boolean(default=False, string="Action", - help="visibility of action") - state = fields.Selection([ - ('code', 'Execute Python Code'), - ('object_create', 'Create a new Record'), - ('object_write', 'Update the Record'), - ('multi', 'Execute several actions')], string='Action To Do', - default='code', required=True, copy=True, - help="to execute the code on the basis") - binding_model_id = fields.Many2one('ir.model', ondelete="cascade", - string="Binding Model Id", - help="binding model id") - binding_type = fields.Selection([('action', 'Action'), - ('report', 'Report')], - required=True, default='action', - string="Binding Type", help="binding type") - ir_act_server_ref = fields.Many2one('ir.actions.act_window', readonly=True, - copy=False, string="Action Reference", - help="action reference") - - def print_report(self): - for rec in self: - data = { - 'report_name': rec.name, - 'model_name': rec.model_id.model, - 'fields_name': rec.fields_ids.mapped('name'), - 'field_label': rec.fields_ids.mapped('field_description'), - 'date_field': rec.date_field.name, - 'date_name': rec.date_field.field_description, - 'start_date': rec.start_date, - 'end_date': rec.end_date, - 'field_order': rec.field_order - } - return { - 'type': 'ir.actions.report', - 'data': {'model': 'report.excel', - 'options': json.dumps(data, - default=date_utils.json_default), - 'output_format': 'xlsx', - 'report_name': rec.name, - }, - 'report_type': 'stock_xlsx', - } - - def get_xlsx_report(self, data, response): - """this is used to print the report of all records""" - output = io.BytesIO() - workbook = xlsxwriter.Workbook(output, {'in_memory': True}) - sheet = workbook.add_worksheet() - # Formats - format1 = workbook.add_format( - {'font_size': 15, 'align': 'center', 'bold': True}) - format1.set_font_color('#000080') - format2 = workbook.add_format( - {'font_size': 11, 'bold': True, 'border': 1, 'bg_color': '#928E8E'}) - format4 = workbook.add_format( - {'font_size': 10, 'num_format': 'yyyy-m-d', 'bold': True}) - format5 = workbook.add_format({'font_size': 10, 'border': 1, 'text_wrap': True}) - format6 = workbook.add_format({'font_size': 10, 'bold': True}) - format8 = workbook.add_format({'font_size': 10, 'border': 1}) - format9 = workbook.add_format( - {'font_size': 10, 'num_format': 'yyyy-m-d'}) - format10 = workbook.add_format( - {'font_size': 10, 'num_format': 'yyyy-m-d', 'border': 1}) - - format2.set_align('center') - format4.set_align('right') - format6.set_align('right') - format8.set_align('left') - - sheet.merge_range(1, 1, 1, len(data['field_label']) + 1, - data['report_name'], format1) - sheet.write(2, 0, "Date :", format4) - sheet.write(2, 1, fields.Datetime.today(), format4) - if data['date_field']: - sheet.write(3, 0, data['date_name'], format4) - if data['start_date']: - sheet.write(3, 1, "From:", format4) - sheet.write(3, 2, data['start_date'], format9) - else: - sheet.write(3, 2, "", format9) - if data['end_date']: - sheet.write(3, 3, "To:", format4) - sheet.write(3, 4, data['end_date'], format9) - else: - sheet.write(3, 4, "", format9) - sl_no = 1 - sheet.write(5, 1, "SL No", format2) - row_num = 5 - col_num = 2 - order = data['field_order'].strip('][').split(', ') - for field_id in order: - field_name = self.env['ir.model.fields'].browse( - int(field_id)).field_description - sheet.write(row_num, col_num, field_name, format2) - col_num += 1 - row_num += 1 - records = [] - if data['date_field']: - if data['start_date'] and data['end_date']: - records = self.env[data['model_name']].search([ - (data['date_field'], '>=', data['start_date']), - (data['date_field'], '<=', data['end_date'])]) - elif data['start_date'] and not data['end_date']: - records = self.env[data['model_name']].search([ - (data['date_field'], '>=', data['start_date'])]) - elif not data['start_date'] and data['end_date']: - records = self.env[data['model_name']].search([ - (data['date_field'], '<=', data['end_date'])]) - else: - records = self.env[data['model_name']].search([]) - new_table = [] - for record in records: - order = data['field_order'].strip('][').split(', ') - record_dict = {} - for field_id in order: - field = self.env['ir.model.fields'].browse(int(field_id)) - field_name = field.name - field_type = self.env['ir.model.fields'].browse( - int(field_id)).ttype - if field_type in ['many2many']: - one2many_values = ', '.join(record[field_name].mapped('name')) - record_dict[field] = one2many_values - elif field_type in ['one2many']: - if record[field_name]: - o2m_list = [] - for rec in record[field_name]: - o2m_list.append(rec) - record_dict[field] = o2m_list - else: - record_dict[field] = [record[field_name]] - new_table.append(record_dict) - print('new_table',new_table) - for record in new_table: - col_num = 1 - sheet.write(row_num, col_num, sl_no, format5) - col_num += 1 - count = 1 - for field in record: - field_type = self.env['ir.model.fields'].browse(int(field.id)).ttype - if not field_type in ['one2many', 'many2many']: - try: - if isinstance(record[field][0], datetime.date): - sheet.write(row_num, col_num, record[field][0], format10) - elif isinstance(record[field][0], bool): - if not field: - sheet.write(row_num, col_num, " ", format5) - else: - sheet.write(row_num, col_num, "Yes", format5) - else: - print(record[field][0]) - sheet.write(row_num, col_num, record[field][0], format5) - except Exception as e: - if record[field][0]: - sheet.write(row_num, col_num, record[field][0].name_get()[0][1], - format5) - else: - sheet.write(row_num, col_num, "", - format5) - elif field_type == 'one2many': - sub_row_num = row_num - for x in record[field]: - new_count = 1 - try: - if isinstance(x.name, datetime.date): - sheet.write(sub_row_num, col_num, x.name, format10) - elif isinstance(x.name, bool): - if not field: - sheet.write(sub_row_num, col_num, " ", format5) - else: - sheet.write(sub_row_num, col_num, "Yes", format5) - else: - print(sub_row_num, col_num, x.name) - new_count+=1 - if new_count > count: - count = new_count - sheet.write(sub_row_num, col_num, x.name, format5) - except Exception as e: - if x: - sheet.write(sub_row_num, col_num, x.name_get()[0][1], format5) - else: - sheet.write(sub_row_num, col_num, "", format5) - sub_row_num += 1 - elif field_type == 'many2many': - if record[field]: - try: - if isinstance(record[field], datetime.date): - sheet.write(row_num, col_num, record[field][0], format10) - elif isinstance(record[field], bool): - if not field: - sheet.write(row_num, col_num, " ", format5) - else: - sheet.write(row_num, col_num, "Yes", format5) - else: - sheet.write(row_num, col_num, record[field], format5) - except Exception as e: - if record[field][0]: - sheet.write(row_num, col_num, record[field].name_get()[0][1], format5) - else: - sheet.write(row_num, col_num, "", format5) - col_num += 1 - sl_no += 1 - row_num+=1 - - for record in new_table: - col_num = 1 - sheet.write(row_num, col_num, sl_no, format5) - col_num += 1 - count = 1 - - for field in record: - field_type = self.env['ir.model.fields'].browse(int(field.id)).ttype - - if not field_type in ['one2many', 'many2many']: - try: - if isinstance(record[field][0], datetime.date): - sheet.write(row_num, col_num, record[field][0], format10) - elif isinstance(record[field][0], bool): - if not field: - sheet.write(row_num, col_num, " ", format5) - else: - sheet.write(row_num, col_num, "Yes", format5) - else: - sheet.write(row_num, col_num, record[field][0], format5) - except Exception as e: - if record[field][0]: - sheet.write(row_num, col_num, record[field][0].name_get()[0][1], format5) - else: - sheet.write(row_num, col_num, "", format5) - - elif field_type == 'one2many': - sub_row_num = row_num - for x in record[field]: - new_count = 1 - try: - if isinstance(x.name, datetime.date): - sheet.write(sub_row_num, col_num, x.name, format10) - elif isinstance(x.name, bool): - if not field: - sheet.write(sub_row_num, col_num, " ", format5) - else: - sheet.write(sub_row_num, col_num, "Yes", format5) - else: - new_count += 1 - if new_count > count: - count = new_count - sheet.write(sub_row_num, col_num, x.name, format5) - except Exception as e: - if x: - sheet.write(sub_row_num, col_num, x.name_get()[0][1], format5) - else: - sheet.write(sub_row_num, col_num, "", format5) - sub_row_num += 1 - - elif field_type == 'many2many': - if record[field]: - try: - if isinstance(record[field], datetime.date): - sheet.write(row_num, col_num, record[field][0], format10) - elif isinstance(record[field], bool): - if not field: - sheet.write(row_num, col_num, " ", format5) - else: - sheet.write(row_num, col_num, "Yes", format5) - else: - sheet.write(row_num, col_num, record[field], format5) - except Exception as e: - if record[field][0]: - sheet.write(row_num, col_num, record[field].name_get()[0][1], format5) - else: - sheet.write(row_num, col_num, "", format5) - col_num += 1 - - sl_no += 1 - row_num += count - workbook.close() - output.seek(0) - response.stream.write(output.read()) - output.close() - - def create_model_action(self): - """ Create a contextual action for each server action.""" - self.action_button = True - WindowAction = self.env['ir.actions.act_window'] - data = self.env['ir.model.data'] - for rec in self.browse(self._ids): - binding_model_id = rec.model_id.id - model_data_id = data._load_xmlid('excel_report_designer') - res_id = data.browse(model_data_id).res_id - button_name = _('Print Report (%s)') % rec.name - act_id = WindowAction.create({ - 'name': button_name, - 'type': 'ir.actions.act_window', - 'res_model': 'excel.report.wizards', - 'binding_model_id': binding_model_id, - 'context': "{'excel' : %d}" % (rec.id), - 'view_mode': 'form,tree', - 'view_id': res_id, - 'target': 'new', - }) - rec.write({ - 'ir_act_server_ref': act_id.id, - }) - return True - - def unlink_model_action(self): - """ Remove the contextual actions created for the server actions. """ - self.action_button = False - self.check_access_rights('write', raise_exception=True) - self.filtered('binding_model_id').write({'binding_model_id': False}) - return True - - @api.onchange('fields_ids') - def onchange_fields(self): - """this is used to find the fields of new models""" - self.fields_ids = [] - if self.fields_ids: - self.field_order = str(self.fields_ids._origin.ids) - - @api.onchange('model_id') - def onchange_model_id(self): - """this is used to return the fields""" - if self.model_id: - self.name = self.model_id.name + ' Report' - self.fields_ids = False - self.date_field = False - return { - 'domain': { - 'fields_ids': [('model_id', '=', self.model_id.id)], - 'date_field': [('model_id', '=', self.model_id.id), - ('ttype', 'in', ['date', 'datetime'])], - } - } - - -class excel_report_wizard(models.TransientModel): - """This is used to the wizard class""" - _name = "excel.report.wizards" - _description = "excel report wizard" - - def print_excel_report(self): - """this is used to do the report action""" - excel_report_id = self.env['report.excel'].browse( - self._context.get('excel')) - for rec in excel_report_id: - data = { - 'report_name': rec.name, - 'model_name': rec.model_id.model, - 'fields_name': rec.fields_ids.mapped('name'), - 'field_label': rec.fields_ids.mapped('field_description'), - 'date_field': rec.date_field.name, - 'date_name': rec.date_field.field_description, - 'start_date': rec.start_date, - 'end_date': rec.end_date, - 'field_order': rec.field_order, - 'active_model_id': self.env.context['active_ids'] - } - return { - 'type': 'ir.actions.report', - 'data': {'model': 'excel.report.wizards', - 'options': json.dumps(data, - default=date_utils.json_default), - 'output_format': 'xlsx', - 'report_name': rec.name, - }, - 'report_type': 'stock_xlsx', - } - - def get_xlsx_report(self, data, response): - """This is used to prin the report for selected records.""" - output = io.BytesIO() - workbook = xlsxwriter.Workbook(output, {'in_memory': True}) - sheet = workbook.add_worksheet() - # Formats - format1 = workbook.add_format( - {'font_size': 15, 'align': 'center', 'bold': True}) - format1.set_font_color('#000080') - format2 = workbook.add_format( - {'font_size': 11, 'bold': True, 'border': 1, 'bg_color': '#928E8E'}) - format4 = workbook.add_format( - {'font_size': 10, 'num_format': 'yyyy-m-d', 'bold': True}) - format5 = workbook.add_format({'font_size': 10, 'border': 1}) - format6 = workbook.add_format({'font_size': 10, 'bold': True}) - format8 = workbook.add_format({'font_size': 10, 'border': 1}) - format9 = workbook.add_format( - {'font_size': 10, 'num_format': 'yyyy-m-d'}) - format10 = workbook.add_format( - {'font_size': 10, 'num_format': 'yyyy-m-d', 'border': 1}) - format2.set_align('center') - format4.set_align('right') - format6.set_align('right') - format8.set_align('left') - sheet.merge_range(1, 1, 1, len(data['field_label']) + 1, - data['report_name'], format1) - sheet.write(2, 0, "Date :", format4) - sheet.write(2, 1, fields.Datetime.today(), format4) - if data['date_field']: - sheet.write(3, 0, data['date_name'], format4) - if data['start_date']: - sheet.write(3, 1, "From:", format4) - sheet.write(3, 2, data['start_date'], format9) - else: - sheet.write(3, 2, "", format9) - if data['end_date']: - sheet.write(3, 3, "To:", format4) - sheet.write(3, 4, data['end_date'], format9) - else: - sheet.write(3, 4, "", format9) - sl_no = 1 - sheet.write(5, 1, "SL No", format2) - row_num = 5 - col_num = 2 - order = data['field_order'].strip('][').split(', ') - for field_id in order: - field_name = self.env['ir.model.fields'].browse( - int(field_id)).field_description - sheet.write(row_num, col_num, field_name, format2) - col_num += 1 - row_num += 1 - records = [] - if data['date_field']: - if data['start_date'] and data['end_date']: - records = self.env[data['model_name']].search([ - (data['date_field'], '>=', data['start_date']), - ('id', 'in', data['active_model_id']), - (data['date_field'], '<=', data['end_date'])]) - elif data['start_date'] and not data['end_date']: - records = self.env[data['model_name']].search([ - (data['date_field'], '>=', data['start_date']), - ('id', 'in', data['active_model_id'])]) - elif not data['start_date'] and data['end_date']: - records = self.env[data['model_name']].search([ - (data['date_field'], '<=', data['end_date']), - ('id', 'in', data['active_model_id'])]) - else: - records = self.env[data['model_name']].search( - [('id', 'in', data['active_model_id'])]) - table_data = [] - for record in records: - lst = [] - order = data['field_order'].strip('][').split(', ') - for field_id in order: - field_name = self.env['ir.model.fields'].browse( - int(field_id)).name - field_type = self.env['ir.model.fields'].browse( - int(field_id)).ttype - if field_type in ['one2many', 'many2many']: - one2many_values = [] - for rec in record[field_name]: - one2many_values.append(rec.name) - lst.append(', '.join(one2many_values)) - else: - lst.append(record[field_name]) - table_data.append(lst) - for record in table_data: - col_num = 1 - sheet.write(row_num, col_num, sl_no, format5) - col_num += 1 - for field in record: - try: - if isinstance(field, datetime.date): - sheet.write(row_num, col_num, field, format10) - elif isinstance(field, bool): - if not field: - sheet.write(row_num, col_num, " ", format5) - else: - sheet.write(row_num, col_num, "Yes", format5) - else: - sheet.write(row_num, col_num, field, format5) - except Exception as e: - if field: - sheet.write(row_num, col_num, field.name_get()[0][1], - format5) - else: - sheet.write(row_num, col_num, "", - format5) - col_num += 1 - sl_no += 1 - row_num += 1 - - workbook.close() - output.seek(0) - response.stream.write(output.read()) - output.close() diff --git a/excel_report_designer/excel_report_designer/security/ir.model.access.csv b/excel_report_designer/excel_report_designer/security/ir.model.access.csv deleted file mode 100644 index 204913895..000000000 --- a/excel_report_designer/excel_report_designer/security/ir.model.access.csv +++ /dev/null @@ -1,3 +0,0 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_excel_report_wizard,excel.report.wizards,model_excel_report_wizards,base.group_user,1,1,1,1 -access_report_excel,report.excel,model_report_excel,base.group_user,1,1,1,1 \ No newline at end of file diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/check.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/check.png deleted file mode 100644 index c8e85f51d..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/check.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/chevron.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/chevron.png deleted file mode 100644 index 2089293d6..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/chevron.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/cogs.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/cogs.png deleted file mode 100644 index 95d0bad62..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/cogs.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/consultation.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/consultation.png deleted file mode 100644 index 8319d4baa..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/consultation.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/ecom-black.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/ecom-black.png deleted file mode 100644 index a9385ff13..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/ecom-black.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/education-black.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/education-black.png deleted file mode 100644 index 3eb09b27b..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/education-black.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/hotel-black.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/hotel-black.png deleted file mode 100644 index 130f613be..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/hotel-black.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/license.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/license.png deleted file mode 100644 index a5869797e..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/license.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/lifebuoy.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/lifebuoy.png deleted file mode 100644 index 658d56ccc..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/lifebuoy.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/logo.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/logo.png deleted file mode 100644 index 478462d3e..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/logo.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/manufacturing-black.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/manufacturing-black.png deleted file mode 100644 index 697eb0e9f..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/manufacturing-black.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/pos-black.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/pos-black.png deleted file mode 100644 index 97c0f90c1..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/pos-black.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/puzzle.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/puzzle.png deleted file mode 100644 index 65cf854e7..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/puzzle.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/restaurant-black.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/restaurant-black.png deleted file mode 100644 index 4a35eb939..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/restaurant-black.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/service-black.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/service-black.png deleted file mode 100644 index 301ab51cb..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/service-black.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/trading-black.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/trading-black.png deleted file mode 100644 index 9398ba2f1..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/trading-black.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/training.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/training.png deleted file mode 100644 index 884ca024d..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/training.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/update.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/update.png deleted file mode 100644 index ecbc5a01a..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/update.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/user.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/user.png deleted file mode 100644 index 6ffb23d9f..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/user.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/icons/wrench.png b/excel_report_designer/excel_report_designer/static/description/assets/icons/wrench.png deleted file mode 100644 index 6c04dea0f..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/icons/wrench.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/modules/1.png b/excel_report_designer/excel_report_designer/static/description/assets/modules/1.png deleted file mode 100644 index 86d8d95b1..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/modules/1.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/modules/2.png b/excel_report_designer/excel_report_designer/static/description/assets/modules/2.png deleted file mode 100644 index 2c43716d5..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/modules/2.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/modules/3.png b/excel_report_designer/excel_report_designer/static/description/assets/modules/3.png deleted file mode 100644 index 1c019bdd8..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/modules/3.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/modules/4.png b/excel_report_designer/excel_report_designer/static/description/assets/modules/4.png deleted file mode 100644 index 3fae4631e..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/modules/4.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/modules/5.png b/excel_report_designer/excel_report_designer/static/description/assets/modules/5.png deleted file mode 100644 index 5238bdeab..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/modules/5.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/modules/6.png b/excel_report_designer/excel_report_designer/static/description/assets/modules/6.png deleted file mode 100644 index 492980ad0..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/modules/6.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/hero.gif b/excel_report_designer/excel_report_designer/static/description/assets/screenshots/hero.gif deleted file mode 100644 index abb52cae0..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/hero.gif and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image1.png b/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image1.png deleted file mode 100644 index df17af9ff..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image1.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image10.png b/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image10.png deleted file mode 100644 index 78ceb2138..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image10.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image11.png b/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image11.png deleted file mode 100644 index 868a98032..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image11.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image12.png b/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image12.png deleted file mode 100644 index 5be850b23..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image12.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image13.png b/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image13.png deleted file mode 100644 index c6a99da9b..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image13.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image2.png b/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image2.png deleted file mode 100644 index d90890d6a..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image2.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image3.png b/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image3.png deleted file mode 100644 index b65288daa..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image3.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image4.png b/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image4.png deleted file mode 100644 index 0021e29e1..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image4.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image5.png b/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image5.png deleted file mode 100644 index 42937c6f9..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image5.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image7.png b/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image7.png deleted file mode 100644 index 9dc92de17..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image7.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image8.png b/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image8.png deleted file mode 100644 index 55e353405..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/assets/screenshots/image8.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/banner.png b/excel_report_designer/excel_report_designer/static/description/banner.png deleted file mode 100644 index 79ee4b62d..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/banner.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/icon.png b/excel_report_designer/excel_report_designer/static/description/icon.png deleted file mode 100644 index 4b28923d2..000000000 Binary files a/excel_report_designer/excel_report_designer/static/description/icon.png and /dev/null differ diff --git a/excel_report_designer/excel_report_designer/static/description/index.html b/excel_report_designer/excel_report_designer/static/description/index.html deleted file mode 100644 index 407094cd7..000000000 --- a/excel_report_designer/excel_report_designer/static/description/index.html +++ /dev/null @@ -1,656 +0,0 @@ -
-
-
-
- -
-
-
- Community -
-
- Enterprise -
- -
-
-
-
- -
-
-
-

- Excel Report Designer

-

- Create Customised Excel Reports for Any Models -

- -
-
- - - -
-
-

- Overview -

-
- -
-

- In this Excel Report Designer module, we can create reports in XLSX format for any model with - any fields in the model. We can also filter the report based on the date, using any date field - in the model. -

-
-
- - -
-
-

- Features -

-
- -
-
- -
-
-

- Fully configurable XLSX reports

-
-
- -
-
- -
-
-

- Filter report data based on any date field

-
-
- -
-
- -
-
-

- Custom report name

-
- -
-
- -
-
-

- Reports menu under the action menu.

-
- -
- - -
- -
-
-

- Screenshots -

-
-
-

- Report Configuration

-

- The reports can be configured and printed using the 'Excel Report Designer' menu at Settings. - Select the desired model on which you want to create report, select the required fields - and filter using any of the date field in the model.

- -
- -
-

- Configure The Report Of Invoice.

-

-

- -
-
-

- Configure The Report Of Project.

-

-

- -
- -
-

- Print report from the configuration form and also add as a action menu.

-

-

- -
- -
-

- Print report from the configuration form and also add as a action menu.

-

-

- -
- - - -
-

- Print Report.

-

-

- -
- - -
-

- Print the report in the corresponding model.

- -
- -
-

- Confirmation wizard for printing the report.

- -
- - -
-

- XLXS Report.

- -
- -
-

- XLXS Report.

- -
-
-

- XLXS Report.

- -
- -
- -
-
-

Suggested Products

-
- - -
-
- - - -
-
-
-

Our Services

-
-
- -
-
- -
-
- Odoo - Customization
-
- -
-
- -
-
- Odoo - Implementation
-
- -
-
- -
-
- Odoo - Support
-
- - -
-
- -
-
- Hire - Odoo - Developer
-
- -
-
- -
-
- Odoo - Integration
-
- -
-
- -
-
- Odoo - Migration
-
- - -
-
- -
-
- Odoo - Consultancy
-
- -
-
- -
-
- Odoo - Implementation
-
- -
-
- -
-
- Odoo - Licensing Consultancy
-
-
-
- - - -
-
-
-

Our Industries

-
-
- -
-
- -
- Trading -
-

- Easily procure - and - sell your products

-
-
- -
-
- -
- POS -
-

- Easy - configuration - and convivial experience

-
-
- -
-
- -
- Education -
-

- A platform for - educational management

-
-
- -
-
- -
- Manufacturing -
-

- Plan, track and - schedule your operations

-
-
- -
-
- -
- E-commerce & Website -
-

- Mobile - friendly, - awe-inspiring product pages

-
-
- -
-
- -
- Service Management -
-

- Keep track of - services and invoice

-
-
- -
-
- -
- Restaurant -
-

- Run your bar or - restaurant methodically

-
-
- -
-
- -
- Hotel Management -
-

- An - all-inclusive - hotel management application

-
-
- -
-
- - - - - -
-
-
-

Need Help?

-
-
-
- - -
- -
- - -
- -
- -
- -
-
- -
- -
- -
-
- -
-
-
- - -
\ No newline at end of file diff --git a/excel_report_designer/excel_report_designer/static/src/js/action_manager.js b/excel_report_designer/excel_report_designer/static/src/js/action_manager.js deleted file mode 100644 index 2c24ca836..000000000 --- a/excel_report_designer/excel_report_designer/static/src/js/action_manager.js +++ /dev/null @@ -1,21 +0,0 @@ -/** @odoo-module */ -import { registry } from "@web/core/registry"; -import { download } from "@web/core/network/download"; -import framework from 'web.framework'; -import session from 'web.session'; -//this is used to call the controller and also passes the report data. -registry.category("ir.actions.report handlers").add("xlsx", async (action) => { - if (action.report_type === 'stock_xlsx') { - framework.blockUI(); - var self = this; - var def = $.Deferred(); - session.get_file({ - url: '/xlsx_reports', - data: action.data, - success: def.resolve.bind(def), - error: (error) => self.call('crash_manager', 'rpc_error', error), - complete: framework.unblockUI, - }); - return def; - } -}); diff --git a/excel_report_designer/excel_report_designer/views/excel_report_wizards.xml b/excel_report_designer/excel_report_designer/views/excel_report_wizards.xml deleted file mode 100644 index 2220c1450..000000000 --- a/excel_report_designer/excel_report_designer/views/excel_report_wizards.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - excel.report.wizards.view.form - excel.report.wizards - -
-

Do you want to print the report??

-
-
-
-
-
-
\ No newline at end of file diff --git a/excel_report_designer/excel_report_designer/views/report_excel.xml b/excel_report_designer/excel_report_designer/views/report_excel.xml deleted file mode 100644 index ec55ecf81..000000000 --- a/excel_report_designer/excel_report_designer/views/report_excel.xml +++ /dev/null @@ -1,81 +0,0 @@ - - - - - report.excel.view.form - report.excel - 20 - -
-
-
- - - -
-
-
-

- - - -

-
- - - - - The column order will be as selected in the below - table - - - - - - - - - - - - - - - - - - - - -
- -
-
- - Select Report - report.excel - tree,form - - - - -
\ No newline at end of file