api: exclude end_date in list booking endpoint (#61573)

This commit is contained in:
Lauréline Guérin 2022-02-14 13:30:35 +01:00
parent ac41d09c94
commit df4e9f8104
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
2 changed files with 3 additions and 8 deletions

View File

@ -2131,12 +2131,7 @@ class BookingFilter(filters.FilterSet):
event = filters.CharFilter(method='filter_event')
category = filters.CharFilter(field_name='event__agenda__category__slug', lookup_expr='exact')
date_start = filters.DateFilter(field_name='event__start_datetime', lookup_expr='gte')
date_end = filters.DateFilter(field_name='event__start_datetime', method='filter_date_end')
def filter_date_end(self, queryset, name, value):
# we want to include all events starting during the targeted day
lookup = '__'.join([name, 'lt'])
return queryset.filter(**{lookup: value + datetime.timedelta(days=1)})
date_end = filters.DateFilter(field_name='event__start_datetime', lookup_expr='lt')
def filter_event(self, queryset, name, value):
# we want to include bookings of event recurrences

View File

@ -262,7 +262,7 @@ def test_bookings_api_filter_date_end(app, user):
assert [b['id'] for b in resp.json['data']] == []
resp = app.get('/api/bookings/', params={'user_external_id': '42', 'date_end': '2017-05-22'})
assert resp.json['err'] == 0
assert [b['id'] for b in resp.json['data']] == [booking.pk]
assert [b['id'] for b in resp.json['data']] == []
resp = app.get('/api/bookings/', params={'user_external_id': '42', 'date_end': '2017-05-23'})
assert resp.json['err'] == 0
assert [b['id'] for b in resp.json['data']] == [booking.pk]
@ -274,7 +274,7 @@ def test_bookings_api_filter_date_end(app, user):
assert [b['id'] for b in resp.json['data']] == []
resp = app.get('/api/bookings/', params={'user_external_id': '42', 'date_end': '2017-05-22'})
assert resp.json['err'] == 0
assert [b['id'] for b in resp.json['data']] == [booking.pk]
assert [b['id'] for b in resp.json['data']] == []
resp = app.get('/api/bookings/', params={'user_external_id': '42', 'date_end': '2017-05-23'})
assert resp.json['err'] == 0
assert [b['id'] for b in resp.json['data']] == [booking.pk]