From 47afd3e51706e763aac6bb3eaeada5c30f33adc8 Mon Sep 17 00:00:00 2001 From: AjmalCybro Date: Wed, 10 Jan 2024 16:39:03 +0530 Subject: [PATCH] Jan 10 [ADD] : Initial Commit 'purchase_format_editor' --- purchase_format_editor/README.rst | 42 ++ purchase_format_editor/__init__.py | 23 + purchase_format_editor/__manifest__.py | 60 ++ .../controllers/__init__.py | 22 + .../controllers/purchase_format_editor.py | 47 ++ .../data/doc_layout_purchase_data.xml | 30 + purchase_format_editor/doc/RELEASE_NOTES.md | 6 + purchase_format_editor/models/__init__.py | 25 + .../models/base_document_layout.py | 82 +++ .../models/doc_layout_purchase.py | 85 +++ .../models/purchase_order.py | 39 + purchase_format_editor/models/res_company.py | 38 + ...chase_order_custom_quotation_templates.xml | 271 +++++++ .../purchase_order_custom_templates.xml | 364 ++++++++++ .../purchase_order_fantacy_templates.xml | 298 ++++++++ .../purchase_order_old_standard_templates.xml | 293 ++++++++ ...hase_order_quotation_fantacy_templates.xml | 216 ++++++ ...order_quotation_old_standard_templates.xml | 203 ++++++ .../report/purchase_order_templates.xml | 188 +++++ .../report/purchase_quotation_templates.xml | 78 ++ .../security/ir.model.access.csv | 2 + .../static/description/assets/icons/check.png | Bin 0 -> 3676 bytes .../description/assets/icons/chevron.png | Bin 0 -> 310 bytes .../static/description/assets/icons/cogs.png | Bin 0 -> 1377 bytes .../description/assets/icons/consultation.png | Bin 0 -> 1458 bytes .../description/assets/icons/ecom-black.png | Bin 0 -> 576 bytes .../assets/icons/education-black.png | Bin 0 -> 733 bytes .../description/assets/icons/hotel-black.png | Bin 0 -> 911 bytes .../description/assets/icons/license.png | Bin 0 -> 1095 bytes .../description/assets/icons/lifebuoy.png | Bin 0 -> 1199 bytes .../static/description/assets/icons/logo.png | Bin 0 -> 3452 bytes .../assets/icons/manufacturing-black.png | Bin 0 -> 673 bytes .../description/assets/icons/pos-black.png | Bin 0 -> 878 bytes .../description/assets/icons/puzzle.png | Bin 0 -> 653 bytes .../assets/icons/restaurant-black.png | Bin 0 -> 905 bytes .../assets/icons/service-black.png | Bin 0 -> 839 bytes .../assets/icons/trading-black.png | Bin 0 -> 427 bytes .../description/assets/icons/training.png | Bin 0 -> 627 bytes .../description/assets/icons/update.png | Bin 0 -> 1225 bytes .../static/description/assets/icons/user.png | Bin 0 -> 988 bytes .../description/assets/icons/wrench.png | Bin 0 -> 1205 bytes .../description/assets/misc/categories.png | Bin 0 -> 1532 bytes .../description/assets/misc/check-box.png | Bin 0 -> 1118 bytes .../description/assets/misc/compass.png | Bin 0 -> 1931 bytes .../static/description/assets/misc/config.png | Bin 0 -> 2298 bytes .../description/assets/misc/corporate.png | Bin 0 -> 1177 bytes .../assets/misc/customer-support.png | Bin 0 -> 2136 bytes .../description/assets/misc/cybrosys-logo.png | Bin 0 -> 4496 bytes .../description/assets/misc/features.png | Bin 0 -> 589 bytes .../static/description/assets/misc/logo.png | Bin 0 -> 3452 bytes .../description/assets/misc/pictures.png | Bin 0 -> 1692 bytes .../description/assets/misc/pie-chart.png | Bin 0 -> 2338 bytes .../description/assets/misc/right-arrow.png | Bin 0 -> 967 bytes .../static/description/assets/misc/star.png | Bin 0 -> 1642 bytes .../description/assets/misc/support.png | Bin 0 -> 3892 bytes .../description/assets/misc/whatsapp.png | Bin 0 -> 5097 bytes .../modules/employee_purchase_requisition.png | Bin 0 -> 86124 bytes .../description/assets/modules/merge_rfq.png | Bin 0 -> 72262 bytes .../assets/modules/product_brand_purchase.png | Bin 0 -> 84304 bytes .../modules/product_multi_vendor_update.png | Bin 0 -> 135248 bytes .../modules/purchase_product_history.png | Bin 0 -> 85545 bytes .../assets/modules/vendor_portal_odoo.png | Bin 0 -> 121349 bytes .../description/assets/screenshots/1.png | Bin 0 -> 168269 bytes .../description/assets/screenshots/2.png | Bin 0 -> 123028 bytes .../description/assets/screenshots/3.png | Bin 0 -> 58140 bytes .../description/assets/screenshots/4.png | Bin 0 -> 49498 bytes .../description/assets/screenshots/5.png | Bin 0 -> 58062 bytes .../description/assets/screenshots/6.png | Bin 0 -> 69210 bytes .../description/assets/screenshots/conf.png | Bin 0 -> 137907 bytes .../assets/screenshots/default.png | Bin 0 -> 78886 bytes .../description/assets/screenshots/hero.gif | Bin 0 -> 195103 bytes .../assets/screenshots/modern_modern.png | Bin 0 -> 80477 bytes .../assets/screenshots/normal_modern.png | Bin 0 -> 75025 bytes .../assets/screenshots/old_standard.png | Bin 0 -> 64607 bytes .../assets/screenshots/screenshot_1.png | Bin 0 -> 184620 bytes .../assets/screenshots/screenshot_2.png | Bin 0 -> 127927 bytes .../static/description/banner.png | Bin 0 -> 108063 bytes .../static/description/icon.png | Bin 0 -> 16350 bytes .../static/description/index.html | 672 ++++++++++++++++++ .../views/base_document_layout_views.xml | 26 + .../views/doc_layout_purchase_views.xml | 60 ++ .../purchase_order_default_templates.xml | 212 ++++++ .../views/purchase_order_modern_templates.xml | 246 +++++++ .../views/purchase_order_normal_templates.xml | 231 ++++++ .../views/purchase_order_old_templates.xml | 251 +++++++ 85 files changed, 4110 insertions(+) create mode 100644 purchase_format_editor/README.rst create mode 100644 purchase_format_editor/__init__.py create mode 100644 purchase_format_editor/__manifest__.py create mode 100644 purchase_format_editor/controllers/__init__.py create mode 100644 purchase_format_editor/controllers/purchase_format_editor.py create mode 100644 purchase_format_editor/data/doc_layout_purchase_data.xml create mode 100644 purchase_format_editor/doc/RELEASE_NOTES.md create mode 100644 purchase_format_editor/models/__init__.py create mode 100644 purchase_format_editor/models/base_document_layout.py create mode 100644 purchase_format_editor/models/doc_layout_purchase.py create mode 100644 purchase_format_editor/models/purchase_order.py create mode 100644 purchase_format_editor/models/res_company.py create mode 100644 purchase_format_editor/report/purchase_order_custom_quotation_templates.xml create mode 100644 purchase_format_editor/report/purchase_order_custom_templates.xml create mode 100644 purchase_format_editor/report/purchase_order_fantacy_templates.xml create mode 100644 purchase_format_editor/report/purchase_order_old_standard_templates.xml create mode 100644 purchase_format_editor/report/purchase_order_quotation_fantacy_templates.xml create mode 100644 purchase_format_editor/report/purchase_order_quotation_old_standard_templates.xml create mode 100644 purchase_format_editor/report/purchase_order_templates.xml create mode 100644 purchase_format_editor/report/purchase_quotation_templates.xml create mode 100644 purchase_format_editor/security/ir.model.access.csv create mode 100644 purchase_format_editor/static/description/assets/icons/check.png create mode 100644 purchase_format_editor/static/description/assets/icons/chevron.png create mode 100644 purchase_format_editor/static/description/assets/icons/cogs.png create mode 100644 purchase_format_editor/static/description/assets/icons/consultation.png create mode 100644 purchase_format_editor/static/description/assets/icons/ecom-black.png create mode 100644 purchase_format_editor/static/description/assets/icons/education-black.png create mode 100644 purchase_format_editor/static/description/assets/icons/hotel-black.png create mode 100644 purchase_format_editor/static/description/assets/icons/license.png create mode 100644 purchase_format_editor/static/description/assets/icons/lifebuoy.png create mode 100644 purchase_format_editor/static/description/assets/icons/logo.png create mode 100644 purchase_format_editor/static/description/assets/icons/manufacturing-black.png create mode 100644 purchase_format_editor/static/description/assets/icons/pos-black.png create mode 100644 purchase_format_editor/static/description/assets/icons/puzzle.png create mode 100644 purchase_format_editor/static/description/assets/icons/restaurant-black.png create mode 100644 purchase_format_editor/static/description/assets/icons/service-black.png create mode 100644 purchase_format_editor/static/description/assets/icons/trading-black.png create mode 100644 purchase_format_editor/static/description/assets/icons/training.png create mode 100644 purchase_format_editor/static/description/assets/icons/update.png create mode 100644 purchase_format_editor/static/description/assets/icons/user.png create mode 100644 purchase_format_editor/static/description/assets/icons/wrench.png create mode 100755 purchase_format_editor/static/description/assets/misc/categories.png create mode 100755 purchase_format_editor/static/description/assets/misc/check-box.png create mode 100755 purchase_format_editor/static/description/assets/misc/compass.png create mode 100755 purchase_format_editor/static/description/assets/misc/config.png create mode 100755 purchase_format_editor/static/description/assets/misc/corporate.png create mode 100755 purchase_format_editor/static/description/assets/misc/customer-support.png create mode 100644 purchase_format_editor/static/description/assets/misc/cybrosys-logo.png create mode 100755 purchase_format_editor/static/description/assets/misc/features.png create mode 100755 purchase_format_editor/static/description/assets/misc/logo.png create mode 100755 purchase_format_editor/static/description/assets/misc/pictures.png create mode 100755 purchase_format_editor/static/description/assets/misc/pie-chart.png create mode 100755 purchase_format_editor/static/description/assets/misc/right-arrow.png create mode 100755 purchase_format_editor/static/description/assets/misc/star.png create mode 100755 purchase_format_editor/static/description/assets/misc/support.png create mode 100755 purchase_format_editor/static/description/assets/misc/whatsapp.png create mode 100644 purchase_format_editor/static/description/assets/modules/employee_purchase_requisition.png create mode 100644 purchase_format_editor/static/description/assets/modules/merge_rfq.png create mode 100644 purchase_format_editor/static/description/assets/modules/product_brand_purchase.png create mode 100644 purchase_format_editor/static/description/assets/modules/product_multi_vendor_update.png create mode 100644 purchase_format_editor/static/description/assets/modules/purchase_product_history.png create mode 100644 purchase_format_editor/static/description/assets/modules/vendor_portal_odoo.png create mode 100644 purchase_format_editor/static/description/assets/screenshots/1.png create mode 100644 purchase_format_editor/static/description/assets/screenshots/2.png create mode 100644 purchase_format_editor/static/description/assets/screenshots/3.png create mode 100644 purchase_format_editor/static/description/assets/screenshots/4.png create mode 100644 purchase_format_editor/static/description/assets/screenshots/5.png create mode 100644 purchase_format_editor/static/description/assets/screenshots/6.png create mode 100644 purchase_format_editor/static/description/assets/screenshots/conf.png create mode 100644 purchase_format_editor/static/description/assets/screenshots/default.png create mode 100644 purchase_format_editor/static/description/assets/screenshots/hero.gif create mode 100644 purchase_format_editor/static/description/assets/screenshots/modern_modern.png create mode 100644 purchase_format_editor/static/description/assets/screenshots/normal_modern.png create mode 100644 purchase_format_editor/static/description/assets/screenshots/old_standard.png create mode 100644 purchase_format_editor/static/description/assets/screenshots/screenshot_1.png create mode 100644 purchase_format_editor/static/description/assets/screenshots/screenshot_2.png create mode 100644 purchase_format_editor/static/description/banner.png create mode 100644 purchase_format_editor/static/description/icon.png create mode 100644 purchase_format_editor/static/description/index.html create mode 100644 purchase_format_editor/views/base_document_layout_views.xml create mode 100644 purchase_format_editor/views/doc_layout_purchase_views.xml create mode 100644 purchase_format_editor/views/purchase_order_default_templates.xml create mode 100644 purchase_format_editor/views/purchase_order_modern_templates.xml create mode 100644 purchase_format_editor/views/purchase_order_normal_templates.xml create mode 100644 purchase_format_editor/views/purchase_order_old_templates.xml diff --git a/purchase_format_editor/README.rst b/purchase_format_editor/README.rst new file mode 100644 index 000000000..9d00ec7fc --- /dev/null +++ b/purchase_format_editor/README.rst @@ -0,0 +1,42 @@ +.. image:: https://img.shields.io/badge/license-LGPL--3-green.svg + :target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: LGPL-3 + +Purchase Report Format Editor +============================= +This module allows to edit the style of the purchase pdf reports. + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +Lesser General Public License, Version 3 (LGPL v3). +(https://www.gnu.org/licenses/lgpl-3.0-standalone.html) + +Credits +------- +Developer : (V16) Abhin K, Contact: odoo@cybrosys.com + +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/purchase_format_editor/__init__.py b/purchase_format_editor/__init__.py new file mode 100644 index 000000000..ca532a914 --- /dev/null +++ b/purchase_format_editor/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Abhin K(odoo@cybrosys.com) +# +# 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 controllers +from . import models diff --git a/purchase_format_editor/__manifest__.py b/purchase_format_editor/__manifest__.py new file mode 100644 index 000000000..0e1f685cc --- /dev/null +++ b/purchase_format_editor/__manifest__.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Abhin K(odoo@cybrosys.com) +# +# 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': 'Purchase Report Format Editor', + 'version': '16.0.1.0.0', + 'category': 'Purchases', + 'summary': 'Configure Purchase Report Templates With Different Styles', + 'description': "To configure purchase report templates with different " + "styles, you need to design a layout that includes " + "components such as headers, tables, summaries, and " + "footers, and customize the template with suitable fonts " + "and visual elements to match your desired styles.", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['purchase'], + 'data': [ + 'security/ir.model.access.csv', + 'data/doc_layout_purchase_data.xml', + 'views/doc_layout_purchase_views.xml', + 'views/base_document_layout_views.xml', + 'report/purchase_order_custom_templates.xml', + 'report/purchase_order_fantacy_templates.xml', + 'report/purchase_order_old_standard_templates.xml', + 'report/purchase_order_templates.xml', + 'report/purchase_order_custom_quotation_templates.xml', + 'report/purchase_order_quotation_fantacy_templates.xml', + 'report/purchase_order_quotation_old_standard_templates.xml', + 'report/purchase_quotation_templates.xml', + 'views/purchase_order_default_templates.xml', + 'views/purchase_order_normal_templates.xml', + 'views/purchase_order_modern_templates.xml', + 'views/purchase_order_old_templates.xml', + ], + 'images': ['static/description/banner.png'], + 'license': 'LGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/purchase_format_editor/controllers/__init__.py b/purchase_format_editor/controllers/__init__.py new file mode 100644 index 000000000..5e7d20b04 --- /dev/null +++ b/purchase_format_editor/controllers/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Abhin K(odoo@cybrosys.com) +# +# 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 purchase_format_editor diff --git a/purchase_format_editor/controllers/purchase_format_editor.py b/purchase_format_editor/controllers/purchase_format_editor.py new file mode 100644 index 000000000..d28ea3698 --- /dev/null +++ b/purchase_format_editor/controllers/purchase_format_editor.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Abhin K(odoo@cybrosys.com) +# +# 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 ast import literal_eval +from odoo.http import Controller, request, route + + +class PurchaseFormatEditor(Controller): + """The PurchaseFormatEditor class provides the functionality to + download the preview of PDF""" + + @route('/purchase/pdf/preview', type="http", auth="public", + website=True) + def purchase_pdf_preview(self): + """Then demo pdfs are downloaded using this controller. + The html file from the preview compute field is then converted into + binary pdf and then returns a response to download it""" + value = literal_eval(request.params['params']) + base_doc_layout = request.env['base.document.layout'].sudo().browse( + value) + pdf_data = request.env['ir.actions.report'].sudo()._run_wkhtmltopdf( + [base_doc_layout.preview]) + filename = (f'{base_doc_layout.base_layout_purchase} ' + f'{base_doc_layout.document_layout_purchase_id.name}.pdf') + headers = [('Content-Type', 'application/pdf'), + ('Content-Disposition', + f'attachment; filename="{filename}"')] + # Send the PDF content as a response with the headers + return request.make_response(pdf_data, headers=headers) diff --git a/purchase_format_editor/data/doc_layout_purchase_data.xml b/purchase_format_editor/data/doc_layout_purchase_data.xml new file mode 100644 index 000000000..52aeee3c5 --- /dev/null +++ b/purchase_format_editor/data/doc_layout_purchase_data.xml @@ -0,0 +1,30 @@ + + + + + + Modern + #732673 + #ffffff + #000000 + #000000 + right + right + left + left + #808080 + + + Standard + #ff7733 + #ffffff + #000000 + #000000 + left + left + right + right + #808080 + + + diff --git a/purchase_format_editor/doc/RELEASE_NOTES.md b/purchase_format_editor/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..514ee23f2 --- /dev/null +++ b/purchase_format_editor/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 08.01.2024 +#### Version 16.0.1.0.0 +#### ADD +- Initial commit for Purchase Report Format Editor diff --git a/purchase_format_editor/models/__init__.py b/purchase_format_editor/models/__init__.py new file mode 100644 index 000000000..8513b8aaa --- /dev/null +++ b/purchase_format_editor/models/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Abhin K(odoo@cybrosys.com) +# +# 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 base_document_layout +from . import doc_layout_purchase +from . import purchase_order +from . import res_company diff --git a/purchase_format_editor/models/base_document_layout.py b/purchase_format_editor/models/base_document_layout.py new file mode 100644 index 000000000..785a75a58 --- /dev/null +++ b/purchase_format_editor/models/base_document_layout.py @@ -0,0 +1,82 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Abhin K(odoo@cybrosys.com) +# +# 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 + + +class BaseDocumentLayout(models.TransientModel): + """Model is inherited to add required field + and to add function to display the preview""" + _inherit = 'base.document.layout' + + base_layout_purchase = fields.Selection( + related='company_id.base_layout_purchase', + readonly=False, string='Base Layout Purchase', + required=True, + help='Select the base layout for the Purchase module.') + document_layout_purchase_id = fields.Many2one( + related='company_id.document_layout_purchase_id', readonly=False, + string='Document Layout Purchase ID', + help='Choose the document layout for the Purchase module.') + + @api.depends('report_layout_id', 'logo', 'font', 'primary_color', + 'secondary_color', 'report_header', 'report_footer', + 'base_layout_purchase', 'document_layout_purchase_id') + def _compute_preview(self): + """Compute a qweb based preview to display on the wizard """ + styles = self._get_asset_style() + for wizard in self: + ir_ui_view = wizard.env['ir.ui.view'] + preview_css = self._get_css_for_preview(styles, wizard.id) + if wizard.report_layout_id: + style = wizard.document_layout_purchase_id + if wizard.base_layout_purchase == 'default': + wizard.preview = ir_ui_view._render_template( + 'purchase_format_editor.' + 'report_preview_default_purchase', + {'company': wizard, 'preview_css': preview_css,"style": style}) + elif wizard.base_layout_purchase == 'normal': + wizard.preview = ir_ui_view._render_template( + 'purchase_format_editor.' + 'report_preview_normal_purchase', + {'company': wizard, 'preview_css': preview_css, } + ) + elif wizard.base_layout_purchase == 'modern': + wizard.preview = ir_ui_view._render_template( + 'purchase_format_editor.' + 'report_preview_modern_purchase', + {'company': wizard, 'preview_css': preview_css, } + ) + elif wizard.base_layout_purchase == 'old': + wizard.preview = ir_ui_view._render_template( + 'purchase_format_editor.' + 'report_preview_old_purchase', + {'company': wizard, 'preview_css': preview_css, }) + + def print_pdf(self): + """This function replaces the existing function to print + the preview of pdf.Returns: self.id to the controller and + the controller makes the response to download the pdf""" + return { + 'type': 'ir.actions.act_url', + 'target': 'self', + 'url': f'/purchase/pdf/preview?params={self.id}', + } diff --git a/purchase_format_editor/models/doc_layout_purchase.py b/purchase_format_editor/models/doc_layout_purchase.py new file mode 100644 index 000000000..029a669b1 --- /dev/null +++ b/purchase_format_editor/models/doc_layout_purchase.py @@ -0,0 +1,85 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Abhin K(odoo@cybrosys.com) +# +# 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 fields, models + + +class DocLayoutPurchase(models.Model): + """Model is created to add customizations to the pdf report""" + + _name = "doc.layout.purchase" + _description = "Doc Layout Purchase" + + name = fields.Char(string="Name", help="Name of the record") + base_color = fields.Char(string="Base Color", + help="Background color for the invoice") + heading_text_color = fields.Char(string="Heading text Color", + help="Heading Text color") + text_color = fields.Char(string="Text Color", help="Text color of items") + customer_text_color = fields.Char(string="Customer Text Color", + help="Customer address text color") + company_text_color = fields.Char(string="Company Text Color", + help="Company address Text color") + logo_position = fields.Selection(selection=[("left", "Left"), + ("right", "Right")], + string="Logo Position", + help="Company logo position") + customer_position = fields.Selection(selection=[("left", "Left"), + ("right", "Right")], + string="Customer position", + help="Customer address position") + shipping_address = fields.Boolean(string="Shipping Address", + default=True, + help="Enable shipping address if " + "required to print on report.") + shipping_address_position = fields.Selection( + selection=[("left", "Left"), ("right", "Right")], + string="Shipping Address position", + help="Select the Customer address position") + company_position = fields.Selection( + selection=[("left", "Left"), ("right", "Right")], + string="Company Address Position", + help="The position of the company address") + purchase_rep = fields.Boolean(string="Purchase Representative", + default=False, + help="Indicates whether the contact is a " + "Purchase Representative.") + description = fields.Boolean(string="Description", default=False, + help=" Indicates whether a description " + "is included.") + code = fields.Boolean(string="Internal Reference", default=False, + help="Indicates whether an internal reference " + "(HSN code) is included.") + tax_value = fields.Boolean(string="Tax", default=False, + help="Indicates whether the tax value is " + "included.") + reference = fields.Boolean(string="Order Reference", default=False, + help="Indicates whether the customer reference " + "(order reference) is included.") + source = fields.Boolean(string="Source", default=False, + help="Indicates whether the source document is " + "included.") + address = fields.Boolean(string="Address", default=False, + help="Indicates whether the address is included.") + city = fields.Boolean(string="City", default=False, + help="Indicates whether the city is included.") + country = fields.Boolean(string="Country", default=False, + help="Indicates whether the Country is included.") diff --git a/purchase_format_editor/models/purchase_order.py b/purchase_format_editor/models/purchase_order.py new file mode 100644 index 000000000..e3d2ad1b4 --- /dev/null +++ b/purchase_format_editor/models/purchase_order.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Abhin K(odoo@cybrosys.com) +# +# 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 fields, models + + +class PurchaseOrder(models.Model): + """Model is inherited to add + theme_id_purchase and base_layout_purchase fields""" + _inherit = 'purchase.order' + + base_layout_purchase = fields.Selection( + selection=[('normal', 'Normal'), ('modern', 'Modern'), + ('old', 'Old Standard'), ('default', 'Default')], + string='Base Layout Purchase', help='Select Base Layout of Purchase') + theme_id_purchase = fields.Many2one( + comodel_name='doc.layout.purchase', string="Theme Id Purchase", + related='company_id.document_layout_purchase_id', + help='The theme ID for the purchase document layout. It is related ' + 'to the document layout ID of the company. This field helps in ' + 'selecting the specific theme for the purchase documents.') diff --git a/purchase_format_editor/models/res_company.py b/purchase_format_editor/models/res_company.py new file mode 100644 index 000000000..771560ca6 --- /dev/null +++ b/purchase_format_editor/models/res_company.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Abhin K(odoo@cybrosys.com) +# +# 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 fields, models + + +class ResCompany(models.Model): + """Model is inherited to add the + base_layout_purchase selection field""" + _inherit = 'res.company' + + base_layout_purchase = fields.Selection( + selection=[('normal', 'Normal'), ('modern', 'Modern'), + ('old', 'Old Standard'), ('default', 'Default')], + string="Purchase Order Document Layout", default="default", + help='Select the Layout of the Purchase Order Document') + document_layout_purchase_id = fields.Many2one( + "doc.layout.purchase", + string="Purchase Order Layout Configuration", + help='Configuration of Purchase Order Layout') diff --git a/purchase_format_editor/report/purchase_order_custom_quotation_templates.xml b/purchase_format_editor/report/purchase_order_custom_quotation_templates.xml new file mode 100644 index 000000000..b216af41f --- /dev/null +++ b/purchase_format_editor/report/purchase_order_custom_quotation_templates.xml @@ -0,0 +1,271 @@ + + + + + + + diff --git a/purchase_format_editor/report/purchase_order_custom_templates.xml b/purchase_format_editor/report/purchase_order_custom_templates.xml new file mode 100644 index 000000000..0e179f4dd --- /dev/null +++ b/purchase_format_editor/report/purchase_order_custom_templates.xml @@ -0,0 +1,364 @@ + + + + + + + diff --git a/purchase_format_editor/report/purchase_order_fantacy_templates.xml b/purchase_format_editor/report/purchase_order_fantacy_templates.xml new file mode 100644 index 000000000..5da896f60 --- /dev/null +++ b/purchase_format_editor/report/purchase_order_fantacy_templates.xml @@ -0,0 +1,298 @@ + + + + + diff --git a/purchase_format_editor/report/purchase_order_old_standard_templates.xml b/purchase_format_editor/report/purchase_order_old_standard_templates.xml new file mode 100644 index 000000000..c22ccfd39 --- /dev/null +++ b/purchase_format_editor/report/purchase_order_old_standard_templates.xml @@ -0,0 +1,293 @@ + + + + + diff --git a/purchase_format_editor/report/purchase_order_quotation_fantacy_templates.xml b/purchase_format_editor/report/purchase_order_quotation_fantacy_templates.xml new file mode 100644 index 000000000..7260d327a --- /dev/null +++ b/purchase_format_editor/report/purchase_order_quotation_fantacy_templates.xml @@ -0,0 +1,216 @@ + + + + + diff --git a/purchase_format_editor/report/purchase_order_quotation_old_standard_templates.xml b/purchase_format_editor/report/purchase_order_quotation_old_standard_templates.xml new file mode 100644 index 000000000..7d373b97d --- /dev/null +++ b/purchase_format_editor/report/purchase_order_quotation_old_standard_templates.xml @@ -0,0 +1,203 @@ + + + + + diff --git a/purchase_format_editor/report/purchase_order_templates.xml b/purchase_format_editor/report/purchase_order_templates.xml new file mode 100644 index 000000000..5995eafd4 --- /dev/null +++ b/purchase_format_editor/report/purchase_order_templates.xml @@ -0,0 +1,188 @@ + + + + + diff --git a/purchase_format_editor/report/purchase_quotation_templates.xml b/purchase_format_editor/report/purchase_quotation_templates.xml new file mode 100644 index 000000000..bbe38ea03 --- /dev/null +++ b/purchase_format_editor/report/purchase_quotation_templates.xml @@ -0,0 +1,78 @@ + + + + + diff --git a/purchase_format_editor/security/ir.model.access.csv b/purchase_format_editor/security/ir.model.access.csv new file mode 100644 index 000000000..d9d692a58 --- /dev/null +++ b/purchase_format_editor/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_doc_layout_purchase,access.doc.layout.purchase,model_doc_layout_purchase,base.group_user,1,1,1,1 diff --git a/purchase_format_editor/static/description/assets/icons/check.png b/purchase_format_editor/static/description/assets/icons/check.png new file mode 100644 index 0000000000000000000000000000000000000000..c8e85f51d612c626d167e4def7bccdbe1d6d17bd GIT binary patch literal 3676 zcmcgvdsGuw8jpg4iY%zK;)6~HwPkUVnaO)JDiRS~W01#+Tdm%CgiJ{?ab|#k+GElB zs)m`Fq^5i_*c#09+YQPFKr}nwM5Uo-TAL;V~rhtuFtx>&0g#C#25Hk&m#sUb-WA~31MBLg4ikrG=iSUHIid9Tb1 z9z?MSXrWNHppa=`3T|)6tVasU1O?OhfLBAPab-$=Aj^bs-a^skcg`{z&c(Sok1Rnf z5yC>1Y_<@*U9)a?2rbEDiXfxl+}cG;IVE0Blf_9wp~!G!ilE2DR$`Kz#XXhg1%^X- zXt38Q$b#e)IuIe${frbc@94mx((??I^YI-(m7WmPOQnh&kOeVE5L~UXliA7*Aqh2! zygrHdutKqvq)a?GfU^Rbv!F1L2n;u3q&9~jDV>4R8gLYj5g8$Gdf5;PM8e91VHO}tH2a0L8XijPj4WT@OfXUAT zJnhf*@K9tDMU;r4{0y>T@q!c#dc9U3Y|rFt)F2wJDdXk4$u2;9M#3=B({jWE?ZT8AH% zg#Ynm7{OD-iERSQ3q%07QcjdCs6!Oo2=IDcJmb$VO_7HU?ogqWL}USZT7WtfjpanX zO$@a45~6_o7yUgq;$EyC{@)i#qZ|N_R=_bJvw}bMOMXYUaeIWvk1PbW5LY2pwz5%~)8GxdCY^PssXRx5eoz zoO^~fem~r``@rOd6TkZU8il$gE8}Oz-;cgl{mIK`Pdv;QZ%-|s z|GM{J*isd7WKnONICtpgNp#AiUeQbceyF&&T9d++kK5LH+xFP3BM=)2;)S)A$sTiU6of)b*Y#j{o#0g@7kQ@$&^?Xwd#C) z*?`OMhxblls7-52Hx9e<G~?b~~OYW?LWQyXXH zri{BfJ2omM>(N5CCh8@jy!2dILd_cwrrn5}-u1H`e?0w$}WEW5P9XVW2;W}-E(N#mKb@>!_?9;7EcMc z{$}01S5Kra9GY1>s2abs9zQ>M^!2#Wa|ZgdtCP$7HxD_{=b{ky&9Q_CH6!ldap(T* zf}8Jcd_*M`3GY@f|5wb3WaRUu4KwLk^ZH)Cx@g9Gqrd$0VaEMIzioWH^;l}xdpp8T z8}{xXW=4I#;LY(#$DH;dANHu-yZ<(gnNzG17ONUnb$vS3 zb*fD2Tp8xe4);ae*%)~z`kF2F+Q6#SXw|Se#$N^e?zR2i*OIq99+Iy7|H~LN!Mc6) H^s@f|!zCx= literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/icons/chevron.png b/purchase_format_editor/static/description/assets/icons/chevron.png new file mode 100644 index 0000000000000000000000000000000000000000..2089293d6ad94cfc015cc0a8c07bb03efd4a689e GIT binary patch literal 310 zcmV-60m=S}P)fLA$g5CzAh99{FF(tp zz^tD4))$4c^0SZV9_X~njUYum@4i`~v!i=obU%PG(6q`OMK>{HG>r}*tHKc2@w+qg z7|l>B76qkX(U2E&K_1Nf!JbCtpGzwGSJ~CkU>QcDY&q>lnbwQm<|2>>iH5vL6qJIP zp;W{K-Snrb@Z2gLMVZAQQ5jU>DXT)0mtk@hpq-Sb{2q6{0V4Z;tNXT3P5=M^07*qo IM6N<$f_?6Y+W-In literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/icons/cogs.png b/purchase_format_editor/static/description/assets/icons/cogs.png new file mode 100644 index 0000000000000000000000000000000000000000..95d0bad62cf22361b148e1d6cefe2ceab605955d GIT binary patch literal 1377 zcmV-n1)lneP)lH5n~Zj$eiG;8wLI!*reT1_VfljL=sA}=JrOptsX2RfC&)+l61t|6JPeb$mZ z6v1wNClWXiLSlOh+mR64U7bjvhva*zJ0HRRaDbgl@(q$*^PYf*$fE&7)c&&!Rfm?&yLyFbQ?2&R6W6v@rWu!;bZU9|_! z4Je^Q5$r!vH2{)*ok-wK1%Wz7TG;LgvHhtN39JtxLC&_yAzs|bhFaWtFLrukMR}l_ zP~>z0rF26#(W+H@aXx?6lf(f454Uv()R+QrlZafX3t}g5wp6-Blj;u$XaE#h->+xC z005Fp0GtMpYoBiuo)VG0UP0_GltOix%1(%-bKgbA0o1pB3&6VoRs+}%fFWUi1MmQV zmjH~{WZwYT7ng4njIz1iD4PuYIM&NvU6NVO4kNuj`IZ(nzL#XTM^~@uFGT>-aT6dh zAgaP68%9MDu}+cu7uohT0RHqW9d8lhD-kJqd^i9;Rw)OT!X*D$Y?MvID9;=%I@23T z$~m4}V3f^0BG}d<_%@?#emG&81LI_NvTQ!T$gzGzil=|K?VCM%e*mZ`d`!0R--N(> zX_T!|fX{f;z6ZDfz>JL{bFu7UqLI0BExN7c!HmOYg;$V?QB4==-_|4!R<1p=W!b zXM0?cbrc+q5buUe#ZpdV?VzCxk-Rm+);3(wb8q`(#{e8FI_3z8RwJLQk>}&nRHK0| zNhvzkFo4$qbT=sr4i@y>Bdr`7j(HfwmH^uc7xH9%r%nnDB_ty3>&opGxGMoP9kf;< zd%_$N;{SC3V62>WZcCaxpx6frT|FlOj5R5zGbh3vrqY>j1H`{Bkt_d-PcIzGcOeS& z0OimpMB04AZ5M$FkksHx)9_uX*rDTKrDER^Aij2r>}i8vD4G(OFwKFYV|^yVP5w23 z`asH~GaMjZ={ojt!?Lb#lcy352^1ZBLpqIV|5 zLfz5N09ce%03XI(J-h5`5#>QuTr`wWt<}xj9|=Odm?U{1pyiQF6&>pYfaOUB0`PfX zSMHvKeKvO?5vfw7-bq{v4vAnDh^?3%L|Q@w6Pmd9iD(;0IfB{ww?bB5NS1mno@&9c zXC4%!P8Bklxq~Ew%%g071mXR`&iMY{dhWR!JtLt}njRD_-Cxi%N0X&qj~Nq_rI}Yn za8e0TJ(H#J00000NkvXXu0mjfE=YKA literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/icons/consultation.png b/purchase_format_editor/static/description/assets/icons/consultation.png new file mode 100644 index 0000000000000000000000000000000000000000..8319d4baa09d6afac9362dff318f63a0f96f555e GIT binary patch literal 1458 zcmV;j1x@;iP)fo-7eN@Nx;}%h)9e^5-C?E zsEH&b3Z#%2B-}L7v^LRRD&QZ8A<7MshM0yxF7rU)x4)gW;*vW;3 z#hX3&)M|C@Hzy`0dbVF71Cp#6E*?;(1E5ZgN|t#IpsRseZTS;fmL2OZ%G1F2%+iN5 z?1unK-3Ni+4&6W$B|ic7=Z$mSG;E8PyRX^_00(R zZhUjoBfjtdy_aS#1FePDP8??a5dOFCh z*MWRv)G@zc9y@oAQ6L5)gF{}MFZh1tt%7=2kn>q6`mgJDye)VpNyeX>nXy(;k)8%5c~P{u8)+YKOVK2Ka7pM_X}a`O zk#~c24MYp^y)u3b+*+!2>R#%t}=?wy_< zpYKn-%7CQNC`x``VuKC^f_Kx@zC4JDHDk0HCO^O4#RC{@^;{j6<{9 literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/icons/ecom-black.png b/purchase_format_editor/static/description/assets/icons/ecom-black.png new file mode 100644 index 0000000000000000000000000000000000000000..a9385ff13f696e96d517a56ce2b2ff7d282c748a GIT binary patch literal 576 zcmV-G0>Ax5}Z)a!cc0ra5uqqg5lnhXD zTbP_`oKdQ!!sJxrjN&KdC#M>hn6H53Z@_@W06J)|I<5r7bODP7TpFfK@D$$y9ro1J z_#n7|3NU9+Eg3t67i6kk1G7mAm}&y~>LPq;59$DNz9rz_PKFAe2JQYcbvs+lNHw^F+;#7cCP*z(AJ2&$C0H1W+ddn*~CoC?@7snGmV!9 z<==r}6|tyA>`?)>6k{b=2d<=(_5rWxzxsKgUs~Q{+du)!y5s>SG|Pu>T2kaR7OcV&-NYURtom{p?~^a9V+ z7O-a3C?=EC%HIJ!R*hUb72^tZzf-`AuuDDSkJJnF?!xs=oN3JbnbTGPz&Os^S>dl1 z(84w;APbb-b_k@KC|~4YkNmz@^KPH*e34{*2J>2yF9_24A}NIoShST-^{Ye_(vLmm zd~pgm3F$kIkw;g)NYXe9tbV#5fWaonr$h>8ffe1h+u&f*`C7F2cl-b`l5Ye!`u+O= O0000##3Xw+{I#MbTYoZ-I?3FUBiCh!QRfyd*8S0 zzBhAFP*6~?-lzdrfLY+Hwprk^9?LDGz;$2=SdFk>z#U*LBaI?QQKD9e7VcUbxCb21 zK<^(;Xc0+8N7+;0G_au`qDwm1ixh;r_7XS;lzSn3Ks%r7fpFK}0T+SIX$T+G&OY=( zxNCJ_5*Q8nGpO{QD=gKm=?w>jvsI4EeCbfxmVgL)==l)8DLS{4AE!e?Z8#kPQdt|>qP=~ z0Jlc(3Gg?f*M1lL)`j_1YkWB%UdQh2b66h*ZnCzsy7n_B0ckvzW`}^r+Q1XwyiR6N z+Zb>`kF^u{kzSF3ZWCxE2%MHJ3h_5t<4fjdNthVL50AOsk~o%60t*2`LXkdVyV0$h z3!el&2Fvm1lW@sw^on`m-Vx`wwB6`P4R}rO zE6^)ow-A5YnfJ&y0Ye!WLUqzpz$M^$fY4`p?Mdxxh|Yg2?gAd7ipc|DXJ`UZ90Kkq z5IzMQOgng*oJH-CT;UDiOoqC=IL6w|-va-Bgt_N1s&c*2*98Ry1?!OCgV~htO4sqyP_dDm_d+wti*Wu|Jegr#e_!#{@68vYp!)bLlu6Zk`LG>4b) zEtVJfV|c&7EyFk1UEqgt9*;Njw1VZ>g|{(-Ih??2*p8dxr0-%j^2hNC#&IhqaU^nc z@$+Ql#-r}>$jwGuyQA&xajp}QpNYQgQvRX3un9j@9GJrg7>xWw!mm^1U#(2=6#lMo z|KQokEyJGV*$a3$^4H^V!vBQLO`Y#xXJTY1;rCX!>CE#}6@DtiPgnT82{)9?y|d)x z(wYD^;79DoMQqIQU*HgKi6iBw;@FUI9sNVmM#^uDbMB8mr2J(psR`f_e2lfYQ^?Pc zD*O(-j!VKyGmVpx8^nFlK|*>Q!@2nVHmt#iLfSnlYCO2 zdFMZq-%%fsUm+%4DcBAM@nlB#OJUtlu?=@5vKyk0-(~c{nEb2TSI|FD&|jC)U02XO zP_VtPpg&ess@n%zfz}7m^l)@9-pa_g6!iB9hqNkI7IY^HwJpfkw1vjiEIS#Wpt0?`HcKIp}DC=(*S1hNk)FAp#M3(Ph`2hp<^Rwd!~tF ztxuuW2aq1-#_&}}?@!(9I-!5fU3;7r`rs;-;>L{bUqXMKVkK5&4iq?1871GE)(+iE(2hg+zdgWT>s_5?n3yszX(6k07r<#7z+xi};Iw>y+AElqG*-EPDTmCjr_EtL l9oc+vR{1Wfk3Rkj{so);rk=IPI$i((002ovPDHLkV1j5u&D{V1 literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/icons/license.png b/purchase_format_editor/static/description/assets/icons/license.png new file mode 100644 index 0000000000000000000000000000000000000000..a5869797ecaa7583c552c3bb7c9bce5910df78e0 GIT binary patch literal 1095 zcmV-N1i1T&P)?DLX z+1Y*BO%2WWvTu05Ki}`p`@J{sJ=nx1)&%L)P@|a%i#deKSU(9Ndee~mRtn|o9hqkt zsH)g_?j-1Oz*{rH&X9nd_6n5~S%#SclCXXhkhBHYOR<={+%T9HHm_+Rj=iH!?az_sX`LfziH+4|52SPxCd(lFQ#& zy}6O4ybXVUJ6qGPGqH9kZO+TqO1)ZNXdyA~iK zjU@8F177OZcQq)~$=N9vU#B7D6{_#K`1J!DzKA!x0H-08MD^1m@!Cu1^1Ay68A9JiW%_ zS;VTfBGKSzreWdMUn09>mmHnKrHDNn2a^cnnZ|MXDzMjuSf_9uLfT_HXSmEliE3?k zXG5qm?Zm1JIMsm2cnJK_V=hkE@UzgSfJcoDFQBI%WSu~xnTe+6cI1o%43w{m$eK<( z*6j^w>_69x>X$9vq!B%D)n2i2Fx3eCH`fw(T?A+}`>a(i3QK#4M*6$U2tPE#;4RnK z>mxwS8DJZNZzlfX70^76^jmNLyX*lJ7YEWlH{ zcu!SGBHwAI5D}|zA|-av#xj{i{y7^5SAdUFv(H6FZ!P*Haqu>f2gqsj_qOq~2-w*F zS(Vp;I|v^e^)8@E=esPmmg4ZVjs4>wpR8c|FGJSOYN$8)|IM@rI3xAI#QT>#L{?m_|*Crlo{0DLwqmu7G?&JUf N002ovPDHLkV1nf|8?OKW literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/icons/lifebuoy.png b/purchase_format_editor/static/description/assets/icons/lifebuoy.png new file mode 100644 index 0000000000000000000000000000000000000000..658d56cccfbc0e46060ad4850b9fc60c656baf18 GIT binary patch literal 1199 zcmV;g1W@~lP)K~!jg?OD%n8$}d;Z#;H3_Ux`{Y$>IOhC`GK2Z&mUBGl%91P8y|S)kfJ7y@Fv(h8fJTCuS1y-dl~V3Bn@u?h-V-e;5wUK!dy#X#2mo{Oe@Ws202*N! zUYebq1*Oz(7=|0J>pn(AT~tHi06fpT5Cp+8=UfzYF~>QdlTyCudEUcDqp?-Q3ClZy zh`8_jS1ilAN<>A)|0jSkVOiEy-}kQ++2pw<5YcQ91S^cOdS0R|Fvb>wAgB}3_lVdx zo@Z(pi+`PnCN6%2qaJh2n$9r_fQWby1S^wxWem84@B1sJuai*#Qp(HIeDX(8DwXO| z%F8CUnE~{Az4MH*g_Fz52gcZf=Xn=0?a~H`hylQ*oZNq<_}k0ls8Xpc6H#iiO$}f$ z7+lQz-Xr3jB4gvg7!%!YH+A(>1Bjw%(UgpcwAQ*+tJSUpz&ZeoCZ;U_SQA3r;GDOJ z$T;)HSw0bo%R@wVuh)CagoKDRBK{zR*fFtJO3f3|HAFNzMEd>yw@I~AqJ#bY{dp7T z002bv$W%N4fDmGbh<-J-uT(0DT8^y%5pku|M*#3XBv+M(*h9qcYPH&RL>!t5ih0Vt zUhhjHdIJES%P?;Pz-K~;bwmtD2ac^kEdHi}cmRNNMD(sw>ZYmi5uOi;=pD!w4*<{v zfK{c`>d}E?De;q!JM+w*2G6)Xkk{#{&dFU)|KBh!fb9Z)o)nlf5uR}Y zd|trusm)0`Mppsg1Ndk6r(q8O?g$}n6g)=1h>y{88Rl&O_*4k-$x*rHnJTQfhuU9KK{~ ze{gV+s3kFgxc1mJAwWb%MAv-ZUm~J%N@uP-7z~#3)Ik8So7O{0t+hLy&I_FLR}6^` z@phbH$Kh*4{3egHFbsdG*XzG0ji){Z*L5FjtyLbvcvB|f%{;ykQM#_XnP!t303zyA zsq`QZDWumnCUwuh==b}N5RuYsGT*~mt@c!Fo%$4}0j>3>Nw>~uBiXinKZ>Hx$z_=# zilR=d)w*wDYuue4X>6r_BNNeAsf38{WsIw8wR+FAJ7-+XA!5H;t=^mFN<>lA$s-;h zXEln5eaCU`PGe7Ktv4OVxtm8kK!NspT#NkddEOtDN@bZbcA|D8B1!;w=r~T1>a_U% zK%>#vBBJeXx4STU!I1-p7aW^eM`ao&dc|bh_WW=-{0Wl3r~lMizvej3Q$);_Ad@h$ zFS2H{DJ{#|0D#*mX186}-I$d4sUW^)U5g92(PHl7XX2Xm3}<-8@HhS0PsfeRnq&X~ N002ovPDHLkV1i;vH)8+* literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/icons/logo.png b/purchase_format_editor/static/description/assets/icons/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..478462d3e73d73cc9bae9fea8e7f8fac84fab049 GIT binary patch literal 3452 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 Eg49ZXX8-^I literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/icons/puzzle.png b/purchase_format_editor/static/description/assets/icons/puzzle.png new file mode 100644 index 0000000000000000000000000000000000000000..65cf854e7ea72e36142ffc1a407bf2b8355cc85c GIT binary patch literal 653 zcmV;80&@L{P)9a`;n_Do>R91)@YfrZ;WIBYI)WE@w%y z7IC%30~nX`B(&|Bi6!}ZGuBf8IAM^ zQA&SX2=P2@*<+`kI7+k$-1A&gaYV-{Ks?g2#0TH?II!as;HNYK-X1sS_e0Z#CLzvF_5wZZ}7k)9y#mQhdC00000NkvXXu0mjfog*sX literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/icons/restaurant-black.png b/purchase_format_editor/static/description/assets/icons/restaurant-black.png new file mode 100644 index 0000000000000000000000000000000000000000..4a35eb939cf065c6f8cf83781a15f357348769da GIT binary patch literal 905 zcmV;419tq0P)?`PC*pLe{WG*jTWtl`Uu)I!h(oI7q&uZZ6pM-kw|Ur zMPftz3s_jOvBN@wkko<{5h@lmjYJTFNYSdk7WZDgxt))5&f8mkk}hV>Idh-qo-=c2 z<}K*Z0h|JE0{hdxYd{s)k+v@ZXMrAIo@0zw;4N@F7c(R11%8u|tpdl>{-S`voX=~= zI9qe}3E(2Iz)Gr4;kyl(s~mqF&>XN=fMdX2piMb8pcAmd@&I7Dz-K#&h$ije8Ud@c zgQt)P0N6-UPAX^wv}*@XAr$~{fXT%{gxOL;d7J^}NS&nu>IqNA5SA(ZHvoI3&Qbww zBrApmt%jI`Qb(zPr3MliEX(6AgxqFAfF%PhK$pZ(DxlHPm#x|JJ?#vOh0iFWL*gX; zvNkySP6D04&a{0VI7IUG&7=5n`XhX%X!6%0pdIMTwKt`IMHB^02%jlh^`s@_+Eq$X zUua7+@KNF<74Svq=fdYgTbhAkiIY^oW1*i5PYP{`fFHnsWN@i~VW3~=Tf~(@TO!~V ziHK=MH!#NJVMOxR&(xQ+UJ$o$y2)oaLNW;@b@MoYxa>1*DRX}LjYb1P&7s^nlmWWk=>z*h>g|NU{%5MtF5CHx% zsv|6})E_wVDBiwF?G1#>YfMYTD&SYd?mLjjCb;?_Zxs-Gkk1|~y%8;uG6am{&rq!N z-f4+g1^f)yLT_-QuCw0J!G4)Cg3XY f0eA)+t%bl}x(3Cqe?`Zc00000NkvXXu0mjfu`-q5 literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/icons/service-black.png b/purchase_format_editor/static/description/assets/icons/service-black.png new file mode 100644 index 0000000000000000000000000000000000000000..301ab51cb1363cb8a0063c4f9f7cb9cf73c91e10 GIT binary patch literal 839 zcmV-N1GxN&P)wG}3wsU*IR)z|Z&+>zafrqJwCq*x@FjvNVI2F^z|C zN%{bO#A+2K9mjI&psYL^8b1O*HWO0*iAfK zwBzye?BGqTEZN2s-YR-iRRhR^{{@@H!rmxCX)mp)h^Mf|a7g;p*wW?ud=J0RL?CEP zkEcMj#QI2Tc@Mv*2kEq`DKw7vdi=Jb&-aer)!-Z0qjz+QFK@N1&aRXO}`izA!9+A#$97UmLtKG(#D$V@JG;R0Xua%1u4_kNMazOP^ayYznp(_+pa zmHp&*7l9|T=r9&<9@|?Ko;a_$GXn6R3= z-_eWeE8>!NN6sWQh>p|@{|B~~h0NN}OyO(k|0o{Eevvy?ir79Q%G}xZ=i2u5tSHu2 zwf(N(bFnYJT6O^a^n}=lCZF8Nx;w2}uUkB4XPd5v`7Z>im~HzdJMCK7trz|-8@38>5jc3xX@h`{ zh@iEj_%)@#V~J@-!i)2n-XCy!_SC5Qyigi**PVuC+h<}!~>FElyR+PxP0svs|A}^vKikR z#>I0>S!0;4UyI{*IK1PzbOF;IshL(A_k5A?+#7WY^+>e^YX;p z=xW)DcRQbIOIo!~v-$kABZfD^J?Ag~CjG!0N_ye{SWo@7I2vn7n(V-R~kb-3M9=yBBG68O-n8v2ber%t!Zu Pq0ivy>gTe~DWM4f&Ev8V literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/icons/training.png b/purchase_format_editor/static/description/assets/icons/training.png new file mode 100644 index 0000000000000000000000000000000000000000..884ca024d71ca9127a5393134632ee92a61b07c4 GIT binary patch literal 627 zcmV-(0*w8MP)Ji_yZ6G zgCi9sC+SZOF3B?A-3o?c9a^B`5B^xi{atdGlsx zfu5coC)9d9*W)+29w+CYx6HE5(7FIXTmz`}IuU&auvT&%3np6<$3JExZ8|Qv1`yF6 z{uK`ZBO-bN;C9iN>oGlP1At#74phASP()5l1Dq?6>v00$qR~ktYISg_G~Q>PN9l*Pyjm+=0joaxS5K;Rj(=Ddy)iyD^P2j9tz7$MRPPN-6X6Ic< zC{O?T4(yVQo5t(DjmAqa0UQ-9Bj}SmO~ZA+0wO7a=S3S8?~`nFrw($EDaoG!IQ?TF zt|2?U(I}QLQFZXyQiDB8SX$~v-8kVA@YGU+KFk?f>fJUiwWsHQ*BQQneoi* zIdjgY7w2;~&-47A-}lQiGr#AVfgU}2^thi$w2V8gP8xe`iYA|^nQ(?HLC@=`7Uk<}) zLeWEQiU$yZ^@<(}ZFDXOrZ=@2KTECwL3TGYp{o5;VR!&Zenfb(Y~lunk>o@WhF_@a z!ghmmZ=oQx3ZUrTMV_|@z*@URl_LrpnuMspmx02LayE1`&DBGH7 zIB$fJR!y{I;6E2v5gyA7yJ&>%uIrAsk}Qk0c3q+z1eRyI&Umi#qKMSynj`laxQDEG z$>9=BWqAjWxCde)_&ZYtQ_uHfppNAb)C&iMgDG4Yayz-APl492qWnZ z+2s4qPerk;Qd zRTxgcUKCf(0QEW%Si8S$d^23v9Y;Bm$|Jh7D5kUlU|v?DQjz!5DcCSIHI;o!&C;0x zy1x?jTA~w;DMb2S$s6C7*Wr6^*LJGyqHt8;>Dg;xBk)zTu^q3#d?0F4bwS{Xys;0Y z0b}%PxF6sy{*u>yU@TD!7kg>wn=-H#OA+vz;H27KSYpwM_&kp%X2ny`^Yp0@|(y-wyRtOEu) zkZMr2S!>sIk}ylBD^a-LQPoOlqjSJ;L-U^%BWoPTxn4GDGXiV(qm1VDmv{z1L}Jvu zn`vGi$NH_RE@&E5g2~Cr0o8JExjDBIzCUyV^vhJEFcOB*@hFO_Ws){xtzG=^;Lve_ zQnzMHdm+ztcL8TpjlxKr=$THQiK!@hAyIz4N4%2V3+2+10THPgVGEG`aJ3>)#)7~e zj-qI|S!^?IMA7OXjJ}pce+C{;_v(adyt>r~yRAcuwRTCOd=IQ`K0+rHj*6O7#^_|N zR=ZNIR{yzq^QL#_j;<2XwFs{P&o>X}q=;_wJnsh7KQIfj8}c9GwohHEy0HGyN#1EU zwtz&CPhEFtR77q!cFdS4^%iP|h}3+~+kwg^h2P66zKc$%k(WHr*_9O!^)V)55l)iG=bkroSVWSt8oK?9X|oC&>t|S94mi~JQz6J@L4Q+~({Wt+ nVe#UD%iYS|qeqV(_m6)8sc^)gW+q6200000NkvXXu0mjfv*t}m literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/icons/user.png b/purchase_format_editor/static/description/assets/icons/user.png new file mode 100644 index 0000000000000000000000000000000000000000..6ffb23d9f036834a32954f83bcfeca00790ee443 GIT binary patch literal 988 zcmV<210(#2P)cAU zg%n1_!UO~hi=Zajq!7VI@CUR>p`!Rx*a$&o3k`~bXb@RtC1&nyR*WQ@xp&s=+|MHZ z%qBDA%sD6P7W>?P9RqF}kWv6&A-zOAepFK7 zn%moe*=$Tc@)I0INT*#4Q(tpt!c>;Iw0DH*Nr(MZj6)>|hd7}=D`NRPh zXvGuSy!q^~M868;^;_^453rHAwcCa0XTYMJUi@XTxY>o~XCPvW7k?SF)lGsQoZDZQ zP)=G_j{)g77n-L5oA={)hSIDH&Cfs)ee1>VM9F4cXnqDNc7ia=s32eb!iDI$gsOi4 zLvKEpLvw7Jbc*9=pw+k^81;$)fYoTt-RZ*gtblIt<9DK%bYb~+p`ZNt9gylSG|w)y z^f7S3E5=1EFtYA*7owK|ZMZhYc+MxrUpVY~%?xuR%hGp%`<%$)6(zO(uDSg$G#5pD z;K6<0FLeNz{gRNEPQuWq)1OJI*Gp=<<_=N;X(Gq;tOM~GAMp_MS;a)29s}JqVCIjM z)b8=k8|EJXBpK4+2QuS_5P5?c0HB~e#B8sn^Ebj8h&ak%8{2szdo@hTfKXDKM!FmH zW1nf?P!ziqZws=70=&$bXf^g?93W~xqS9P$i-O)xkbdQkw>_W_=3j zHL&MZ+4h#Vli`J@6>FxCSeAZmS!$N0X3g}h<>^5?bLOg^ymRRmYovK~+eD>9insPXvj3+6Gb@v&hmf9xq1t2!EP|dQ8Gk{Nb(_%F zfZ2)l~DhpZ1%x!dRjm zO=;u!cb$X1D_}gv>Jbl6rqq7)(!s6*&8$S;I1dcnm#;8RsZyKh9Ozzw#ra8ApLl@n zmu`~X4VYcGB63`?zPU_W_r4w%$5|}xSP?5ge^6@en%S9MO4}qmpBLGc z+0FjUY-Um~^1{NNbKdiv_nq_2d}juhaAqNAYGGAPQ!by+?CdIx=|Q!EF@IoLzlew* zHqN3N&|>jiL`D#~5!H3TiYBy2#kO~cjhT*5UTf&o)WxJyJAvB(gK7(+j!7;TT0A7Y z1FE_V&)W$+3}iZx$0V2A6?Kio3}~@vBQg$L-C2d~l5BRYn{^UNAuSXJ5cvdH*O{zi zV%uGb2Qb}EY>Q0hdBTeCB5i_*J%!Y9hB4-|&cua_ha`5unC%@oF^Pv{Qs|lv<4<)f zUXLH|SJ!zQN!xgltnuI zA*#cGrK&x(v3Ly_Q|`zSxko)OA2y^qPL@<^KO#f_bvjN$1}w`3PIqAS3hH^A zP<=n*vz)54C3ehdJM0g+#tCDPU9e*A9n+;vw!rRxEBni5 z)-Ry*UUp(jA$8sBfPFx3TrnGPh-`L9MCxAWV%Y)pyc>XbNlyG}DwX>i#X}4RsyFRk zVEIC0wZTI&IM}qlEXaTsi?^UUPIBUXU{q}T#a4t=w~?!r^mSlaglPrljv8T7?RP}( z65D>Q9jU9ESY3A%*b`~K>IAlZtB6c%p|F}v<_biHP`wm58|VX$0ly;h9+vfvh)j11 z8_9sG3ZAzI7>zOy_>^pRvxuCEIIkl@7qaR%o>zf8Bd&3X>FJx35Dy`DKpiKGG2_6- zi1EL|_pg8qr_|L-ofg+klMsFq4s0+U^c|Cvl? zW76WGjRAGt5q$puurgxIe=ugV^!5FI`VHxE7Je0$oQCSazOkXL=HEJ@iy7)<8ccM zi$(+ef&T;QIOo)jsy2Ql_>yw@-e%|Y#X_Tj-|AYa)EhMu>Nvyr{xgBmKbe`?Dr?r9 zOju)E)IDj`^R}b-mDwQojt1IgQcl=+(LyKais%c845mdJTs}XVW{eu|uie$6SB5Pd25|YHf6OMZB Tt+q0v00000NkvXXu0mjf(ZE2? literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/misc/categories.png b/purchase_format_editor/static/description/assets/misc/categories.png new file mode 100755 index 0000000000000000000000000000000000000000..bedf1e0b189ab85a0800d2bf16f8907ae0f9b225 GIT binary patch literal 1532 zcmZ{keKgZ+9Kav<&g)v_b;hk!gv>VTU}Ro~txRZnf7vk1>ts^0E+H?ytaOVCAAtJwqh7z>jo|))?0E=;^I0L}r!q@1EP`)*ij%*d2<}K;)isHiUuO(K8sRsh z-Pis3{YvV^@OQmmNs&NQU=)KXv{AlE^1MknPJ@r9OQ`&Nj0POs^TNY&qa1m>k$^h9D8PU8DqJ&&5k(K{sH@ z>V&X6c_01q(%2SvYvLlvZnd>@@hKBUnCj~2ChNaWzfP;#&qp?|WQ{%Kh@)Q3?|Ni0 z=(zu3N5auKDLJw+J9M|2X2;&ImwC4Jf<@^EEM+385H^D2h1?zJ3CZs;Z5fLh)hk%5 z92LCeycC`uoi_YZVuu}XVj@bJ4%>5%sl%Pd2NlL!H`UvThTU6LJEXe^gn}6qo&D*^ zm^{E}_)%2m+Lg7mTKSD%vkXWsw?3^(z8CV2X1=Ih+$)FISZ`Q1W>#&(U;Pf3754az zInOwxDLL*iQ+nNfq^Y+ffJ{jKv)@>P_0P3jxYZ!D3cFG&Z(+^{gBw2KslvLZ6k9pp zcav^CwSZWm8XpNq>1*NKY-M4jgw>z=OfFMf(-%Ced^p_UI?=L>ul247laA={vAc40 z&MbkA zQp*daY+?&xt97XHt%JJN_4~;wCD(^h2BpL1xp@X^wlU;+cG@IQw(58Lm3j6ZZ+dn9) zlL|m@Tzt8QBUiJiT2oW)3o_`6!%f0b4fhFzCeI?t)lB#3@yOj}Mt_vsQ;lPFV#O6{ z#%pHl7`Xv@3G+~0gf4=9HDk7006U7#X5b?aGavvftd$iSYlF73p<;LAaeMIAHoLG` zJQn*_0WSNWkeD3Bj6U{lp)90@1PP}9O<*$<8L4b~BJ10ZkX&2>Ie_fuMQn7To%{z~ C2BR$i literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/misc/check-box.png b/purchase_format_editor/static/description/assets/misc/check-box.png new file mode 100755 index 0000000000000000000000000000000000000000..42caf24b98062c6ea6bb4a636808964262e04e64 GIT binary patch literal 1118 zcmeAS@N?(olHy`uVBq!ia0vp^3Lq@N1|*eVE!z&HSkfJR9T^xl_H+M9WCckkdj$D1 zFjT2AFf_Cwy$! zfk$L9kWK*O57|!VfeiK%PhVH|XY8`f{5%sry}!V~z%1$M;uw-~@9oTZkKjO=CD^jHr2-Ky_r{i?)~S7_ckB4oN(g5tYF>c zecgT2?!-)3&U=-W^}*{P+mk1&m|2o@3`DB-E~qm~>F;-*yYrll;YLQry_@%LUb%8X zSjE+IehQ%>T3iJ@vm@Fq_A2$CQg(Ju_%mzI0*!##akKYr_)x8V`IhX8_~|jz^_hE> zd;=LayyV?Fk7K&Tx^-+XW2{W<-~V5`@89>ZwyFGC>#fe-*%zH$M9~KbEpB%kplhyQx`MYlUcye6W&9GPaJX2i3?bob^ z=exg^9ZxCxM3D_VHl^jeHY`!8c)H5wMZp^0bDUnQR~=%Q|1hPlj^%al zjs`O?=kPw+Mb0anZ@pqaf4bYWLWeaYbK%J(#?C)E8yU{u zTrOT_@NtibABP9W1^0$+d-vQ_D(lYg?oQ;m@a?L(Z{C9mLOf|(k3Z&gc6i`$@X)`5 zj(b<%uQ*aR(a3;d>&tK7gM$+}IPUzKI3?xtd={Saa$y6>?~&_*ZG>w7{#DSM$re73 zo#ji*{q@_{ugldxe*4`p0=f4`+#~FJYD@<);T3K0RTVZ(~IOI{J%W8*u9*WnXM%N#3}+n;w=F9$v#T_3ILHv09f$= z0PI5mfQA&b*x=X~-2b*97_-TaA4aVSZ19GdIft|9@!#C?$B(cJPz2G^1hfc}=H!$h z9#k8!MN^`&p}kYjYbSq_s3S!GnwCdX;-6K?>A^MlW~@W+hr1_WWGxPgd2V{r)k%}8 z`@Nt`HpQ1%gw>PhZxP~)DeN26sL+QQU{ z8=X<#AL%T$&gkq?(a0b{u))BWK7;|3><4RK5J@RX$ z(S}Z}XkyR`Cl$7Nme&@zL{?CO(=SFeS?(Ug7^y~jPwq$Bhw-+z)>A7RpO*1e4MwGS z!?tam!3yiN^P^z==2Ymif^Sn_MMZt9@54&BgyW9J6EEZ>7oa+7Fgzx|yzbw307XYE*cD0uWM1t?sq(m z9jBP~NW{6Df?8;77_ai$)T`wdKc0X%#E)|{;eJcBhe@f@T)URJue+whDml1xN zmNk61-cbkNU1R|d;RSR}>Pp7Y?F>1OlNfN&=47KVbsz1e6&y8Bh{?cg&1Ig3W01Gv zC7=XiEH4Ov!QLP$LC5WJ9~lk#6lZ-T{B=vW=D7F#K=!-_N+yGmza~Cwnx=Xj)mX7z zOsJg`XhOIrpF3Ee5$Y!;&7`H-MHfA>{W(gimR9q3_d@AdIN>y^r~!^0L3@6yh{FJA z>EzuGB&7WeZtLNXZwe!lM@J>y-=h7@#@G- zXgt!HYgpi<3cuG<_PM-k4z6eGo;5Ik&8_$?xGvg!@iwHsU`34@

