diff --git a/advance_signup_page/README.rst b/advance_signup_page/README.rst new file mode 100644 index 000000000..5cc2b996b --- /dev/null +++ b/advance_signup_page/README.rst @@ -0,0 +1,48 @@ +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.svg + :target: https://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Advance Signup Page +==================== +The user can create the Sign-Up page for their Odoo website using the Odoo Advance Sign Up tool. + +Configuration +============= +* No additional configurations needed + +Company +------- +* `Cybrosys Techno Solutions `__ + +License +------- +Affero General Public License, Version 3 (AGPL v3) +( https://www.gnu.org/licenses/agpl-3.0-standalone.html) + +Credits +------- +* Developers: (V15): Mufeeda Shirin , + (V16): Amal Varghese , +* 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/advance_signup_page/__init__.py b/advance_signup_page/__init__.py new file mode 100644 index 000000000..a3e810360 --- /dev/null +++ b/advance_signup_page/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################### +from . import controllers +from . import models diff --git a/advance_signup_page/__manifest__.py b/advance_signup_page/__manifest__.py new file mode 100644 index 000000000..6c4b45ddc --- /dev/null +++ b/advance_signup_page/__manifest__.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################### +{ + 'name': "Advance Signup Page", + 'version': '15.0.1.0.0', + 'category': 'Website', + 'summary': """The user can design a more creative and distinctive sign-up + page for their Odoo website by using Odoo Advance Sign Up.""", + 'description': """The user may create the Sign-Up page for their Odoo + website using the Odoo Advance Sign Up tool.Various dynamic fields can + be added by the Odoo admin as needed to the signup form.The website page + for signup, login, and password reset can have custom background picture + selected by the Odoo admin.Admins may also add content to the login, + register, and reset password pages from the Odoo backend.""", + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': "https://www.cybrosys.com", + 'depends': ['website', 'auth_signup'], + 'data': [ + 'security/ir.model.access.csv', + 'views/signup_configuration_views.xml', + 'views/signup_fields_views.xml', + 'views/auth_signup_templates.xml' + ], + 'images': ['static/description/banner.jpg'], + 'license': 'AGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/advance_signup_page/controllers/__init__.py b/advance_signup_page/controllers/__init__.py new file mode 100644 index 000000000..3ab2d461c --- /dev/null +++ b/advance_signup_page/controllers/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################### +from . import advanced_login_signup + diff --git a/advance_signup_page/controllers/advanced_login_signup.py b/advance_signup_page/controllers/advanced_login_signup.py new file mode 100644 index 000000000..43bb2c8e8 --- /dev/null +++ b/advance_signup_page/controllers/advanced_login_signup.py @@ -0,0 +1,192 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################### +import logging +from werkzeug.urls import url_encode +import odoo +from odoo import http +from odoo.exceptions import UserError +from odoo.http import request +from odoo.tools.translate import _ +from odoo.addons.web.controllers.main import Home +from odoo.addons.auth_signup.models.res_users import SignupError +from odoo.addons.web.controllers.main import ensure_db + +_logger = logging.getLogger(__name__) +SIGN_UP_REQUEST_PARAMS = {'db', 'login', 'debug', 'token', 'message', 'error', + 'scope', 'mode', + 'redirect', 'redirect_hostname', 'email', 'name', + 'partner_id', + 'password', 'confirm_password', 'city', 'country_id', + 'lang', 'signup_email'} +LOGIN_SUCCESSFUL_PARAMS = set() + + +class AdvancedLoginSignup(Home): + """Custom AdvancedLoginSignup Controller for Handling Login and Signup.This custom AdvancedLoginSignup + controller extends the default Odoo 'Home' controller to handle login and + signup functionality.It provides methods for web login and signup.""" + + @http.route('/web/login', type='http', auth="none") + def web_login(self, redirect=None, **kw): + """Function to Handle web login. """ + ensure_db() + request.params['login_success'] = False + if request.httprequest.method == 'GET' and redirect and \ + request.session.uid: + return request.redirect(redirect) + # Simulate hybrid auth=user/auth=public, despite using auth=none to be, + # able to redirect users when no db is selected - cfr ensure_db() + if request.env.uid is None: + if request.session.uid is None: + request.env["ir.http"]._auth_method_public() + else: + request.update_env(user=request.session.uid) + values = {k: v for k, v in request.params.items() if + k in SIGN_UP_REQUEST_PARAMS} + try: + values['databases'] = http.db_list() + except odoo.exceptions.AccessDenied: + values['databases'] = None + if request.httprequest.method == 'POST': + try: + uid = request.session.authenticate(request.db, + request.params['login'], + request.params['password']) + request.params['login_success'] = True + return request.redirect( + self._login_redirect(uid, redirect=redirect)) + except odoo.exceptions.AccessDenied as e: + if e.args == odoo.exceptions.AccessDenied().args: + values['error'] = _("Wrong login/password") + else: + values['error'] = e.args[0] + else: + if 'error' in request.params and request.params.get( + 'error') == 'access': + values['error'] = _( + 'Only employees can access this database. Please contact ' + 'the administrator.') + if 'login' not in values and request.session.get('auth_login'): + values['login'] = request.session.get('auth_login') + if not odoo.tools.config['list_db']: + values['disable_database_manager'] = True + values.update({ + 'header': True, + 'footer': True, + 'signup_url': '/web/signup', + }) + response = request.render('web.login', values) + response.headers['X-Frame-Options'] = 'SAMEORIGIN' + response.headers['Content-Security-Policy'] = "frame-ancestors 'self'" + configuration = request.env['signup.configuration'].sudo().search([( + 'website_id', '=', request.website.id)], limit=1) + response.qcontext.update(self.get_auth_signup_config()) + response.qcontext.update({ + 'is_hide_footer': bool(configuration.is_hide_footer) + }) + if request.session.uid: + if request.httprequest.method == 'GET' and request.params.get( + 'redirect'): + # Redirect if already logged in and redirect param is present + return request.redirect(request.params.get('redirect')) + # Add message for non-internal user account without redirect + # if account was just created + if response.location == '/web/login_successful' and kw.get( + 'confirm_password'): + return request.redirect_query('/web/login_successful', + query={'account_created': True}) + return response + + @http.route('/web/signup', type='http', auth='public', website=True, + sitemap=False) + def web_auth_signup(self, *args, **kw): + """Overridden the controller function to add the configuration into + the qcontext""" + qcontext = self.get_auth_signup_qcontext() + configuration = request.env['signup.configuration'].sudo(). \ + search([('website_id', '=', request.website.id)], limit=1) + for key in kw: + qcontext[key] = kw[key] + if configuration: + qcontext.update({ + 'configuration': configuration + }) + if 'error' not in qcontext and request.httprequest.method == 'POST': + try: + self.do_signup(qcontext) + # Send an account creation confirmation email + user = request.env['res.users'] + user_sudo = user.sudo().search( + user._get_login_domain(qcontext.get('login')), + order=user._get_login_order(), limit=1 + ) + template = request.env.ref( + 'auth_signup.mail_template_user_signup_account_created', + raise_if_not_found=False) + if user_sudo and template: + template.sudo().send_mail(user_sudo.id, force_send=True) + return self.web_login(*args, **kw) + except UserError as e: + qcontext['error'] = e.args[0] + except (SignupError, AssertionError) as e: + if request.env["res.users"].sudo().search( + [("login", "=", qcontext.get("login"))]): + qcontext["error"] = _( + "Another user is already registered using this email " + "address.") + else: + _logger.error("%s", e) + qcontext['error'] = _("Could not create a new account.") + elif 'signup_email' in qcontext: + user = request.env['res.users'].sudo().search( + [('email', '=', qcontext.get('signup_email')), + ('state', '!=', 'new')], limit=1) + if user: + return request.redirect('/web/login?%s' % url_encode( + {'login': user.login, 'redirect': '/web'})) + response = request.render('auth_signup.signup', qcontext) + response.headers['X-Frame-Options'] = 'SAMEORIGIN' + response.headers['Content-Security-Policy'] = "frame-ancestors 'self'" + return response + + def _prepare_signup_values(self, qcontext): + """Updated the values with newly added fields""" + values = super()._prepare_signup_values(qcontext) + configuration = request.env['signup.configuration'].sudo().search([], limit=1) + for field in configuration.signup_field_ids: + field_name = field.field_id.name + values[field_name] = qcontext.get(field_name) + return values + + @http.route('/web/signup', type='http', auth="public", website=True, + sitemap=False) + def website_signup(self): + """Perform website signup.""" + values = {} + configuration_signup = request.env[ + 'configuration.signup'].sudo().search([], limit=1) + if configuration_signup.is_show_terms_conditions: + values[ + 'terms_and_conditions'] = configuration_signup \ + .terms_and_conditions + return request.render( + "advance_signup_portal.advance_signup_portal.fields", values) diff --git a/advance_signup_page/doc/RELEASE_NOTES.md b/advance_signup_page/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..312aaaa5f --- /dev/null +++ b/advance_signup_page/doc/RELEASE_NOTES.md @@ -0,0 +1,6 @@ +## Module + +#### 08.07.2024 +#### Version 15.0.1.0.0 +#### ADD + - Initial Commit for Advance Signup Page diff --git a/advance_signup_page/models/__init__.py b/advance_signup_page/models/__init__.py new file mode 100644 index 000000000..975d784f8 --- /dev/null +++ b/advance_signup_page/models/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################### +from . import signup_configuration +from . import signup_field diff --git a/advance_signup_page/models/signup_configuration.py b/advance_signup_page/models/signup_configuration.py new file mode 100644 index 000000000..8c5d88a4c --- /dev/null +++ b/advance_signup_page/models/signup_configuration.py @@ -0,0 +1,78 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################### +from odoo import api, fields, models + + +class SignupConfiguration(models.Model): + """Model for Signup Configuration.This class represents the Signup + Configuration model for the Odoo website.It is used to configure the + signup page, including defining fields, content,and other settings.""" + _name = 'signup.configuration' + _description = 'Signup Configuration' + _sql_constraints = [('website_id', 'unique(website_id)', + 'A record for this website is already exist')] + + name = fields.Char(string='Name', copy=False, required=True, + help='The name of the signup configuration.') + website_id = fields.Many2one(comodel_name='website', + string='Website', required=True, + help='The website associated with the signup' + ' configuration.') + is_active = fields.Boolean(string='Active', default=True, + help='Specifies if the signup configuration is ' + 'active or not.') + signup_field_ids = fields.One2many(comodel_name='signup.field', + inverse_name='configuration_id', + string='Signup Fields', + help='The fields associated with the ' + 'signup configuration.') + signup_page_content = fields.Html(string='Signup Page Content', + help='The content of the signup page.') + login_page_content = fields.Html(string='Login Page Content', + help='The content of the login page.') + reset_password_content = fields.Html(string='Reset Password Content', + help='The content of the reset' + ' password page.') + background_image = fields.Binary(string='Background Image', + help='The background image for the ' + 'signup page.') + is_hide_footer = fields.Boolean(string='Hide Footer from Signup Page', + help='Specifies if the footer should be' + ' hidden on the signup page.') + is_show_terms_conditions = fields.Boolean( + string='Show Terms and Condition in Signup Page', + help='Specifies if the terms and conditions ' + 'should be shown on the signup page.') + terms_and_conditions = fields.Html(string='Terms and Conditions', + help='The terms and conditions' + ' text for the signup page.') + signup_enabled=fields.Boolean(string='Is Signup Enabled', + compute='_compute_signup_permission') + + @api.depends('name') + def _compute_signup_permission(self): + """Compute method for Customer Account Selection""" + for record in self: + if self.env['ir.config_parameter'].sudo().get_param('auth_signup.invitation_scope') == 'b2c': + record.signup_enabled = True + else: + record.signup_enabled = False diff --git a/advance_signup_page/models/signup_field.py b/advance_signup_page/models/signup_field.py new file mode 100644 index 000000000..533cca628 --- /dev/null +++ b/advance_signup_page/models/signup_field.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2024-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL 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 (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################### +from odoo import api, fields, models + + +class SignupFields(models.Model): + """ Model for Signup Fields.This class represents the Signup Fields model + for the Odoo website. It is used to define and manage the fields that + users can sign up with.""" + _name = 'signup.field' + _description = 'Signup Fields for Website' + + field_id = fields.Many2one(comodel_name='ir.model.fields', + string='Signup Field', + domain=[('model_id.model', '=', 'res.users'), + ('ttype', 'in', ['char', 'integer', + 'float', 'text', 'date', + 'datetime', + 'binary', 'boolean'])], + help='The field associated with the ' + 'signup field.') + name = fields.Char(string='Field Label', + related='field_id.field_description', + help='The label of the signup field.') + placeholder = fields.Char(string='Placeholder', + help='The placeholder text for the ' + 'signup field.') + help_description = fields.Text(string='Help', + help='Additional help or description ' + 'for the signup field.') + field_type = fields.Char(string='Field Type', + readonly=True, + help='The type of the signup field.') + number_of_cols = fields.Selection(selection=[('2', '2'), ('3', '3'), + ('4', '4'), ('6', '6'), + ('12', '12')], + string='Number of Columns', + help='The number of columns for the ' + 'signup field layout.') + is_required = fields.Boolean(string='Is Required', + help='Specifies if the signup field is ' + 'required.') + configuration_id = fields.Many2one(comodel_name='signup.configuration', + help='The signup configuration ' + 'associated with the signup field') + + @api.model_create_multi + def create(self, vals_list): + """Create records for the SignupFields model.""" + field_ids = [vals['field_id'] for vals in vals_list if + 'field_id' in vals] + field_types = self.env['ir.model.fields'].browse(field_ids).mapped( + 'ttype') + for vals in vals_list: + if 'field_id' in vals: + vals['field_type'] = field_types[ + field_ids.index(vals['field_id'])] + records = super(SignupFields, self).create( + [vals for vals in vals_list if 'field_id' in vals]) + return records + + def write(self, vals): + """Override the function to update the field type while saving the + record""" + if 'field_id' in vals: + vals['field_type'] = self.env['ir.model.fields'].browse( + vals['field_id']).ttype + return super(SignupFields, self).write(vals) diff --git a/advance_signup_page/security/ir.model.access.csv b/advance_signup_page/security/ir.model.access.csv new file mode 100644 index 000000000..90b9346d5 --- /dev/null +++ b/advance_signup_page/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_signup_configuration_user,access.signup.configuration.user,model_signup_configuration,base.group_user,1,1,1,1 +access_signup_field_user,access.signup.field.user,model_signup_field,base.group_user,1,1,1,1 diff --git a/advance_signup_page/static/description/assets/icons/check.png b/advance_signup_page/static/description/assets/icons/check.png new file mode 100755 index 000000000..c8e85f51d Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/check.png differ diff --git a/advance_signup_page/static/description/assets/icons/chevron.png b/advance_signup_page/static/description/assets/icons/chevron.png new file mode 100755 index 000000000..2089293d6 Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/chevron.png differ diff --git a/advance_signup_page/static/description/assets/icons/cogs.png b/advance_signup_page/static/description/assets/icons/cogs.png new file mode 100755 index 000000000..95d0bad62 Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/cogs.png differ diff --git a/advance_signup_page/static/description/assets/icons/consultation.png b/advance_signup_page/static/description/assets/icons/consultation.png new file mode 100755 index 000000000..8319d4baa Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/consultation.png differ diff --git a/advance_signup_page/static/description/assets/icons/ecom-black.png b/advance_signup_page/static/description/assets/icons/ecom-black.png new file mode 100755 index 000000000..a9385ff13 Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/ecom-black.png differ diff --git a/advance_signup_page/static/description/assets/icons/education-black.png b/advance_signup_page/static/description/assets/icons/education-black.png new file mode 100755 index 000000000..3eb09b27b Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/education-black.png differ diff --git a/advance_signup_page/static/description/assets/icons/hotel-black.png b/advance_signup_page/static/description/assets/icons/hotel-black.png new file mode 100755 index 000000000..130f613be Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/hotel-black.png differ diff --git a/advance_signup_page/static/description/assets/icons/license.png b/advance_signup_page/static/description/assets/icons/license.png new file mode 100755 index 000000000..a5869797e Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/license.png differ diff --git a/advance_signup_page/static/description/assets/icons/lifebuoy.png b/advance_signup_page/static/description/assets/icons/lifebuoy.png new file mode 100755 index 000000000..658d56ccc Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/lifebuoy.png differ diff --git a/advance_signup_page/static/description/assets/icons/logo.png b/advance_signup_page/static/description/assets/icons/logo.png new file mode 100755 index 000000000..478462d3e Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/logo.png differ diff --git a/advance_signup_page/static/description/assets/icons/manufacturing-black.png b/advance_signup_page/static/description/assets/icons/manufacturing-black.png new file mode 100755 index 000000000..697eb0e9f Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/manufacturing-black.png differ diff --git a/advance_signup_page/static/description/assets/icons/pos-black.png b/advance_signup_page/static/description/assets/icons/pos-black.png new file mode 100755 index 000000000..97c0f90c1 Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/pos-black.png differ diff --git a/advance_signup_page/static/description/assets/icons/puzzle.png b/advance_signup_page/static/description/assets/icons/puzzle.png new file mode 100755 index 000000000..65cf854e7 Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/puzzle.png differ diff --git a/advance_signup_page/static/description/assets/icons/restaurant-black.png b/advance_signup_page/static/description/assets/icons/restaurant-black.png new file mode 100755 index 000000000..4a35eb939 Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/restaurant-black.png differ diff --git a/advance_signup_page/static/description/assets/icons/service-black.png b/advance_signup_page/static/description/assets/icons/service-black.png new file mode 100755 index 000000000..301ab51cb Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/service-black.png differ diff --git a/advance_signup_page/static/description/assets/icons/trading-black.png b/advance_signup_page/static/description/assets/icons/trading-black.png new file mode 100755 index 000000000..9398ba2f1 Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/trading-black.png differ diff --git a/advance_signup_page/static/description/assets/icons/training.png b/advance_signup_page/static/description/assets/icons/training.png new file mode 100755 index 000000000..884ca024d Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/training.png differ diff --git a/advance_signup_page/static/description/assets/icons/update.png b/advance_signup_page/static/description/assets/icons/update.png new file mode 100755 index 000000000..ecbc5a01a Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/update.png differ diff --git a/advance_signup_page/static/description/assets/icons/user.png b/advance_signup_page/static/description/assets/icons/user.png new file mode 100755 index 000000000..6ffb23d9f Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/user.png differ diff --git a/advance_signup_page/static/description/assets/icons/wrench.png b/advance_signup_page/static/description/assets/icons/wrench.png new file mode 100755 index 000000000..6c04dea0f Binary files /dev/null and b/advance_signup_page/static/description/assets/icons/wrench.png differ diff --git a/advance_signup_page/static/description/assets/misc/categories.png b/advance_signup_page/static/description/assets/misc/categories.png new file mode 100644 index 000000000..bedf1e0b1 Binary files /dev/null and b/advance_signup_page/static/description/assets/misc/categories.png differ diff --git a/advance_signup_page/static/description/assets/misc/check-box.png b/advance_signup_page/static/description/assets/misc/check-box.png new file mode 100644 index 000000000..42caf24b9 Binary files /dev/null and b/advance_signup_page/static/description/assets/misc/check-box.png differ diff --git a/advance_signup_page/static/description/assets/misc/compass.png b/advance_signup_page/static/description/assets/misc/compass.png new file mode 100644 index 000000000..d5fed8faa Binary files /dev/null and b/advance_signup_page/static/description/assets/misc/compass.png differ diff --git a/advance_signup_page/static/description/assets/misc/corporate.png b/advance_signup_page/static/description/assets/misc/corporate.png new file mode 100644 index 000000000..2eb13edbf Binary files /dev/null and b/advance_signup_page/static/description/assets/misc/corporate.png differ diff --git a/advance_signup_page/static/description/assets/misc/customer-support.png b/advance_signup_page/static/description/assets/misc/customer-support.png new file mode 100644 index 000000000..79efc72ed Binary files /dev/null and b/advance_signup_page/static/description/assets/misc/customer-support.png differ diff --git a/advance_signup_page/static/description/assets/misc/cybrosys-logo.png b/advance_signup_page/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 000000000..cc3cc0ccf Binary files /dev/null and b/advance_signup_page/static/description/assets/misc/cybrosys-logo.png differ diff --git a/advance_signup_page/static/description/assets/misc/features.png b/advance_signup_page/static/description/assets/misc/features.png new file mode 100644 index 000000000..b41769f77 Binary files /dev/null and b/advance_signup_page/static/description/assets/misc/features.png differ diff --git a/advance_signup_page/static/description/assets/misc/logo.png b/advance_signup_page/static/description/assets/misc/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/advance_signup_page/static/description/assets/misc/logo.png differ diff --git a/advance_signup_page/static/description/assets/misc/pictures.png b/advance_signup_page/static/description/assets/misc/pictures.png new file mode 100644 index 000000000..56d255fe9 Binary files /dev/null and b/advance_signup_page/static/description/assets/misc/pictures.png differ diff --git a/advance_signup_page/static/description/assets/misc/pie-chart.png b/advance_signup_page/static/description/assets/misc/pie-chart.png new file mode 100644 index 000000000..426e05244 Binary files /dev/null and b/advance_signup_page/static/description/assets/misc/pie-chart.png differ diff --git a/advance_signup_page/static/description/assets/misc/right-arrow.png b/advance_signup_page/static/description/assets/misc/right-arrow.png new file mode 100644 index 000000000..730984a06 Binary files /dev/null and b/advance_signup_page/static/description/assets/misc/right-arrow.png differ diff --git a/advance_signup_page/static/description/assets/misc/star.png b/advance_signup_page/static/description/assets/misc/star.png new file mode 100644 index 000000000..2eb9ab29f Binary files /dev/null and b/advance_signup_page/static/description/assets/misc/star.png differ diff --git a/advance_signup_page/static/description/assets/misc/support.png b/advance_signup_page/static/description/assets/misc/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/advance_signup_page/static/description/assets/misc/support.png differ diff --git a/advance_signup_page/static/description/assets/misc/whatsapp.png b/advance_signup_page/static/description/assets/misc/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/advance_signup_page/static/description/assets/misc/whatsapp.png differ diff --git a/advance_signup_page/static/description/assets/modules/1.png b/advance_signup_page/static/description/assets/modules/1.png new file mode 100755 index 000000000..2b5926612 Binary files /dev/null and b/advance_signup_page/static/description/assets/modules/1.png differ diff --git a/advance_signup_page/static/description/assets/modules/2.png b/advance_signup_page/static/description/assets/modules/2.png new file mode 100755 index 000000000..5856d1b7e Binary files /dev/null and b/advance_signup_page/static/description/assets/modules/2.png differ diff --git a/advance_signup_page/static/description/assets/modules/3.png b/advance_signup_page/static/description/assets/modules/3.png new file mode 100755 index 000000000..ae3e11bff Binary files /dev/null and b/advance_signup_page/static/description/assets/modules/3.png differ diff --git a/advance_signup_page/static/description/assets/modules/4.jpg b/advance_signup_page/static/description/assets/modules/4.jpg new file mode 100755 index 000000000..67101a2f4 Binary files /dev/null and b/advance_signup_page/static/description/assets/modules/4.jpg differ diff --git a/advance_signup_page/static/description/assets/modules/5.jpg b/advance_signup_page/static/description/assets/modules/5.jpg new file mode 100755 index 000000000..62f98f0ea Binary files /dev/null and b/advance_signup_page/static/description/assets/modules/5.jpg differ diff --git a/advance_signup_page/static/description/assets/modules/6.jpg b/advance_signup_page/static/description/assets/modules/6.jpg new file mode 100755 index 000000000..178b90154 Binary files /dev/null and b/advance_signup_page/static/description/assets/modules/6.jpg differ diff --git a/advance_signup_page/static/description/assets/screenshots/advance_signup_1.png b/advance_signup_page/static/description/assets/screenshots/advance_signup_1.png new file mode 100644 index 000000000..f6f5b127b Binary files /dev/null and b/advance_signup_page/static/description/assets/screenshots/advance_signup_1.png differ diff --git a/advance_signup_page/static/description/assets/screenshots/advance_signup_2.png b/advance_signup_page/static/description/assets/screenshots/advance_signup_2.png new file mode 100644 index 000000000..1aa842453 Binary files /dev/null and b/advance_signup_page/static/description/assets/screenshots/advance_signup_2.png differ diff --git a/advance_signup_page/static/description/assets/screenshots/advance_signup_3.png b/advance_signup_page/static/description/assets/screenshots/advance_signup_3.png new file mode 100644 index 000000000..c01667a1a Binary files /dev/null and b/advance_signup_page/static/description/assets/screenshots/advance_signup_3.png differ diff --git a/advance_signup_page/static/description/assets/screenshots/advance_signup_4.png b/advance_signup_page/static/description/assets/screenshots/advance_signup_4.png new file mode 100644 index 000000000..ce6081a12 Binary files /dev/null and b/advance_signup_page/static/description/assets/screenshots/advance_signup_4.png differ diff --git a/advance_signup_page/static/description/assets/screenshots/advance_signup_5.png b/advance_signup_page/static/description/assets/screenshots/advance_signup_5.png new file mode 100644 index 000000000..bd09cc0f6 Binary files /dev/null and b/advance_signup_page/static/description/assets/screenshots/advance_signup_5.png differ diff --git a/advance_signup_page/static/description/assets/screenshots/advance_signup_6.png b/advance_signup_page/static/description/assets/screenshots/advance_signup_6.png new file mode 100644 index 000000000..263d83325 Binary files /dev/null and b/advance_signup_page/static/description/assets/screenshots/advance_signup_6.png differ diff --git a/advance_signup_page/static/description/assets/screenshots/advance_signup_7.png b/advance_signup_page/static/description/assets/screenshots/advance_signup_7.png new file mode 100644 index 000000000..af367520e Binary files /dev/null and b/advance_signup_page/static/description/assets/screenshots/advance_signup_7.png differ diff --git a/advance_signup_page/static/description/assets/screenshots/advance_signup_8.png b/advance_signup_page/static/description/assets/screenshots/advance_signup_8.png new file mode 100644 index 000000000..a85ecae58 Binary files /dev/null and b/advance_signup_page/static/description/assets/screenshots/advance_signup_8.png differ diff --git a/advance_signup_page/static/description/assets/screenshots/advance_signup_9.png b/advance_signup_page/static/description/assets/screenshots/advance_signup_9.png new file mode 100644 index 000000000..9c3df2786 Binary files /dev/null and b/advance_signup_page/static/description/assets/screenshots/advance_signup_9.png differ diff --git a/advance_signup_page/static/description/assets/screenshots/hero.gif b/advance_signup_page/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..48893aa45 Binary files /dev/null and b/advance_signup_page/static/description/assets/screenshots/hero.gif differ diff --git a/advance_signup_page/static/description/banner.jpg b/advance_signup_page/static/description/banner.jpg new file mode 100644 index 000000000..a24595a1f Binary files /dev/null and b/advance_signup_page/static/description/banner.jpg differ diff --git a/advance_signup_page/static/description/icon.png b/advance_signup_page/static/description/icon.png new file mode 100644 index 000000000..8d88281db Binary files /dev/null and b/advance_signup_page/static/description/icon.png differ diff --git a/advance_signup_page/static/description/index.html b/advance_signup_page/static/description/index.html new file mode 100755 index 000000000..010f09cca --- /dev/null +++ b/advance_signup_page/static/description/index.html @@ -0,0 +1,640 @@ +
+
+
+
+ +
+
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+ +
+
+
+
+ +
+
+
+

