diff --git a/addons/event_rental/controllers/__pycache__/main.cpython-310.pyc b/addons/event_rental/controllers/__pycache__/main.cpython-310.pyc index 5bb6221..a9aac52 100644 Binary files a/addons/event_rental/controllers/__pycache__/main.cpython-310.pyc and b/addons/event_rental/controllers/__pycache__/main.cpython-310.pyc differ diff --git a/addons/event_rental/controllers/main.py b/addons/event_rental/controllers/main.py index 551d6d2..f45f979 100644 --- a/addons/event_rental/controllers/main.py +++ b/addons/event_rental/controllers/main.py @@ -53,8 +53,20 @@ class EventRentalController(http.Controller): } return request.render('event_rental.rental_catalog_template', values) - @http.route('/rentals/', type='http', auth='public', website=True) - def rental_product_detail(self, product, **post): + @http.route('/rentals/', type='http', auth='public', website=True) + def rental_product_detail(self, product_slug, **post): + try: + if '-' in product_slug: + product_id = int(product_slug.split('-')[-1]) + else: + product_id = int(product_slug) + except (ValueError, IndexError): + return request.not_found() + + product = request.env['product.template'].sudo().browse(product_id) + if not product or not product.exists() or not product.is_rental: + return request.not_found() + return request.render('event_rental.rental_product_detail_template', {'product': product}) @http.route('/rental/request', type='http', auth='public', website=True, methods=['GET', 'POST'])