a z(_>eoHv$BXzpXj*;mu^oFsud6dmu+nts~s0GR4&i8>u2*lJ&g^edi)~L&fHF`xcb0 zRlm0+k!#^FXzcS(1Dbo z$w>yEMeASDt3M;-pnjYJ>FFYMSz%vE_BlG&wtWOzk0YpLW_ylg*ur|DWJUI- zU)0fQZnn~}h6#n}$U_9+RPq(KPbG9#r((|D*X_Q+&VaPaRJWHX1B2uOm}D=-pSeA| zhR@8Pilur$blSs}?7K9JcXk=E*Z4~AQ7G7zH%im$c?x$uW#moLkeS4Kfc<^9^U;isYM_8gVGaIzUR9D~IL)2H9n;n!s9NnmY0<<$#aIf_ z`1IjLOIEqGlv~ty7hQ-3Ebo$wPp@<3xx1PBd|)vPllIi*+^yybG1)n4@Mow`iQ~Uk zy<3a?txUP6(@-+g^=ESCVr9z5h=VmQOtWOqo((UBFr%t!*&o7(FaJV_`3sQ{TRiTD zv`Pd(%Ff8mjsBE)?T$<2r4-GI#KuNn z(2Sl_&rj`XC@hfY9^nSkKg0*`{Vn5JYMhT>v%jLuRmX@cxQV_F%>ZY03;o-XjeX! z{u9z*{{MJ!riBl|KwBqU0I16r=lKfpYYj5i)d>Lp(g6S(0|0jUEgA;^F2VrdD+vIQ zg#e%!dFSaVYyJT2hqFiX$$vX`EeU*xMq)jq_$2)|Rzp#2ej-eDaKZ>Lh^h%%=qyy5 zD)T!}9MHA|kM1^NC|;g;;8?S;e5y4;T6R{8Mysj-%hI0f|gTSlN#wK z_wVyF)F?1LL4uY_gV9M~LWey~`32+D1kCzCW1bO)v6NONErUiZy*jxyss14+u}CG3 z@GN0+Yht6gmi;A)jae;{9%Vf+dr0ZYaF}?U{)|;GdrtFk*yg&538zcqU~mvHy}(%% z6b{@WOzCBCR}$RM%w80Qsf|2(8<>)u2{uIPheT6MD6&hNwWhnSog1NO5uE@siIqt&7(?ZF9P1vHh>sFGY#2Hu^l9 zsQmcDo}It20F`lLG*yYn+6dFf#yB!3Q!GkL<7!xucei97_HwyKzpI(5s*5byJY(@) z^VUO9k%J`UQw7!jMG|hW(BsbMvI_&vn_Ioj)2d-!1cug5!zvCd;!&ml5F5xoOoaNujw}S<^xrt6cSXr8T(XA)5>H*s*rPtykI4 z{pdGWKmZndO(7R@GSG(hw#e_v2x=kHRhC)tfkQ7US`ae;W7Q4zAS@jya{2$&=+h|}gcH3EqYS5t{U4b~*sYd@|_;pMN? z{(afQ;=P0n2$cWr>R$h-b-ZD#;!?&=H#bMH#D_&YhO*+_W)fBF?dn#*7Q-{<<~-Xl z+X?S>2=iX9OMSC_?me`w#|_JD?#cLz(d>zb$BNxdKe!7%CyBw|v9qgsjaDmPIZ{*m z1pDXbEB*4d^UF&Qb%y7ih_)lLg5|bnJ*&(PClhT|IC}cAwY!b=d+VR;;+waG`MVkd z)6L0}j;--(JR7OuhK4m%p(xcQ8!DhcX3q7>e8h2moy`z5tqF$vLE&_gIl8&2^eRW> zO{I&07js#^Z6qY=?4HsNO)osy)(4F!kXJOgXMuoSPQfp@krr zRPEUW|J?hTvXs2s{TuY&E*2~D8Wa)J7_$}x_z;Yvt}j-A?<9$9ef*t z!`-NWrgVBJ9oDIj*f`_uy(zbTU<1<&aInt+w@ z()2pd@;!@5%{lI7Wd*FDgs1EWsFf}1#DXj<;d z$G{A{^q~grZ-t*8=*&z>hq!OT`mFr6hAQL~Izp

    !G3XJMyNDI`f{yt`-Wq5G0q zH6Feh_(D3PW_{#iTpBjaSHNc%(bm&*!i0O;{?lD1QCA-Tj*@lHo}JI`!n}7a_0b|jjAU627ByuEu zYM)$0#3$9u9RaD@s?|BNK2H&|EjUG*fQrK-f#_@)Ua)-*U_7 zs#K{NeD71P`wZ@jat#d$1%b91s>ZVmf9{3Hj z9dS+{Q+|Da;_D0bI({7&5h^!ELF|ej7#|g=XlF(rF-Te``l`P8EpR2Z0IqeCJIcT5 zhp8A3s=qHa070%X;S13JZJ-994~U}ro{#)z$4Zyd$#(z;j5E3hMN0fPZF&;x literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/misc/corporate.png b/purchase_format_editor/static/description/assets/misc/corporate.png new file mode 100755 index 0000000000000000000000000000000000000000..2eb13edbfa295a30633ab58ce6d412053e0081c0 GIT binary patch literal 1177 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 literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/misc/cybrosys-logo.png b/purchase_format_editor/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..cc3cc0ccfdaf8dff2e8ebcb010e24ad9e636b494 GIT binary patch literal 4496 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 B&Kv*$ literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/misc/logo.png b/purchase_format_editor/static/description/assets/misc/logo.png new file mode 100755 index 0000000000000000000000000000000000000000..478462d3e73d73cc9bae9fea8e7f8fac84fab049 GIT binary patch literal 3452 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 e!*|2?|H>Z_>p))&1OWs90000l? zWKy}bLYpqAEQ(GYLL;Gb(D`-#IL~wb=zX5=`+48*`+lDHkMH++vpn2fWTn-m0RWIC z9Kam{srDn};o#iz@f{BYjOs*k0)QL&sI?$TaIX_`;1CG_67>Kel?4EQfvMC#0pJ80 z0A>OKz_uI!ROyu+p7!7YJlNF*2NE3LoOvlAr055ZFhBlyRK=FmTchU@1VS5t^%)rBQM9x$MwS_ zIXL28E0Jutq+4j;o%BRKk^5frRo5||pMzOotWxt7e`AC8&_%_GFa5wg4|BIgM?sHX}t!3?X6PLp4$UBYR*G4H& zMWX78_VXrTlyZUMxJRvzIRlyY?ck;R``%gwo;iG&QYPkRhHGmxV&U|J?Y^rE3saY1 zG~M-*5Q7+U3lPx5rh}=!OE26Gy*noAY^$SS1z(p>+80-3tY&2q4P(pi=oiXZbv==y zXNz%@hg?y+v5^*UM&psGr?#W?#oy?vVT!Nq;xo2R2u5H<#RL5qj7dO4ac@0F^!ngf z&PKr*uOm|Ap(E|9ZzYaPLWnC%tr3r8Ip>Osz(!1gNeva3Mwcv72UG3Cw(^a2VSqj+ zi^Gw7-K8=_q3X|GY3d)JcoS`y2fuJ>cPr!LN#P&A2aWB|#WZhQ72J@Mi-2%_f2*#Y zN>HTSP7l8m-qvJ*mJe2QXf)d?xw#rCH_dEO(a3Z^O8y(8pbhe*mx~XuA}pYj%F=G$6K(s;ly_O+L&wbDL`GV~pO~%~ zb-PH}OteCdwx9+4m(buZi#6EN`j}3e6EiuG#AL|cKo&hdUL+J{m?}#zsV1<9ax%nz zu6S>pFkEA{-8Z>oTkYo&~Ct(r52;n35<_46W44SR|=yRZb>u`vCFL|O%y zvHd+g6~vOiaEwWo&Gx1)vM`!ybp5j9d~a2FcK#-HcUG{IW9kF$JJMax#<6T@tbvx@ z$jqUkmA=~0F9J@|)1nwszzpy4gMpl7U8}JtE7}@?iFZV zi%UJkou|bMX>_Z&mia{Gm1ER8qI{S!4wYU=N;1}ifE8wL*nd%HI-fmC8l2CMv-R~u zvLDDM5}tj44JzEQ*b$bs1|hT<=)srdA^a+{tvf8CrMN979i}O4ehAemf%4cedr{mn zGO;GJJ6*4d5f{8kimVX0tGi;q66V;a5r+ll#Tf1JQR?ITA_3c#FgN#Z&wSd7rsk1# zz@rm(^=;c#Bj>sSsWVIc7rsY+Ik(`8u_yE!zp6Cn)=S25Z^cV3AX(?Dbv!U6gQlBt zNC{m%*Y<{X>)BW2u_SzBEef}Y{Dt+>dGfohq3m#N@KS^KHSx!Gg!cfYpwHXRC9@B$ z4an`Ay4?85=X%4ZN>1Uk%ZcT8LJ)2eT3WnQW+Lo>r(h_TX1>tfcWOr&Dyk3?X=J36 zKdbY6a*BJb<@)(GsIql|R|Wyu3I4h}nRq`YC5Rbn8xj`^0>Gd#7-O`RF~;gJ+QJrX zZHvb2LZfZbXvv51_x~qE|3ZlfOZd6KWD8G&g28_;Fe9Qv8O)$)`p=ymdGocP0}$|T JxMpl%+CQV6u!vJ6b2LQ+{ z08k|5Hl8;V48(lSS)m0K*v8qWXaU4Y)|bKr#QoPfLFWB}1Vpy6w*bw8ppr_kLt{~G zg3c!!^cfdyd+o&tj0-_-IqKL|DT#v*Tt(VR^p4|6prn%In@+FjDyl+Ba-xF~Di*o1 zx1guX{>c}`ffisl;XpCP%2;L>T(T8x-gJ;p+_7=b(m`FN+@eG_S^4z(swp$6AOG}(RGqLPX`>E|>w!|QLqhG3-1qHCT)(Q)h~`IeQAoQ|B(Fe(k=IQDJyJ-)3slV5N9QB$+< zu4?=JxT>vkq}G80CL?V-ntJN=@c2yUm&LetGTO2T(#j^OseJ*DCoC?G5Q?B&pWvkm zOYoE;DdcSqJUen1_q3ZEmgOznZDExTJ)V_&Rh)`E95GzJ4&G^q{F$r}|7E&o>+(ec z64CLp)6^!M!3fo%=MZluDcd<1WlhCFjp4Bl4#q!@b*1&Xwa{w%sl7v6O-=ScLhV0; z47)u%PF004qYRdY9GTLSaf>OCK~;YtPt6V3z-srmem%XD3*m0au-^8>2S>(GiYsD) zpO-i4^Dmc2^2iIJL37{IB_*OpP`gM*{r#;A#$k<&;^~d;9KudWS?k0v&zimPlH?|J z;knX-i?W2q)DsQlGC4*m`V4HUu4;M&+t4(GUC+0%aXetc60Y;`z{a8cy)H|gYm={j z;l{W9T$SPNFVBC(rBJ#sc(pp-rX=*iu67=eLx|jWLQcNE{{sE{`T7@1Z)9bD8zf0( zjj~_mT4SZ%t3rjZ)!{+2vp?nO{UgKK5#yNL>do)RTlsz2bB}HLdTS3{kkn^F2U7gp zeaCg}X@l?hW~nDsTvy+m_*r&&mzT4%)(9!}{CMT15>^6t%fNQzma@FX@aRa|1l0z*qvGe-ASXo+H75MF{hm1@$B`s6e`mtp!u{1kM23&ZI?Q~aH zN9c6V;=6*9!4dO;r|zZd$_WOZQV@&;NNnA|Q?IR?yF8?du)`6$l_(0$V9J1RKmcV* zL8?eOFOMC}v{Q;TXr?v4(8$Y*4M*d5teg-LQu7*+Szj~fKj&n^&=_#Bn>!WDNFV)p zKhqa@bvz1L=JLch`E!DQQi`PCX&pZg7N>Eq;&or4tJE-I1D?u=@o}LTUVUV9Z1x9K zl-W1V4UY3U$sz7&6*jVHxCmv$zDA`E312662$dQQFCCh1p7TfJ34T$BgE}dRTB|LT-;YEoNK7ViA>jCqdQH zKBcB6G4S@&$Lel2T2^;NazX~5d1xAxU`Q7a_L)UzJ8>v}+Nh30S#B5{KE{W0 z#*57t-V&9JQeIkH6N@r-4+)waqjM8>2F_r#b(0B(>Dx`rM_;dK`EU>?=Qro7lB?mj zx7S_n@%OR(i)Ai{8Me<&+UvtElV8*v3lri0qIr4s zu+es*p>Y-FhM%-{8Q?+x5Ci4jtTNiRdwT3D*)8iinnteUB|-VY!51KxoFN{psB7JI zKNn5!NMef%;b~SiLeB68D2@4D9cerQV-6f;Tjg~E` z?bzd}7Tt$!x1AqrR-WumDLffbZQ^=ao6`5U;WZ~2%Nx&p^xjAh*d9)kkNG}$%5A+VOdR^iev6_9*0mc5>s>W({cMY*pr&6E+Y%Cnm&&+Xg{{c=MKK%dy literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/misc/right-arrow.png b/purchase_format_editor/static/description/assets/misc/right-arrow.png new file mode 100755 index 0000000000000000000000000000000000000000..730984a0635c971661c6ccafc2fec83a2dee1632 GIT binary patch literal 967 zcmeAS@N?(olHy`uVBq!ia0vp^4j?SR1|)y|Tss#?v7|ftIx;Y9?C1WI$O_~uBzpw; zGB8xBF)%c=0965n8eT9klo~KFyh>nTu$sZZAYL$MSD+10f-TA0-33Sk!B6Mi^+1ZV zz$3C4NGE{this?wKn8n>r>`sfGj=I%4b4g4AADwDU~2MoaSW-r_4bZ!MsT3Sv5((f zj=RO|;#kCS=}}7XL8tDJKN>$74xU}fF>8v}j2jEzPD!~~B4D&6V6&)t;iMZW0#n(z zM5Ri70$rZ#WgS)W=yTpFs=aW@vwOvPpZ>4?exP>p_lE`Vt_v~(ZHIzC=1bq*>z0|h zL$rJ5x+8)Hu@2<{TBXXnCcMxU`O+qJVZYbXC(k_;P{=m zoy94kwEF;O_c>0rrT6}e&e$-V*P8MWRF-G>B-@r{Pc42%%tE>x>1&hK=0!iJj_bFU=Io=^F7{M7dD=9_DxO9dJFZ;G)nC3NUIDloLooN-(2f)V94EWEpbZ~Z zma#f64Z4`2v~cT7d6xV)e1{w_vmT7DkGCt5Ur=3pHLa;*5f zc07h}=2!o+4~gCP*(>6B_RmB<{nj$JXpjQAjcb8g9~ebTzfTZ+G3jl;^Y7o%?q9u4 zqt|+Q)SXiP9{zRhqs#@~+wA#bT zfk+J(R@O0J6qFZ;eYtTmFny?&xJHzuB$lLFB^RXvDF!10BO_e{b6q2|5JN*N69X#~ zLu~^CD+2>trOB!&8glbfGSez?Yw)Spo(a^T0k@$fGdH!kBr&%Dw;t&%E;pba22WQ% Jmvv4FO#tlhdcptz literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/misc/star.png b/purchase_format_editor/static/description/assets/misc/star.png new file mode 100755 index 0000000000000000000000000000000000000000..2eb9ab29f722b495b4ab0ece3ad21e7b82394f3a GIT binary patch literal 1642 zcmZ{kX;cze6o8)_%zz{|jy5T_nC3DXlBrQ{D7dhQ;$CJZkW?-u8k#BY>10{CONm2j zS(=t;$2D_paV=a*EprsoO3bpw(qZPuoHIYV=iK|<`|kP9`*+i+6h{PXBMbn5aCUNV zmvO^CiG;{%wRoyg2F1g6WIF(A&cnY2D#_-}K~C;u0Aln2;3fm`RrbV{01$}=VD2CQ z*n9vq!g&pDdu0pAA)=#$jI#J*-xx2$&*4tK5i%b9H>F2${jvtib|&MYvrtXNjmD2) z)OG-rbe$dSJbcS0T_J9h7=ba)GD@Y)Z4%I{m53aoBzyMi|aQIi2zE_#N__+%0Hh141 zV)v5xuhe>IzQVca4VwMpL#TJ;||e=cM%{MUEOMwYghQ!59{b=zmX~BHv&X<2eM{7 zJT{LNN4icLnLvP!Ewik?>43_Xk-W6c`%|~N(~8YTkzAaqSziUr9cx*2f;C`S`~LK_)qAtD+(@_ z6v)gsESJaedKJd zzMz`=g#GSPA~$k=udY|Ck-;UK7mXS^iJi>UHmr|=+dAkFfWO*vQtF3n``AUWOpI3? zEF}hZww+i>%gM19tGjo*w3hd8vdUn+qao=`9HKDAWo2bhnFHc|DnA>=!aD;R&9l;G zrwWa{zm=aejS%-0j~v5vqoQM1>P{-W3`>n-jAv(FHm_W(Z&AkG=F|jOSK(ic-5I2q zp)4Nr(r>kMkR2V|4FR2FtE>9(`mG_+yRU7hY2+g&CU!hL`;9QIiA=8G?$yohE_xEw)9HD{!>f`iy!}WHSiub;MVCN)k+@T?13yj(M z(wU){=%JR=)P$>47q{kzQ08MINlTgk`ZK3+cJZm))tuKtzop@eZ`mK)k_5)%yT-<7 z9>}Gn-m+S!GDG8%lC}JoekmU2LoW3`l}DF}z68$8dut|51%IB1IJv-dbq-=RL+?-g z=H}ajB8^x1x2RWPoD5kp^ImzQ|4BH!2EX=(xl8!F0Zc!ydxizbxY`!bGQy8pW&lifskd_1( zFYZ(53wrAabdp3|dUg+}e8=5%A|-3}=ymk=whX)8wAK1OEL4xj(R3@wdMT7sJC|V^ z|CRlxnxbWERUd83oF(h=9O)w4%Br^=^;tdl>2P8Jr}${b9}yZ0%ebU-feJ@{fnBBz zfGa-!2#}ixv)1#}|2o?*cE3B2V4sr0LpUbrqX$H{3T>_F7mKZQOx9b)1)$F|JAE&Q zk~~ENSjzTiKU4itCzMx8>g>~i?O)fwAEN9c)Q;mH+0mFo`w+J z!*=e&?(uBBSn&Qnk5{r7?c-OxFaJUbhB{pk_WapsiU)LORr3U6oHn`k4GMwBkwiW3 zD*crDtFt&2UOG^Vq{eP>JGmCMJ#_qOG1MYg^(i+MY4Mb~cg zU!IW~3F^Z|k&AaZ6EokH)C$R2*K0o-%WkMH8}GxW2eKL1pc4!k00xc07^5wWF%}+Z zGc3j&YqrY>jmDzU^5^=x{wIWl(OJys9}5vrqGDu%{(nEPSs{!Fc3?>OkDYB@-lZ}J NIO8b}Rk(wRe*?eI-Sq$f literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/misc/support.png b/purchase_format_editor/static/description/assets/misc/support.png new file mode 100755 index 0000000000000000000000000000000000000000..4f18b8b8201e3a268ab1d8ceb8bf46d7a7a37dd9 GIT binary patch literal 3892 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 literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/misc/whatsapp.png b/purchase_format_editor/static/description/assets/misc/whatsapp.png new file mode 100755 index 0000000000000000000000000000000000000000..d513a5356b2564f545f2edcb0b80dd3dbff9629b GIT binary patch literal 5097 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 literal 0 HcmV?d00001 diff --git a/purchase_format_editor/static/description/assets/modules/employee_purchase_requisition.png b/purchase_format_editor/static/description/assets/modules/employee_purchase_requisition.png new file mode 100644 index 0000000000000000000000000000000000000000..5195621d20d0c4a4653c24354c03e03e6e2138cf GIT binary patch literal 86124 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