+ Advance Signup Page

+

+ Using Odoo Advance Sign Up, The User Can Generate a Creative and Unique Sign-Up Page. +

+ +
+
+ + + + +
+
+

+ Overview +

+
+ +
+

+ The user can design a more creative and distinctive sign-up page for their Odoo website by using Advance Signup. +

+ +
+
+ + +
+
+

+ Features +

+
+ +
+
+ +
+
+

+ Advance Signup Facilitates the User to Design the Sign-Up Page for His/Her Odoo Website.

+ +
+
+
+
+ +
+
+

+ Custom Background Image for the Signup/Login/Reset Password Website Page

+ +
+
+ +
+
+ +
+
+

+ Available in Community , Enterprise and Odoo.sh

+ +
+
+ + + +
+ +
+
+

+ Screenshots +

+
+
+

+ From Website Configuration -> Choose Signup Configuration

+ + +
+ +
+

+ Admin can Add any Dynamic Field in the Signup Page

+ + +
+ +
+

+ Also, Admin can Create Dynamic Fields in the Signup Page

+ + +
+ + +
+

+ Manage Content Settings of the Signup Page +

+ + +
+ + +
+

+ Manage Background Settings of the Signup Page

+ + +
+ + +
+

+ Manage Other Settings of the Signup Page

