mirror of
https://github.com/bringout/oca-ocb-sale.git
synced 2026-04-27 12:32:02 +02:00
32 lines
1.3 KiB
Python
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
|