diff --git a/__init__.py b/__init__.py index e046e49fbe22a4768c49bca1ed4cc0b0487c66c3..91c5580fed3661d34004101993044fbc5b832d27 100644 --- a/__init__.py +++ b/__init__.py @@ -1 +1,2 @@ from . import controllers +from . import models diff --git a/controllers/main.py b/controllers/main.py index 2c0a61535ae097850aae91cf44dc89f2eca8dd04..ef1cc7becca77513f5d9ee307b32e15c4271663b 100644 --- a/controllers/main.py +++ b/controllers/main.py @@ -1,3 +1,6 @@ +# Copyright 2024- Le Filament (https://le-filament.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + from odoo import _, http, tools from odoo.addons.auth_signup.controllers.main import AuthSignupHome @@ -36,3 +39,9 @@ class SolagroAuthSignupHome(AuthSignupHome): # update request params because super() uses this instead of kwargs http.request.params.update(post) return super().web_auth_signup(**post) + + def do_signup(self, qcontext): + # inject qcontext email in request params login + # because it is used in web login controller + http.request.params['login'] = qcontext['email'] + return super().do_signup(qcontext) diff --git a/models/__init__.py b/models/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..91fed54d404eac384a0186fdf541d0e354a4171f --- /dev/null +++ b/models/__init__.py @@ -0,0 +1 @@ +from . import res_partner diff --git a/models/res_partner.py b/models/res_partner.py new file mode 100644 index 0000000000000000000000000000000000000000..6450f8cb109e50de762cd04f042151a0b0f62c03 --- /dev/null +++ b/models/res_partner.py @@ -0,0 +1,20 @@ +# Copyright 2024- Le Filament (https://le-filament.com) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html) + +from odoo import models, api + +class ResPartner(models.Model): + _inherit = 'res.partner' + + @api.model + def signup_retrieve_info(self, token): + """ """ + partner = self._signup_retrieve_partner(token, raise_exception=True) + res = super().signup_retrieve_info(token) + if partner.user_ids: + # only for display in reset password page + res['firstname'] = partner.user_ids[0].firstname + res['lastname'] = partner.user_ids[0].lastname + # because email is used as user login + res['email'] = res['login'] + return res