diff --git a/customer_product_qrcode/README.rst b/customer_product_qrcode/README.rst new file mode 100755 index 000000000..cc37ff2b8 --- /dev/null +++ b/customer_product_qrcode/README.rst @@ -0,0 +1,54 @@ +.. 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 + +Customer and Product QR Code Generator +====================================== +The Customer and Product QRCode Generator Helps You to Generate Unique +QR Codes to your Products or Customers + +Configuration +============= +Need to set the prefix for product and Customer Qr code + +Company +------- +* `Cybrosys Techno Solutions `__ + + +License +------- +General Public License, Version 3 (LGPL v3). +( https://www.gnu.org/licenses/lgpl-3.0-standalone.html) + + +Credits +------- +* Developer:(V14) Sarath Suresh , + (V15) Midilaj V K , + (V16) Athira P S , + (V17) Anjhana A K , + (V18) Ammu raj, Ayana KP, +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/customer_product_qrcode/__init__.py b/customer_product_qrcode/__init__.py new file mode 100755 index 000000000..2fb05bb5e --- /dev/null +++ b/customer_product_qrcode/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author:Ayana KP() + +# You can modify it under the terms of the GNU AFFERO +# 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 AFFERO GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import models +from . import report + diff --git a/customer_product_qrcode/__manifest__.py b/customer_product_qrcode/__manifest__.py new file mode 100755 index 000000000..c1d71c888 --- /dev/null +++ b/customer_product_qrcode/__manifest__.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author:Ayana KP() + +# You can modify it under the terms of the GNU AFFERO +# 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 AFFERO GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +{ + 'name': 'Customer and Product QR Code Generator', + 'version': '18.0.1.0.0', + 'category': 'Extra Tools', + 'summary': 'Generate Unique QR Codes for Customers and Products', + 'description': '''QR Code, QR Code Generator, Odoo QR Code Generator, + Customer QR Code, Product QR Code, QR, QR Code Odoo''', + 'author': 'Cybrosys Techno solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'depends': ['base', 'sale_management', 'stock'], + 'data': [ + 'data/sequence.xml', + 'data/ir_actions_server_data.xml', + 'views/res_config_settings_view.xml', + 'views/res_partner_view.xml', + 'views/product_product_view.xml', + 'views/product_template_view.xml', + 'report/paperformat.xml', + 'report/report_action.xml', + 'report/customer_product_qrcode_template.xml', + ], + 'images': ['static/description/banner.png'], + 'license': 'LGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} + diff --git a/customer_product_qrcode/data/ir_actions_server_data.xml b/customer_product_qrcode/data/ir_actions_server_data.xml new file mode 100644 index 000000000..a12873878 --- /dev/null +++ b/customer_product_qrcode/data/ir_actions_server_data.xml @@ -0,0 +1,28 @@ + + + + Generate Qr + + + form,list + code + + for record in records: + if not record.sequence: + action = record.generate_sequence() + + + + + Generate Qr + + + form,list + code + + for record in records: + if not record.sequence: + action = record.generate_sequence() + + + \ No newline at end of file diff --git a/customer_product_qrcode/data/sequence.xml b/customer_product_qrcode/data/sequence.xml new file mode 100644 index 000000000..643add4ff --- /dev/null +++ b/customer_product_qrcode/data/sequence.xml @@ -0,0 +1,19 @@ + + + + + + product_sequence + product.product + + 5 + + + + customer_sequence + res.partner + + 5 + + + diff --git a/customer_product_qrcode/doc/RELEASE_NOTES.md b/customer_product_qrcode/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..93a916cd6 --- /dev/null +++ b/customer_product_qrcode/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 03.10.2024 +#### Version 18.0.1.0.0 +#### ADD +- Initial commit for Customer and Product QR Code Generator diff --git a/customer_product_qrcode/models/__init__.py b/customer_product_qrcode/models/__init__.py new file mode 100755 index 000000000..511575ebd --- /dev/null +++ b/customer_product_qrcode/models/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author:Ayana KP() + +# You can modify it under the terms of the GNU AFFERO +# 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 AFFERO GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import product_product +from . import product_template +from . import res_config_settings +from . import res_partner diff --git a/customer_product_qrcode/models/product_product.py b/customer_product_qrcode/models/product_product.py new file mode 100644 index 000000000..77ed9c18c --- /dev/null +++ b/customer_product_qrcode/models/product_product.py @@ -0,0 +1,111 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author:Ayana KP() + +# You can modify it under the terms of the GNU AFFERO +# 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 AFFERO GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +try: + import qrcode +except ImportError: + qrcode = None +try: + import base64 +except ImportError: + base64 = None +from io import BytesIO +from odoo import _, api, fields, models +from odoo.exceptions import UserError + + +class ProductProduct(models.Model): + """Extends the product model to include QR code functionality.""" + _inherit = 'product.product' + + sequence = fields.Char(string="QR Sequence", readonly=True, + help='to add sequence') + qr = fields.Binary(string="QR Code", help='Qr file') + + @api.model_create_multi + def create(self, vals_list): + """Create a new product and assign a unique QR sequence and QR code + to it.""" + for vals in vals_list: + prefix = self.env['ir.config_parameter'].sudo().get_param( + 'customer_product_qr.config.product_prefix') + if not prefix: + raise UserError(_('Set A Product Prefix In General Settings')) + prefix = str(prefix) + seq = prefix + self.env['ir.sequence'].next_by_code( + 'product.product') or _('New') + vals['sequence'] = seq + qr = qrcode.QRCode( + version=1, + error_correction=qrcode.constants.ERROR_CORRECT_L, + box_size=10, + border=4, + ) + qr.add_data(vals['sequence']) + qr.make(fit=True) + img = qr.make_image() + temp = BytesIO() + img.save(temp, format="PNG") + qr_image = base64.b64encode(temp.getvalue()) + vals.update({'qr': qr_image}) + return super().create(vals_list) + + def generate_sequence(self): + prefix = self.env['ir.config_parameter'].sudo().get_param( + 'customer_product_qr.config.product_prefix') + if not prefix: + raise UserError( + _('Set A Customer Prefix In General Settings')) + prefix = str(prefix) + self.sequence = prefix + self.env['ir.sequence'].next_by_code( + 'product.product') or '/' + + def generate_qr(self): + """Generate a QR code based on the product's sequence and store it in + the 'qr' field of the product.""" + if qrcode and base64: + if not self.sequence: + self.generate_sequence() + qr = qrcode.QRCode( + version=1, + error_correction=qrcode.constants.ERROR_CORRECT_L, + box_size=10, + border=4, + ) + qr.add_data(self.sequence) + qr.make(fit=True) + img = qr.make_image() + temp = BytesIO() + img.save(temp, format="PNG") + qr_image = base64.b64encode(temp.getvalue()) + self.write({'qr': qr_image}) + return self.env.ref( + 'customer_product_qrcode.print_qr1').report_action(self, data={ + 'data': self.id, 'type': 'prod'}) + else: + raise UserError( + _('Necessary Requirements To Run This Operation Is Not' + ' Satisfied')) + + def get_product_by_qr(self, **args): + """Retrieve a product based on the provided QR sequence.""" + return self.env['product.product'].search( + [('sequence', '=', self.id), ], limit=1).id diff --git a/customer_product_qrcode/models/product_template.py b/customer_product_qrcode/models/product_template.py new file mode 100644 index 000000000..8b62c84e1 --- /dev/null +++ b/customer_product_qrcode/models/product_template.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author:Ayana KP() + +# You can modify it under the terms of the GNU AFFERO +# 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 AFFERO GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import models + + +class ProductTemplate(models.Model): + """Extends the product.template model to generate QR codes for all + related product variants.""" + _inherit = 'product.template' + + def generate_sequence(self): + for rec in self.product_variant_ids: + if not rec.sequence: + rec.generate_sequence() + + def generate_qr(self): + """Generate QR codes for all product variants associated with the + product template.""" + for rec in self.product_variant_ids: + return rec.generate_qr() diff --git a/customer_product_qrcode/models/res_config_settings.py b/customer_product_qrcode/models/res_config_settings.py new file mode 100644 index 000000000..08a2d6ec0 --- /dev/null +++ b/customer_product_qrcode/models/res_config_settings.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author:Ayana KP() +# You can modify it under the terms of the GNU AFFERO +# 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 AFFERO GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class ResConfigSettings(models.TransientModel): + """Extends the res.config.settings model to include configuration + settings for QR code prefixes.""" + _inherit = 'res.config.settings' + + customer_prefix = fields.Char(string="Customer QR Prefix", + help='Customer Qr prefix') + product_prefix = fields.Char(string="Product QR Prefix", + help='Product Qr prefix') + + def get_values(self): + """fRetrieve the current configuration values for QR code prefixes.""" + res = super().get_values() + customer_prefix = self.env["ir.config_parameter"].get_param( + "customer_product_qr.config.customer_prefix") + product_prefix = self.env["ir.config_parameter"].get_param( + "customer_product_qr.config.product_prefix") + res.update({ + 'customer_prefix': customer_prefix if type( + customer_prefix) else False, + 'product_prefix': product_prefix if type(product_prefix) else False + } + ) + return res + + def set_values(self): + """Set the configuration values for QR code prefixes.""" + self.env['ir.config_parameter'].sudo().set_param( + 'customer_product_qr.config.customer_prefix', self.customer_prefix) + self.env['ir.config_parameter'].sudo().set_param( + 'customer_product_qr.config.product_prefix', self.product_prefix) + super().set_values() diff --git a/customer_product_qrcode/models/res_partner.py b/customer_product_qrcode/models/res_partner.py new file mode 100644 index 000000000..c184a49df --- /dev/null +++ b/customer_product_qrcode/models/res_partner.py @@ -0,0 +1,111 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author:Ayana KP() + +# You can modify it under the terms of the GNU AFFERO +# 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 AFFERO GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +try: + import qrcode +except ImportError: + qrcode = None +try: + import base64 +except ImportError: + base64 = None +from io import BytesIO + +from odoo import api, fields, models, _ +from odoo.exceptions import UserError + + +class ResPartners(models.Model): + """Extends the res partner model to include QR code functionality.""" + _inherit = 'res.partner' + + sequence = fields.Char(string="QR Sequence", readonly=True) + qr = fields.Binary(string="QR Code", help='Used for Qr code') + + def init(self): + """Initialize the QR sequence for customer partners with a combination + of 'DEF', partner's name (without spaces), and partner's ID.""" + for record in self.env['res.partner'].search( + [('customer_rank', '=', True)]): + name = record.name.replace(" ", "") + record.sequence = 'DEF' + name.upper() + str(record.id) + + @api.model_create_multi + def create(self, vals_list): + """Create a new partner record and assign a unique QR sequence to + it.""" + for vals in vals_list: + prefix = self.env['ir.config_parameter'].sudo().get_param( + 'customer_product_qr.config.customer_prefix') + if not prefix: + raise UserError(_('Set A Customer Prefix In General Settings')) + prefix = str(prefix) + seq = prefix + self.env['ir.sequence'].next_by_code( + 'res.partner') or '/' + vals['sequence'] = seq + return super().create(vals_list) + + @api.model + def write(self, vals): + """ this fn is to write vals""" + return super().write(vals) + + def generate_sequence(self): + prefix = self.env['ir.config_parameter'].sudo().get_param( + 'customer_product_qr.config.customer_prefix') + if not prefix: + raise UserError( + _('Set A Customer Prefix In General Settings')) + prefix = str(prefix) + self.sequence = prefix + self.env['ir.sequence'].next_by_code( + 'res.partner') or '/' + + def generate_qr(self): + """Generate a QR code based on the partner's sequence and store it in + the 'qr' field of the partner record.""" + if qrcode and base64: + if not self.sequence: + self.generate_sequence() + qr = qrcode.QRCode( + version=1, + error_correction=qrcode.constants.ERROR_CORRECT_L, + box_size=10, + border=4, + ) + qr.add_data(self.sequence) + qr.make(fit=True) + img = qr.make_image() + temp = BytesIO() + img.save(temp, format="PNG") + qr_image = base64.b64encode(temp.getvalue()) + self.write({'qr': qr_image}) + return self.env.ref( + 'customer_product_qrcode.print_qr').report_action(self, data={ + 'data': self.id, 'type': 'cust'}) + else: + raise UserError( + _('Necessary Requirements To Run This Operation Is Not ' + 'Satisfied')) + + def get_partner_by_qr(self, **args): + """THis fn is to get partner by qr """ + return self.env['res.partner'].search([('sequence', '=', self.id), ], + limit=1).id diff --git a/customer_product_qrcode/report/__init__.py b/customer_product_qrcode/report/__init__.py new file mode 100755 index 000000000..45bc2a331 --- /dev/null +++ b/customer_product_qrcode/report/__init__.py @@ -0,0 +1,21 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author:Anjhana A K() +# You can modify it under the terms of the GNU AFFERO +# 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 AFFERO GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import parser diff --git a/customer_product_qrcode/report/customer_product_qrcode_template.xml b/customer_product_qrcode/report/customer_product_qrcode_template.xml new file mode 100755 index 000000000..571af0421 --- /dev/null +++ b/customer_product_qrcode/report/customer_product_qrcode_template.xml @@ -0,0 +1,52 @@ + + + + + + + diff --git a/customer_product_qrcode/report/paperformat.xml b/customer_product_qrcode/report/paperformat.xml new file mode 100755 index 000000000..ebceb24c6 --- /dev/null +++ b/customer_product_qrcode/report/paperformat.xml @@ -0,0 +1,20 @@ + + + + + PDF Report + + custom + 100 + 100 + Portrait + 10 + 0 + 10 + 10 + + 80 + 90 + + diff --git a/customer_product_qrcode/report/parser.py b/customer_product_qrcode/report/parser.py new file mode 100755 index 000000000..f1870ee44 --- /dev/null +++ b/customer_product_qrcode/report/parser.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author:Anjhana A K() +# You can modify it under the terms of the GNU AFFERO +# 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 AFFERO GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import models, api +from odoo.http import request + + +class CustomerQrTemplate(models.AbstractModel): + """Abstract model for generating the customer QR template report.""" + _name = 'report.customer_product_qrcode.customer_qr_template' + + @api.model + def _get_report_values(self, docids, data=None): + """Get the report values for generating the customer QR template.""" + if data['type'] == 'cust': + dat = [request.env['res.partner'].browse(data['data'])] + elif data['type'] == 'all': + dat = [request.env['product.product'].search( + [('product_tmpl_id', '=', data['data'])])] + else: + dat = request.env['product.product'].browse(data['data']) + return { + 'data': dat, + } diff --git a/customer_product_qrcode/report/report_action.xml b/customer_product_qrcode/report/report_action.xml new file mode 100644 index 000000000..c62a58652 --- /dev/null +++ b/customer_product_qrcode/report/report_action.xml @@ -0,0 +1,29 @@ + + + + + + QR code + res.partner + qweb-pdf + customer_product_qrcode.customer_qr_template + customer_product_qrcode.customer_qr_template + + '%s - Badge' % object.name + + report + + + + QR code + product.product + qweb-pdf + customer_product_qrcode.customer_qr_template + customer_product_qrcode.customer_qr_template + + '%s - Badge' % object.name + + report + + + diff --git a/customer_product_qrcode/static/description/assets/cybro-icon.png b/customer_product_qrcode/static/description/assets/cybro-icon.png new file mode 100644 index 000000000..06e73e11d Binary files /dev/null and b/customer_product_qrcode/static/description/assets/cybro-icon.png differ diff --git a/customer_product_qrcode/static/description/assets/cybro-odoo.png b/customer_product_qrcode/static/description/assets/cybro-odoo.png new file mode 100644 index 000000000..ed02e07a4 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/cybro-odoo.png differ diff --git a/customer_product_qrcode/static/description/assets/h2.png b/customer_product_qrcode/static/description/assets/h2.png new file mode 100644 index 000000000..0bfc4707d Binary files /dev/null and b/customer_product_qrcode/static/description/assets/h2.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/arrows-repeat.svg b/customer_product_qrcode/static/description/assets/icons/arrows-repeat.svg new file mode 100644 index 000000000..1d7efabc5 --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/arrows-repeat.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/banner-1.png b/customer_product_qrcode/static/description/assets/icons/banner-1.png new file mode 100644 index 000000000..c180db172 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/banner-1.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/banner-2.svg b/customer_product_qrcode/static/description/assets/icons/banner-2.svg new file mode 100644 index 000000000..e606d97d9 --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/banner-2.svg @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/banner-bg.png b/customer_product_qrcode/static/description/assets/icons/banner-bg.png new file mode 100644 index 000000000..a8238d3c0 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/banner-bg.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/banner-bg.svg b/customer_product_qrcode/static/description/assets/icons/banner-bg.svg new file mode 100644 index 000000000..b1378103e --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/banner-bg.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/banner-call.svg b/customer_product_qrcode/static/description/assets/icons/banner-call.svg new file mode 100644 index 000000000..96c687e81 --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/banner-call.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/banner-mail.svg b/customer_product_qrcode/static/description/assets/icons/banner-mail.svg new file mode 100644 index 000000000..cbf0d158d --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/banner-mail.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/banner-pattern.svg b/customer_product_qrcode/static/description/assets/icons/banner-pattern.svg new file mode 100644 index 000000000..9c1c7e101 --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/banner-pattern.svg @@ -0,0 +1,343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/banner-promo.svg b/customer_product_qrcode/static/description/assets/icons/banner-promo.svg new file mode 100644 index 000000000..d52791b11 --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/banner-promo.svg @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/brand-pair.svg b/customer_product_qrcode/static/description/assets/icons/brand-pair.svg new file mode 100644 index 000000000..d8db7fc1e --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/brand-pair.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/check.png b/customer_product_qrcode/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/check.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/chevron.png b/customer_product_qrcode/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/chevron.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/close-icon.svg b/customer_product_qrcode/static/description/assets/icons/close-icon.svg new file mode 100644 index 000000000..df8cce37a --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/close-icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/cogs.png b/customer_product_qrcode/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/cogs.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/collabarate-icon.svg b/customer_product_qrcode/static/description/assets/icons/collabarate-icon.svg new file mode 100644 index 000000000..dd4e10518 --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/collabarate-icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/customer_product_qrcode/static/description/assets/icons/consultation.png b/customer_product_qrcode/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/consultation.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/cybro-logo.png b/customer_product_qrcode/static/description/assets/icons/cybro-logo.png new file mode 100644 index 000000000..ff4b78220 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/cybro-logo.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/down.svg b/customer_product_qrcode/static/description/assets/icons/down.svg new file mode 100644 index 000000000..f21c36271 --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/customer_product_qrcode/static/description/assets/icons/ecom-black.png b/customer_product_qrcode/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/ecom-black.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/education-black.png b/customer_product_qrcode/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/education-black.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/faq.png b/customer_product_qrcode/static/description/assets/icons/faq.png new file mode 100644 index 000000000..4250b5b81 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/faq.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/feature-icon.svg b/customer_product_qrcode/static/description/assets/icons/feature-icon.svg new file mode 100644 index 000000000..fa0ea6850 --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/feature-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/feature.png b/customer_product_qrcode/static/description/assets/icons/feature.png new file mode 100644 index 000000000..ac7a785c0 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/feature.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/gear.svg b/customer_product_qrcode/static/description/assets/icons/gear.svg new file mode 100644 index 000000000..0cc66b6ea --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/gear.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/hero.gif b/customer_product_qrcode/static/description/assets/icons/hero.gif new file mode 100644 index 000000000..380654dfe Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/hero.gif differ diff --git a/customer_product_qrcode/static/description/assets/icons/hire-odoo.svg b/customer_product_qrcode/static/description/assets/icons/hire-odoo.svg new file mode 100644 index 000000000..e1ac089b0 --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/hire-odoo.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/hotel-black.png b/customer_product_qrcode/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/hotel-black.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/license.png b/customer_product_qrcode/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/license.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/life-ring-icon.svg b/customer_product_qrcode/static/description/assets/icons/life-ring-icon.svg new file mode 100644 index 000000000..3ae6e1d89 --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/life-ring-icon.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/lifebuoy.png b/customer_product_qrcode/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/lifebuoy.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/mail.svg b/customer_product_qrcode/static/description/assets/icons/mail.svg new file mode 100644 index 000000000..1eedde695 --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/customer_product_qrcode/static/description/assets/icons/manufacturing-black.png b/customer_product_qrcode/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/manufacturing-black.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/notes.png b/customer_product_qrcode/static/description/assets/icons/notes.png new file mode 100644 index 000000000..ee5e95404 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/notes.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/notification icon.svg b/customer_product_qrcode/static/description/assets/icons/notification icon.svg new file mode 100644 index 000000000..053189973 --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/notification icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/odoo-consultancy.svg b/customer_product_qrcode/static/description/assets/icons/odoo-consultancy.svg new file mode 100644 index 000000000..e05f65bde --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/odoo-consultancy.svg @@ -0,0 +1,4 @@ + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/odoo-licencing.svg b/customer_product_qrcode/static/description/assets/icons/odoo-licencing.svg new file mode 100644 index 000000000..2606c88b0 --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/odoo-licencing.svg @@ -0,0 +1,3 @@ + + + diff --git a/customer_product_qrcode/static/description/assets/icons/odoo-logo.png b/customer_product_qrcode/static/description/assets/icons/odoo-logo.png new file mode 100644 index 000000000..0e4d0eb5a Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/odoo-logo.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/patter.svg b/customer_product_qrcode/static/description/assets/icons/patter.svg new file mode 100644 index 000000000..25c9c0a8f --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/patter.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/pattern1.png b/customer_product_qrcode/static/description/assets/icons/pattern1.png new file mode 100644 index 000000000..09ab0fb2d Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/pattern1.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/pos-black.png b/customer_product_qrcode/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/pos-black.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/puzzle-piece-icon.svg b/customer_product_qrcode/static/description/assets/icons/puzzle-piece-icon.svg new file mode 100644 index 000000000..3e9ad9373 --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/puzzle-piece-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/puzzle.png b/customer_product_qrcode/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/puzzle.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/replace-icon.svg b/customer_product_qrcode/static/description/assets/icons/replace-icon.svg new file mode 100644 index 000000000..d0e3a7af1 --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/replace-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/restaurant-black.png b/customer_product_qrcode/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/restaurant-black.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/screenshot-main.png b/customer_product_qrcode/static/description/assets/icons/screenshot-main.png new file mode 100644 index 000000000..575f8e676 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/screenshot-main.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/screenshot.png b/customer_product_qrcode/static/description/assets/icons/screenshot.png new file mode 100644 index 000000000..cef272529 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/screenshot.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/service-black.png b/customer_product_qrcode/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/service-black.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/skype-fill.svg b/customer_product_qrcode/static/description/assets/icons/skype-fill.svg new file mode 100644 index 000000000..c17423639 --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/skype-fill.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/skype.png b/customer_product_qrcode/static/description/assets/icons/skype.png new file mode 100644 index 000000000..51b409fb3 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/skype.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/skype.svg b/customer_product_qrcode/static/description/assets/icons/skype.svg new file mode 100644 index 000000000..df3dad39b --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/skype.svg @@ -0,0 +1,3 @@ + + + diff --git a/customer_product_qrcode/static/description/assets/icons/star-1.svg b/customer_product_qrcode/static/description/assets/icons/star-1.svg new file mode 100644 index 000000000..7e55ab162 --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/star-1.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/star-2.svg b/customer_product_qrcode/static/description/assets/icons/star-2.svg new file mode 100644 index 000000000..5ae9f507a --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/star-2.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/support.png b/customer_product_qrcode/static/description/assets/icons/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/support.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/test-1 - Copy.png b/customer_product_qrcode/static/description/assets/icons/test-1 - Copy.png new file mode 100644 index 000000000..f6a902663 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/test-1 - Copy.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/test-1.png b/customer_product_qrcode/static/description/assets/icons/test-1.png new file mode 100644 index 000000000..0908add2b Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/test-1.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/test-2.png b/customer_product_qrcode/static/description/assets/icons/test-2.png new file mode 100644 index 000000000..4671fe91e Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/test-2.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/trading-black.png b/customer_product_qrcode/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/trading-black.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/training.png b/customer_product_qrcode/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/training.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/translate.svg b/customer_product_qrcode/static/description/assets/icons/translate.svg new file mode 100644 index 000000000..af9c8a1aa --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/translate.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/update.png b/customer_product_qrcode/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/update.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/user.png b/customer_product_qrcode/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/user.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/video.png b/customer_product_qrcode/static/description/assets/icons/video.png new file mode 100644 index 000000000..576705b17 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/video.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/whatsapp.png b/customer_product_qrcode/static/description/assets/icons/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/whatsapp.png differ diff --git a/customer_product_qrcode/static/description/assets/icons/wrench-icon.svg b/customer_product_qrcode/static/description/assets/icons/wrench-icon.svg new file mode 100644 index 000000000..174b5a465 --- /dev/null +++ b/customer_product_qrcode/static/description/assets/icons/wrench-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/customer_product_qrcode/static/description/assets/icons/wrench.png b/customer_product_qrcode/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/customer_product_qrcode/static/description/assets/icons/wrench.png differ diff --git a/customer_product_qrcode/static/description/assets/modules/1.gif b/customer_product_qrcode/static/description/assets/modules/1.gif new file mode 100644 index 000000000..ae3a880a2 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/modules/1.gif differ diff --git a/customer_product_qrcode/static/description/assets/modules/2.gif b/customer_product_qrcode/static/description/assets/modules/2.gif new file mode 100644 index 000000000..d19e2b352 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/modules/2.gif differ diff --git a/customer_product_qrcode/static/description/assets/modules/3.png b/customer_product_qrcode/static/description/assets/modules/3.png new file mode 100644 index 000000000..8513873ea Binary files /dev/null and b/customer_product_qrcode/static/description/assets/modules/3.png differ diff --git a/customer_product_qrcode/static/description/assets/modules/4.png b/customer_product_qrcode/static/description/assets/modules/4.png new file mode 100644 index 000000000..3bedf7981 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/modules/4.png differ diff --git a/customer_product_qrcode/static/description/assets/modules/5.png b/customer_product_qrcode/static/description/assets/modules/5.png new file mode 100644 index 000000000..0e311ca87 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/modules/5.png differ diff --git a/customer_product_qrcode/static/description/assets/modules/6.jpg b/customer_product_qrcode/static/description/assets/modules/6.jpg new file mode 100644 index 000000000..67c7f7062 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/modules/6.jpg differ diff --git a/customer_product_qrcode/static/description/assets/screenshots/1.png b/customer_product_qrcode/static/description/assets/screenshots/1.png new file mode 100644 index 000000000..c3442c262 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/screenshots/1.png differ diff --git a/customer_product_qrcode/static/description/assets/screenshots/2.png b/customer_product_qrcode/static/description/assets/screenshots/2.png new file mode 100644 index 000000000..7c2356048 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/screenshots/2.png differ diff --git a/customer_product_qrcode/static/description/assets/screenshots/3.png b/customer_product_qrcode/static/description/assets/screenshots/3.png new file mode 100644 index 000000000..0a9470839 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/screenshots/3.png differ diff --git a/customer_product_qrcode/static/description/assets/screenshots/4.png b/customer_product_qrcode/static/description/assets/screenshots/4.png new file mode 100644 index 000000000..8a876dd63 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/screenshots/4.png differ diff --git a/customer_product_qrcode/static/description/assets/screenshots/5.png b/customer_product_qrcode/static/description/assets/screenshots/5.png new file mode 100644 index 000000000..a77fabd3f Binary files /dev/null and b/customer_product_qrcode/static/description/assets/screenshots/5.png differ diff --git a/customer_product_qrcode/static/description/assets/screenshots/GIF_NEW-.gif b/customer_product_qrcode/static/description/assets/screenshots/GIF_NEW-.gif new file mode 100644 index 000000000..6b53d6367 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/screenshots/GIF_NEW-.gif differ diff --git a/customer_product_qrcode/static/description/assets/y18.jpg b/customer_product_qrcode/static/description/assets/y18.jpg new file mode 100644 index 000000000..eea1714f2 Binary files /dev/null and b/customer_product_qrcode/static/description/assets/y18.jpg differ diff --git a/customer_product_qrcode/static/description/banner.png b/customer_product_qrcode/static/description/banner.png new file mode 100644 index 000000000..844bfdf80 Binary files /dev/null and b/customer_product_qrcode/static/description/banner.png differ diff --git a/customer_product_qrcode/static/description/icon.png b/customer_product_qrcode/static/description/icon.png new file mode 100644 index 000000000..be6b6e542 Binary files /dev/null and b/customer_product_qrcode/static/description/icon.png differ diff --git a/customer_product_qrcode/static/description/index.html b/customer_product_qrcode/static/description/index.html new file mode 100644 index 000000000..a7465a684 --- /dev/null +++ b/customer_product_qrcode/static/description/index.html @@ -0,0 +1,1067 @@ + + + + + + Customer and Product QR Code Generator + + + + + + + + + + +
+
+ + + +
+
+ Community +
+
+ Enterprise +
+ + + + +
+
+ +
+
+
+
+

+ Generate Unique QR Codes for Customers and + Products. +

+

Customer and Product QR Code Generator +

+
+
+ +
+ +
+ +
+
+
+ +
+
+ +
+
+ +
+
+
+

Key + Heighlights

+
+
+
+
+ +
+
+ Easily Browse +
+

+ The Customer and Product QR Code + Generator allows the users to scan QR codes + simply and easily + from within your browser.

+
+
+
+
+
+ +
+
+ Unique Qr code +
+

+ This module helps to set up a unique QR code + to both your + products and customers. +

+
+
+
+
+
+ +
+
+ Compatibility +
+

+ Designed to work with both Odoo Community + and Enterprise editions. +

+
+
+ +
+
+ +
+
+
+ Customer and Product QR Code Generator +

+ Are you ready to make your business more + organized? +
Improve now! +

+ +
+
+ +
+
+
+ + + + +
+
+ +
+
+
+
+ acc_bg +
+ +
+
+
+
+

+ Set a Unique Prefix + +

+
+
+

+ Set the product and + customer prefixes from General + Settings Menu. + Set a Unique and Denotable + Prefix to Your Customers. +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + Customer QR Code +

+
+
+

+ Goto The Customer or + Form.Click the Generate QR + Button. + The QR Sequence will be + generated and the QR Code will + be printed as a PDF.

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ Print QR Code + +

+
+
+

+ Customer have a unique qr + sequence. Simply go to scan from + menu bar + and grant access to your device + camera, you’re ready to scan a + QR code using your + laptop or mobile devices +

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ + Product QR Code +

+
+
+

+ Goto The Products + Form. Click the Generate QR + Button. + The QR Sequence will be + generated and the QR Code will + be printed as a PDF.

+
+
+
+ +
+
+
+
+
+
+
+
+
+

+ Print QR Code + +

+
+
+

+ + Product have a unique qr + sequence. Simply go to scan from + menu bar + and grant access to your device + camera, you’re ready to scan a + QR code using your + laptop or mobile devices +

+
+
+
+ +
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+

+ Easily Brows.

+
+ +
+
+
+
+
+
+ +
+

+ Fast searching of Product.

+
+
+
+
+
+
+
+ +
+

+ Unique Qr code.

+
+
+
+
+
+
+
+
+
+
+ +
+ +
+ +
+

+ The module allows users to generate unique QR codes for customers and products, making it easier to share information and streamline transactions. +

+
+
+ +
+ +
+

+ QR codes enable quick access to customer profiles or product details, facilitating faster checkouts and improving the overall customer experience. +

+
+
+ +
+ +
+

+ There are no special hardware requirements; any device with internet access can generate and scan QR codes using a smartphone or tablet. +

+
+
+
+
+
+
+
+
+
+ +
+
+

+ Latest Release 18.0.1.0.0 +

+ + 30th September, 2024 + +
+
+
+
+
+ Add +
+
+
+
    +
  • + Initial Commit +
  • + +
+
+
+
+
+
+
+
+
+
+ + + + + + +
+

+ Our Services

+ +
+ +
+
+ .... +
+
+ +
+ + +
+
+ + + + + + diff --git a/customer_product_qrcode/views/product_product_view.xml b/customer_product_qrcode/views/product_product_view.xml new file mode 100644 index 000000000..78e2ae7cb --- /dev/null +++ b/customer_product_qrcode/views/product_product_view.xml @@ -0,0 +1,21 @@ + + + + + product.product.form.qr.inherit + product.product + + +
+ +
+ + + + +
+
diff --git a/customer_product_qrcode/views/product_template_view.xml b/customer_product_qrcode/views/product_template_view.xml new file mode 100644 index 000000000..d59bc592b --- /dev/null +++ b/customer_product_qrcode/views/product_template_view.xml @@ -0,0 +1,17 @@ + + + + + product.template.form.qr.inherit + product.template + + +
+ +
+
+
+
diff --git a/customer_product_qrcode/views/res_config_settings_view.xml b/customer_product_qrcode/views/res_config_settings_view.xml new file mode 100644 index 000000000..04591b8f1 --- /dev/null +++ b/customer_product_qrcode/views/res_config_settings_view.xml @@ -0,0 +1,41 @@ + + + + + res.config.inherit.qr + res.config.settings + + + +
+

Setup QRCode

+
+
+
+
+
+
+
+
+
+
+
diff --git a/customer_product_qrcode/views/res_partner_view.xml b/customer_product_qrcode/views/res_partner_view.xml new file mode 100644 index 000000000..6ee569464 --- /dev/null +++ b/customer_product_qrcode/views/res_partner_view.xml @@ -0,0 +1,21 @@ + + + + + res.partner.form.qr.inherit + res.partner + + +
+ +
+ + + + +
+