oca-ocb-sale/odoo-bringout-oca-ocb-website_event_sale/website_event_sale/controllers/sale.py
Ernad Husremovic 73afc09215 19.0 vanilla
2026-03-09 09:32:12 +01:00

32 lines
1.3 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo.addons.website_sale.controllers.main import WebsiteSale
from odoo.http import request
class WebsiteEventSale(WebsiteSale):
def _prepare_shop_payment_confirmation_values(self, order):
values = super(WebsiteEventSale,
self)._prepare_shop_payment_confirmation_values(order)
values['events'] = order.order_line.event_id
attendee_per_event_read_group = request.env['event.registration'].sudo()._read_group(
[('sale_order_id', '=', order.id), ('state', 'in', ['open', 'done'])],
groupby=['event_id'],
aggregates=['id:recordset'],
)
# Get attendees and urls per event, also per slot if the event is multi slots
values['attendee_ids_per_event'] = {
event: regs.grouped('event_slot_id') if event.is_multi_slots else regs
for event, regs in attendee_per_event_read_group
}
values['urls_per_event'] = {
event.id: {
slot.id: event._get_event_resource_urls(slot=slot)
for slot in value.grouped('event_slot_id')
} if event.is_multi_slots else event._get_event_resource_urls()
for event, value in attendee_per_event_read_group
}
return values