from collections import defaultdict from odoo import _ from odoo.http import request, route from odoo.addons.website_event_questions.controllers.main import WebsiteEventController class WebsiteEventQep(WebsiteEventController): # def _process_attendees_form(self, event, form_details): # """Process data posted from the attendee details form. # Extracts question answers: # - For both questions asked 'once_per_order' and questions asked to every attendee # - For questions of type 'simple_choice', extracting the suggested answer id # - For questions of type 'text_box', extracting the text answer of the attendee. # """ # registrations = super(WebsiteEvent, self)._process_attendees_form( # event, form_details # ) def _create_attendees_from_registration_post(self, event, registration_data): if not any(info.get("event_ticket_id") for info in registration_data): return super()._create_attendees_from_registration_post( event, registration_data ) res = super()._create_attendees_from_registration_post(event, registration_data) order_sudo = request.website.sale_get_order(force_create=True) reg_answers = {} for data in registration_data: answers = data.get("registration_answer_ids") # tickets_data = defaultdict(int) # for data in registration_data: # event_ticket_id = data.get("event_ticket_id") # if event_ticket_id: # tickets_data[event_ticket_id] += 1 # cart_data = {} # for ticket_id, count in tickets_data.items(): # ticket_sudo = request.env["event.event.ticket"].sudo().browse(ticket_id) # cart_values = order_sudo._cart_update( # product_id=ticket_sudo.product_id.id, # add_qty=count, # event_ticket_id=ticket_id, # ) # cart_data[ticket_id] = cart_values["line_id"] # for data in registration_data: # event_ticket_id = data.get("event_ticket_id") # if event_ticket_id: # data["sale_order_id"] = order_sudo.id # data["sale_order_line_id"] = cart_data[event_ticket_id] request.session["website_sale_cart_quantity"] = order_sudo.cart_quantity return res