You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							55 lines
						
					
					
						
							2.4 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							55 lines
						
					
					
						
							2.4 KiB
						
					
					
				| # -*- coding: utf-8 -*- | |
| ################################################################################ | |
| # | |
| #    Cybrosys Technologies Pvt. Ltd. | |
| #    Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>). | |
| #    Author: Bhagyadev KP (odoo@cybrosys.com) | |
| # | |
| #    This program is free software: you can modify | |
| #    it under the terms of the GNU Affero General Public License (AGPL) as | |
| #    published by the Free Software Foundation, either version 3 of the | |
| #    License, or (at your option) any later version. | |
| # | |
| #    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 for more details. | |
| # | |
| #    You should have received a copy of the GNU Affero General Public License | |
| #    along with this program.  If not, see <https://www.gnu.org/licenses/>. | |
| # | |
| ################################################################################ | |
| import base64 | |
| from odoo import http | |
| from odoo.addons.auth_signup.controllers.main import AuthSignupHome | |
| from odoo.http import request | |
| 
 | |
| 
 | |
| class WebAuthSignup(AuthSignupHome): | |
|     """This class helps to set extra information in signup.""" | |
| 
 | |
|     @http.route('/web/signup', type='http', auth='public', website=True, | |
|                 sitemap=False, csrf=False) | |
|     def web_auth_signup(self, *args, **kw): | |
|         """function used to add extra information at the time of signup""" | |
|         res = super().web_auth_signup(*args, **kw) | |
|         qcontext = self.get_auth_signup_qcontext() | |
|         user = request.env['res.users'] | |
|         user_sudo = user.sudo().search( | |
|             user._get_login_domain(qcontext.get('login')), | |
|             order=user._get_login_order(), limit=1) | |
|         if 'file' in kw: | |
|             data_b64 = kw['file'] | |
|             data = base64.b64encode(data_b64.read()) if data_b64 else b'' | |
|             user_sudo.partner_id.image_1920 = data | |
|         if 'phone' in kw: | |
|             user_sudo.partner_id.phone = kw['phone'] | |
|         if 'job_position' in kw: | |
|             user_sudo.partner_id.function = kw['job_position'] | |
|         if 'city' in kw: | |
|             user_sudo.partner_id.city = kw['city'] | |
|         if 'country' in kw: | |
|             country = request.env['res.country'].search( | |
|                 [('id', '=', kw['country'])]) | |
|             user_sudo.partner_id.country_id = country | |
|         return res
 | |
| 
 |