From 2a2344b34c06a327a308fe6ae54c6f1f7145625f Mon Sep 17 00:00:00 2001 From: root Date: Wed, 4 Jan 2023 18:38:39 +0100 Subject: [PATCH] create new account fielsd --- controllers/kalachakra.py | 20 +++++++++++++- models/partner.py | 1 + models/res_users.py | 7 ++++- static/js/booking.js | 5 ++++ views/auth_signup_login_templates.xml | 38 ++++++++++++++++++++++++++- views/booking_event.xml | 2 +- views/partner.xml | 2 ++ views/portal.xml | 10 +------ views/portal_templates.xml | 16 +++++++++++ 9 files changed, 88 insertions(+), 13 deletions(-) diff --git a/controllers/kalachakra.py b/controllers/kalachakra.py index eb0c93a..b73c73b 100755 --- a/controllers/kalachakra.py +++ b/controllers/kalachakra.py @@ -29,7 +29,11 @@ from collections import OrderedDict _logger = logging.getLogger(__name__) def create_donation(self): return True + class Kalachakra_PortalAccount(CustomerPortal): + MANDATORY_BILLING_FIELDS = ["name","firstname", "phone", "email","birthday_date", "street", "city", "country_id"] + OPTIONAL_BILLING_FIELDS = ["zipcode", "state_id", "vat", "company_name"] + @http.route(['/my/invoices', '/my/invoices/page/'], type='http', auth="user", website=True) def kalachakra_portal_my_invoices(self, page=1, date_begin=None, date_end=None, sortby=None, filterby=None, **kw): values = self._prepare_portal_layout_values() @@ -132,6 +136,7 @@ class KalaAuthSignupHome(Home): if 'error' not in qcontext and request.httprequest.method == 'POST': try: self.do_signup(qcontext) + _logger.error('do_sign_up'+str(qcontext)) # Send an account creation confirmation email if qcontext.get('token'): User = request.env['res.users'] @@ -158,7 +163,20 @@ class KalaAuthSignupHome(Home): response = request.render('auth_signup.signup', qcontext) response.headers['X-Frame-Options'] = 'DENY' return response - + def do_signup(self, qcontext): + """ Shared helper that creates a res.partner out of a token """ + values = { key: qcontext.get(key) for key in ('login', 'name', 'password', 'firstname','phone','birthday_date') } + + if not values: + raise UserError(_("The form was not properly filled in.")) + if values.get('password') != qcontext.get('confirm_password'): + raise UserError(_("Passwords do not match; please retype them.")) + supported_lang_codes = [code for code, _ in request.env['res.lang'].get_installed()] + lang = request.context.get('lang', '') + if lang in supported_lang_codes: + values['lang'] = lang + self._signup_with_values(qcontext.get('token'), values) + request.env.cr.commit() class kalachakra_event(WebsiteEventController,PaymentProcessing): def sitemap_event(env, rule, qs): if not qs or qs.lower() in '/events': diff --git a/models/partner.py b/models/partner.py index 3abb304..bd2f2f4 100755 --- a/models/partner.py +++ b/models/partner.py @@ -11,6 +11,7 @@ class ResPartner(models.Model): external_id=fields.Char('id') statut_contact=fields.Selection([('adherent', 'Adhérent'), ('bienfaiteur', 'Bienfaiteur'),('contact', 'Contact'), ('soutien','Soutien') ],'Statut', index=True) date_creation_contact=fields.Char(string='Date de création du contact', readonly=True) + birthday_date=fields.Date(string='Birthday date') origine=fields.Selection([ ('boutique','Boutique'), ('visiteur','Visiteur'), diff --git a/models/res_users.py b/models/res_users.py index 97a36a6..46c7422 100755 --- a/models/res_users.py +++ b/models/res_users.py @@ -101,5 +101,10 @@ class ResUsers(models.Model): self._signup_create_user(values) + partner=self.env['res.partner'].sudo().search([('email','ilike',values.get('login'))],limit=1) + partner.firstname=values.get('firstname') + + return (self.env.cr.dbname, values.get('login'), values.get('password')) + - return (self.env.cr.dbname, values.get('login'), values.get('password')) \ No newline at end of file + \ No newline at end of file diff --git a/static/js/booking.js b/static/js/booking.js index 1606bbc..68079a8 100755 --- a/static/js/booking.js +++ b/static/js/booking.js @@ -18,6 +18,11 @@ odoo.define('booking.main', function (require) { format: 'DD/MM/YYYY', enableOnReadonly: true }); + + $('#datetimepicker_birthday_date').datetimepicker({ + format: 'YYYY-MM-DD', + enableOnReadonly: true + }); $('#medical_info').hide() diff --git a/views/auth_signup_login_templates.xml b/views/auth_signup_login_templates.xml index 0939c56..4aaf95d 100755 --- a/views/auth_signup_login_templates.xml +++ b/views/auth_signup_login_templates.xml @@ -7,7 +7,43 @@ required="required" t-att-readonly="'readonly' if only_passwords else None" t-att-autofocus="'autofocus' if login and not only_passwords else None" /> - +
+ + +
+
+ + +
+ +
+ +
+ + +
+
+
+
+
diff --git a/views/booking_event.xml b/views/booking_event.xml index 1d58078..f3ac699 100755 --- a/views/booking_event.xml +++ b/views/booking_event.xml @@ -102,7 +102,7 @@ - + diff --git a/views/partner.xml b/views/partner.xml index a1eb9be..5976ff4 100755 --- a/views/partner.xml +++ b/views/partner.xml @@ -28,12 +28,14 @@ + + diff --git a/views/portal.xml b/views/portal.xml index d1dabfb..d628db1 100755 --- a/views/portal.xml +++ b/views/portal.xml @@ -9,15 +9,7 @@ - +