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.
		
		
		
		
		
			
		
			
				
					
					
						
							111 lines
						
					
					
						
							4.4 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							111 lines
						
					
					
						
							4.4 KiB
						
					
					
				| # -*- coding: utf-8 -*- | |
| ############################################################################### | |
| # | |
| #    Cybrosys Technologies Pvt. Ltd. | |
| # | |
| #    Copyright (C) 2024-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | |
| #    Author: Aysha Shalin (odoo@cybrosys.com) | |
| # | |
| #    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 <http://www.gnu.org/licenses/>. | |
| # | |
| ############################################################################### | |
| from odoo import http | |
| from odoo.http import request | |
| 
 | |
| 
 | |
| class WebsiteForm(http.Controller): | |
|     """ | |
|     The WebsiteForm class provides the data to the page when it's loaded. | |
|         Methods: | |
|             gdpr_data_management(self): | |
|                 When the page is loaded passing the values related to the gdpr | |
|                 template and requests. | |
|                 Return a dict variable. | |
|             data_management_confirm(self,**kw): | |
|                Creating gdpr requests based the type of request and the user. | |
|             create_request_submit(self): | |
|                 Opening the submit window. | |
|             request_delete_done(self): | |
|                 Opening the deleted window. | |
|             request_canceled(self): | |
|                 opening the cancelled window. | |
|     """ | |
| 
 | |
|     @http.route(['/my/data_management'], type='http', auth="user", | |
|                 website=True) | |
|     def gdpr_data_management(self): | |
|         """ | |
|         Summary: | |
|             Transferring data to the frontend | |
|         Returns: | |
|             Type:dict , it contains the data for the opening window. | |
|         """ | |
|         return request.render("website_gdpr_odoo.gdpr_manager", { | |
|             'values': [{'name': gdpr_template_id['name'], | |
|                         'description': gdpr_template_id['description'], | |
|                         'id': gdpr_template_id['id'], } for gdpr_template_id in | |
|                        request.env['gdpr.template'].sudo().search_read( | |
|                            [], ['name','description'])], | |
|             'request_values': [{ | |
|                 'name': gdpr_request_id.req_name, | |
|                 'partner': gdpr_request_id.partner_id.name, | |
|                 'date': gdpr_request_id.create_date, | |
|                 'state': gdpr_request_id.state, | |
|                 'type': gdpr_request_id.req_type, | |
|                 'template': gdpr_request_id.template_id.name, | |
|                 'id': gdpr_request_id.id | |
|             } for gdpr_request_id in request.env['gdpr.request'].sudo().search( | |
|                 [('partner_id', '=', request.env.user.partner_id.id)])], | |
|         }) | |
| 
 | |
|     @http.route(['/gdpr_management/confirm'], type='json', auth="public", | |
|                 website=True) | |
|     def data_management_confirm(self, **kw): | |
|         """ | |
|         Summary: | |
|             Transferring data to the frontend | |
|         Arguments: | |
|             kw: dictionary | |
|                 It contains selected template id user id. | |
|         """ | |
|         partner_id = request.env['res.partner'].search([ | |
|             ('user_id', '=', request.env.user.id) | |
|         ]) | |
|         if partner_id: | |
|             request.env['gdpr.request'].sudo().create({ | |
|                 'req_name': f"{partner_id.name}'s {kw.get('type')} data", | |
|                 'partner_id': partner_id.id, | |
|                 'req_type': kw.get('type'), | |
|                 'state': 'pending', | |
|                 'template_id': kw.get('template_id') | |
|             }) | |
|         else: | |
|             request.redirect('/my/home') | |
| 
 | |
|     @http.route(['/gdpr_management/submit'], type='http', auth="user", | |
|                 website=True) | |
|     def create_request_submit(self): | |
|         """ Opening submit window """ | |
|         return request.render("website_gdpr_odoo.gdpr_submit") | |
| 
 | |
|     @http.route(['/gdpr_management/success/delete'], type='http', | |
|                 auth="user", website=True) | |
|     def request_delete_done(self): | |
|         """ Opening delete window """ | |
|         return request.render("website_gdpr_odoo.gdpr_delete_success") | |
| 
 | |
|     @http.route(['/gdpr_management/canceled'], type='http', auth="user", | |
|                 website=True) | |
|     def request_canceled(self): | |
|         """ Opening cancel window """ | |
|         return request.render("website_gdpr_odoo.gdpr_cancel_success")
 | |
| 
 |