+ + +
+ +
+

+ After Saving the Changes, You Can Go to the Website Frontend and can Notice the Difference.

+ + +
+
+

+ Signup Page

+ + +
+
+

+ Reset Password Page

+ + +
+ + +
+ + +
+
+

Suggested Products

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

Our Services

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

Our Industries

+
+
+ +
+
+ +
+ Trading +
+

+ Easily procure + and + sell your products

+
+
+ +
+
+ +
+ POS +
+

+ Easy + configuration + and convivial experience

+
+
+ +
+
+ +
+ Education +
+

+ A platform for + educational management

+
+
+ +
+
+ +
+ Manufacturing +
+

+ Plan, track and + schedule your operations

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

+ Mobile + friendly, + awe-inspiring product pages

+
+
+ +
+
+ +
+ Service Management +
+

+ Keep track of + services and invoice

+
+
+ +
+
+ +
+ Restaurant +
+

+ Run your bar or + restaurant methodically

+
+
+ +
+
+ +
+ Hotel Management +
+

+ An + all-inclusive + hotel management application

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

Need Help?

+
+
+
+ + +
+ +
+ +
+ +
+ WhatsApp +
+
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+
+ + +
\ No newline at end of file diff --git a/advance_signup_page/views/auth_signup_templates.xml b/advance_signup_page/views/auth_signup_templates.xml new file mode 100644 index 000000000..b692d6e6a --- /dev/null +++ b/advance_signup_page/views/auth_signup_templates.xml @@ -0,0 +1,220 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/advance_signup_page/views/signup_configuration_views.xml b/advance_signup_page/views/signup_configuration_views.xml new file mode 100644 index 000000000..7647e0e6b --- /dev/null +++ b/advance_signup_page/views/signup_configuration_views.xml @@ -0,0 +1,86 @@ + + + + + signup.configuration.view.tree + signup.configuration + + + + + + + + + + signup.configuration.view.form + signup.configuration + +
+ + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + Signup Configuration + signup.configuration + tree,form + + + +
diff --git a/advance_signup_page/views/signup_fields_views.xml b/advance_signup_page/views/signup_fields_views.xml new file mode 100644 index 000000000..5aac4ebf6 --- /dev/null +++ b/advance_signup_page/views/signup_fields_views.xml @@ -0,0 +1,45 @@ + + + + + signup.field.view.tree + signup.field + + + + + + + + + + + + signup.field.view.form + signup.field + +
+ + + + + + + + + + + + + + + + + +
+
+
+