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.
		
		
		
		
		
			
		
			
				
					
					
						
							33 lines
						
					
					
						
							1.3 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							33 lines
						
					
					
						
							1.3 KiB
						
					
					
				
								from odoo import http
							 | 
						|
								from odoo.http import request
							 | 
						|
								from odoo.addons.portal.controllers.portal import CustomerPortal
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								class ShowPortal(CustomerPortal):
							 | 
						|
								    """ Prepare values for the home portal and retrieve shows based on user permissions."""
							 | 
						|
								    def _prepare_home_portal_values(self, counters):
							 | 
						|
								        """
							 | 
						|
								            Prepare values for the home portal and retrieve the count
							 | 
						|
								            of shows available based on user permissions.
							 | 
						|
								        """
							 | 
						|
								        values = super()._prepare_home_portal_values(counters)
							 | 
						|
								        if 'shows_count' in counters:
							 | 
						|
								            shows_count = request.env['movie.registration'].search_count([])
							 | 
						|
								
							 | 
						|
								            values['shows_count'] = shows_count
							 | 
						|
								        return values
							 | 
						|
								
							 | 
						|
								    @http.route('/my/shows', type='http', auth="user", website=True)
							 | 
						|
								    def my_subscription(self, **kw):
							 | 
						|
								        """
							 | 
						|
								            Retrieve shows for the user based on permissions and render them on the portal.
							 | 
						|
								        """
							 | 
						|
								        user = request.env.user
							 | 
						|
								        if user.has_group('base.group_system'):
							 | 
						|
								            shows = request.env['movie.registration'].sudo().search([])
							 | 
						|
								        else:
							 | 
						|
								            shows = request.env['movie.registration'].sudo().search([('partner_id', '=', user.partner_id.id)])
							 | 
						|
								        values = {
							 | 
						|
								            'shows': shows,
							 | 
						|
								        }
							 | 
						|
								        return request.render('show_booking_management.portal_my_shows', values)
							 | 
						|
								
							 |