API: Fix subevent_before/after on organizer-level order view

This commit is contained in:
Raphael Michel
2023-09-06 09:38:42 +02:00
parent 6a36efd18c
commit 447370d7b3
2 changed files with 16 additions and 4 deletions
+12 -4
View File
@@ -116,12 +116,16 @@ with scopes_disabled():
@scopes_disabled()
def subevent_after_qs(self, qs, name, value):
if getattr(self.request, 'event', None):
subevents = self.request.event.subevents
else:
subevents = SubEvent.objects.filter(event__organizer=self.request.organizer)
qs = qs.filter(
pk__in=Subquery(
OrderPosition.all.filter(
subevent_id__in=SubEvent.objects.filter(
subevent_id__in=subevents.filter(
Q(date_to__gt=value) | Q(date_from__gt=value, date_to__isnull=True),
event=self.request.event
).values_list('id'),
).values_list('order_id')
)
@@ -129,12 +133,16 @@ with scopes_disabled():
return qs
def subevent_before_qs(self, qs, name, value):
if getattr(self.request, 'event', None):
subevents = self.request.event.subevents
else:
subevents = SubEvent.objects.filter(event__organizer=self.request.organizer)
qs = qs.filter(
pk__in=Subquery(
OrderPosition.all.filter(
subevent_id__in=SubEvent.objects.filter(
subevent_id__in=subevents.filter(
Q(date_from__lt=value),
event=self.request.event
).values_list('id'),
).values_list('order_id')
)
+4
View File
@@ -498,6 +498,10 @@ def test_organizer_level(token_client, organizer, team, event, event2, order, or
assert resp.status_code == 200
assert len(resp.data['results']) == 2
resp = token_client.get('/api/v1/organizers/{}/orders/?subevent_after=2020-01-01T00:00:00Z'.format(organizer.slug))
assert resp.status_code == 200
assert len(resp.data['results']) == 0
resp = token_client.get('/api/v1/organizers/{}/orders/FOO/'.format(organizer.slug))
assert resp.status_code == 200