Odoo modules related to events management
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.

58 lines
2.3 KiB

3 weeks ago
  1. from collections import defaultdict
  2. from odoo import _
  3. from odoo.http import request, route
  4. from odoo.addons.website_event_questions.controllers.main import WebsiteEventController
  5. class WebsiteEventQep(WebsiteEventController):
  6. # def _process_attendees_form(self, event, form_details):
  7. # """Process data posted from the attendee details form.
  8. # Extracts question answers:
  9. # - For both questions asked 'once_per_order' and questions asked to every attendee
  10. # - For questions of type 'simple_choice', extracting the suggested answer id
  11. # - For questions of type 'text_box', extracting the text answer of the attendee.
  12. # """
  13. # registrations = super(WebsiteEvent, self)._process_attendees_form(
  14. # event, form_details
  15. # )
  16. def _create_attendees_from_registration_post(self, event, registration_data):
  17. if not any(info.get("event_ticket_id") for info in registration_data):
  18. return super()._create_attendees_from_registration_post(
  19. event, registration_data
  20. )
  21. res = super()._create_attendees_from_registration_post(event, registration_data)
  22. order_sudo = request.website.sale_get_order(force_create=True)
  23. reg_answers = {}
  24. for data in registration_data:
  25. answers = data.get("registration_answer_ids")
  26. # tickets_data = defaultdict(int)
  27. # for data in registration_data:
  28. # event_ticket_id = data.get("event_ticket_id")
  29. # if event_ticket_id:
  30. # tickets_data[event_ticket_id] += 1
  31. # cart_data = {}
  32. # for ticket_id, count in tickets_data.items():
  33. # ticket_sudo = request.env["event.event.ticket"].sudo().browse(ticket_id)
  34. # cart_values = order_sudo._cart_update(
  35. # product_id=ticket_sudo.product_id.id,
  36. # add_qty=count,
  37. # event_ticket_id=ticket_id,
  38. # )
  39. # cart_data[ticket_id] = cart_values["line_id"]
  40. # for data in registration_data:
  41. # event_ticket_id = data.get("event_ticket_id")
  42. # if event_ticket_id:
  43. # data["sale_order_id"] = order_sudo.id
  44. # data["sale_order_line_id"] = cart_data[event_ticket_id]
  45. request.session["website_sale_cart_quantity"] = order_sudo.cart_quantity
  46. return res