api: fix fillslot with user exclusion & cancelled bookings (#69859)
This commit is contained in:
parent
f76bc34c30
commit
af7ffbdae5
|
@ -652,7 +652,9 @@ def get_events_from_slots(slots, request, agenda, payload):
|
|||
if event.cancelled:
|
||||
raise APIError(N_('event %s is cancelled'), event.slug, err_class='event is cancelled')
|
||||
if exclude_user and user_external_id:
|
||||
if event.booking_set.filter(user_external_id=user_external_id).exists():
|
||||
if event.booking_set.filter(
|
||||
user_external_id=user_external_id, cancellation_datetime__isnull=True
|
||||
).exists():
|
||||
raise APIError(
|
||||
N_('event %s is already booked by user'),
|
||||
event.slug,
|
||||
|
|
|
@ -349,7 +349,13 @@ def test_booking_api_exclude_slots(app, user):
|
|||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_class'] == 'event is already booked by user'
|
||||
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event.slug), params={'exclude_user': True})
|
||||
assert resp.json['err'] == 0
|
||||
assert resp.json['err'] == 0 # ok, no user_external_id
|
||||
Booking.objects.update(cancellation_datetime=now())
|
||||
resp = app.post(
|
||||
'/api/agenda/%s/fillslot/%s/' % (agenda.slug, event.slug),
|
||||
params={'user_external_id': '42', 'exclude_user': True},
|
||||
)
|
||||
assert resp.json['err'] == 0 # ok, existing bookings are cancelled
|
||||
|
||||
event.delete()
|
||||
|
||||
|
|
Loading…
Reference in New Issue