api: add desk info for bookings of meetings agenda (#69170) #7
|
@ -236,6 +236,11 @@ class BookingSerializer(serializers.ModelSerializer):
|
|||
ret['user_presence_reason'] = (
|
||||
self.instance.user_check_type_slug if self.instance.user_was_present is True else None
|
||||
)
|
||||
if self.instance.event.agenda.kind != 'events':
|
||||
ret['desk'] = {
|
||||
'slug': self.instance.event.desk.slug,
|
||||
'label': self.instance.event.desk.label,
|
||||
}
|
||||
return ret
|
||||
|
||||
def _validate_check_type(self, kind, value):
|
||||
|
|
|
@ -2226,6 +2226,7 @@ class MultipleAgendasEventsCheckStatus(APIView):
|
|||
check_status = {'status': 'error', 'error_reason': 'too-many-bookings-found'}
|
||||
else:
|
||||
booking = bookings_by_event_id[event.pk][0]
|
||||
booking.event = event # prevent db calls
|
||||
if booking.cancellation_datetime is not None:
|
||||
check_status = {'status': 'cancelled'}
|
||||
elif booking.user_was_present is None:
|
||||
|
@ -2490,7 +2491,7 @@ class BookingsAPI(ListAPIView):
|
|||
def get_queryset(self):
|
||||
return (
|
||||
Booking.objects.filter(primary_booking__isnull=True, cancellation_datetime__isnull=True)
|
||||
.select_related('event', 'event__agenda')
|
||||
.select_related('event', 'event__agenda', 'event__desk')
|
||||
.order_by('event__start_datetime', 'event__slug', 'event__agenda__slug', 'pk')
|
||||
)
|
||||
|
||||
|
|
|
@ -120,7 +120,11 @@ def test_bookings_api(app, user):
|
|||
)
|
||||
|
||||
meetings_agenda = Agenda.objects.create(kind='meetings')
|
||||
meetings_event = Event.objects.create(agenda=meetings_agenda, start_datetime=now(), places=1)
|
||||
desk = Desk.objects.create(agenda=meetings_agenda, label='Desk', slug='desk')
|
||||
meeting_type = MeetingType.objects.create(agenda=meetings_agenda, label='Foo Bar', slug='foo-bar')
|
||||
meetings_event = Event.objects.create(
|
||||
agenda=meetings_agenda, start_datetime=now(), places=1, desk=desk, meeting_type=meeting_type
|
||||
)
|
||||
meetings_booking1 = Booking.objects.create(event=meetings_event, user_external_id='enfant-1234')
|
||||
Booking.objects.create(event=meetings_event, user_external_id='baz')
|
||||
Booking.objects.create(event=meetings_event, user_external_id='baz')
|
||||
|
@ -158,6 +162,10 @@ def test_bookings_api(app, user):
|
|||
'cancellation_datetime': None,
|
||||
'creation_datetime': localtime(meetings_booking1.creation_datetime).isoformat(),
|
||||
'label': '',
|
||||
'desk': {
|
||||
'slug': 'desk',
|
||||
'label': 'Desk',
|
||||
},
|
||||
},
|
||||
{
|
||||
'id': events_booking1.pk,
|
||||
|
|
Loading…
Reference in New Issue