| 
						
						
							
								
							
						
						
					 | 
					@ -26,29 +26,47 @@ from odoo.addons.portal.controllers.portal import CustomerPortal | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					class PortalAccount(CustomerPortal): | 
					 | 
					 | 
					class PortalAccount(CustomerPortal): | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    """ Super customer portal and get count of contracts """ | 
					 | 
					 | 
					    """ Super customer portal and get count of contracts """ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    def _prepare_home_portal_values(self, counters): | 
					 | 
					 | 
					    def _prepare_home_portal_values(self, counters): | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        """ Prepares values for the home portal """ | 
					 | 
					 | 
					        """ Prepares values for the home portal """ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        values = super()._prepare_home_portal_values(counters) | 
					 | 
					 | 
					        values = super()._prepare_home_portal_values(counters) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        partner = request.env.user.partner_id.id | 
					 | 
					 | 
					
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					        contract_count = request.env['subscription.contracts'].search([ | 
					 | 
					 | 
					        user = request.env.user | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					            ('partner_id', '=', partner)]) | 
					 | 
					 | 
					        contract_model = request.env['subscription.contracts'] | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        is_admin = user.has_group('base.group_system') | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        domain = [] | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        if not is_admin: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            partner_id = user.partner_id.id | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            domain = [('partner_id', '=', partner_id)] | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        contract_count = contract_model.search(domain) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        values['contract_count'] = len(contract_count) | 
					 | 
					 | 
					        values['contract_count'] = len(contract_count) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        return values | 
					 | 
					 | 
					        return values | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					class ContractsController(http.Controller): | 
					 | 
					 | 
					class ContractsController(http.Controller): | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    """ Sale contract in customer portal controller """ | 
					 | 
					 | 
					    """ Sale contract in customer portal controller """ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    @http.route(['/my/contracts'], type='http', auth='user', csrf=False, | 
					 | 
					 | 
					    @http.route(['/my/contracts'], type='http', auth='user', csrf=False, | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                website=True) | 
					 | 
					 | 
					                website=True) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    def portal_my_quotes(self): | 
					 | 
					 | 
					    def portal_my_quotes(self): | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        """ Displays Contracts in portal """ | 
					 | 
					 | 
					        """ Displays Contracts in portal """ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					        partner = request.env.user.partner_id.id | 
					 | 
					 | 
					        user = request.env.user | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        partner_id = user.partner_id.id | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        is_admin = user.has_group('base.group_system') | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        domain = [] | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        if not is_admin: | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            domain = [('partner_id', '=', partner_id)] | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					        records = request.env['subscription.contracts'].search(domain) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        values = { | 
					 | 
					 | 
					        values = { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            'records': request.env['subscription.contracts'].search( | 
					 | 
					 | 
					            'records': records, | 
				
			
			
				
				
			
		
	
		
		
			
				
					 | 
					 | 
					                [('partner_id', '=', partner)]), | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        return request.render( | 
					 | 
					 | 
					        return request.render( | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					            'sales_contract_and_recurring_invoices.tmp_contract_details', values) | 
					 | 
					 | 
					            'sales_contract_and_recurring_invoices.tmp_contract_details', | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					 | 
					 | 
					 | 
					            values) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					    @http.route(['/contracts/<int:contract_id>/'], type='http', auth='user', | 
					 | 
					 | 
					    @http.route(['/contracts/<int:contract_id>/'], type='http', auth='user', | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                csrf=False, website=True) | 
					 | 
					 | 
					                csrf=False, website=True) | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |