diff --git a/controllers/kalachakra.py b/controllers/kalachakra.py index 79d441d..d5682b1 100644 --- a/controllers/kalachakra.py +++ b/controllers/kalachakra.py @@ -1,18 +1,63 @@ # -*- coding: utf-8 -*- from odoo import http,_ from odoo.http import request +import logging from odoo import models, fields, api import werkzeug from datetime import datetime from odoo.tools import format_datetime, format_date, is_html_empty from dateutil.relativedelta import relativedelta from odoo.exceptions import UserError + +from odoo.addons.web.controllers.main import ensure_db, Home from odoo.addons.website_event.controllers.main import WebsiteEventController from odoo.addons.payment.controllers.portal import PaymentProcessing from odoo.addons.sale.controllers.portal import CustomerPortal from odoo.addons.portal.controllers.portal import pager as portal_pager, get_records_pager +from odoo.addons.auth_signup.models.res_users import SignupError +from odoo.addons.auth_signup.controllers.main import AuthSignupHome import json +_logger = logging.getLogger(__name__) + +class KalaAuthSignupHome(Home): + @http.route('/web/signup', type='http', auth='public', website=True, sitemap=False) + def kalachakra_web_auth_signup(self, *args, **kw): + qcontext = self.get_auth_signup_qcontext() + + if not qcontext.get('token') and not qcontext.get('signup_enabled'): + raise werkzeug.exceptions.NotFound() + + if 'error' not in qcontext and request.httprequest.method == 'POST': + try: + self.do_signup(qcontext) + # Send an account creation confirmation email + if qcontext.get('token'): + 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) + if e=='Invalid email': + qcontext['error'] = _("Invalid email") + else: + qcontext['error'] = _(e) + + + response = request.render('auth_signup.signup', qcontext) + response.headers['X-Frame-Options'] = 'DENY' + return response + class kalachakra_event(WebsiteEventController,PaymentProcessing): def _extract_searched_event_tags(self, searches):