api: specify which event is not bookable (#55996)
This commit is contained in:
parent
a639650707
commit
5041ef37ce
|
@ -586,16 +586,17 @@ def get_events_from_slots(slots, request, agenda, payload):
|
|||
for event in events:
|
||||
if event.start_datetime >= now():
|
||||
if not book_future or not event.in_bookable_period():
|
||||
raise APIError(_('event not bookable'), err_class='event not bookable')
|
||||
raise APIError(_('event %s is not bookable') % event.slug, err_class='event not bookable')
|
||||
else:
|
||||
if not book_past:
|
||||
raise APIError(_('event not bookable'), err_class='event not bookable')
|
||||
raise APIError(_('event %s is not bookable') % event.slug, err_class='event not bookable')
|
||||
if event.cancelled:
|
||||
raise APIError(_('event is cancelled'), err_class='event is cancelled')
|
||||
raise APIError(_('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():
|
||||
raise APIError(
|
||||
_('event is already booked by user'), err_class='event is already booked by user'
|
||||
_('event %s is already booked by user') % event.slug,
|
||||
err_class='event is already booked by user',
|
||||
)
|
||||
|
||||
if slots and not events.exists():
|
||||
|
|
|
@ -409,7 +409,7 @@ def test_booking_api_fillslots(app, some_data, user):
|
|||
assert resp.json['err'] == 1
|
||||
assert resp.json['reason'] == 'event not bookable' # legacy
|
||||
assert resp.json['err_class'] == 'event not bookable'
|
||||
assert resp.json['err_desc'] == 'event not bookable'
|
||||
assert resp.json['err_desc'] == 'event foo-bar-event is not bookable'
|
||||
|
||||
|
||||
def test_booking_api_fillslots_slots_string_param(app, some_data, user):
|
||||
|
@ -1915,11 +1915,11 @@ def test_fillslot_past_event(app, user):
|
|||
|
||||
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event1.slug))
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'event not bookable'
|
||||
assert resp.json['err_desc'] == 'event %s is not bookable' % event1.slug
|
||||
|
||||
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event1.slug), params={'events': 'future'})
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'event not bookable'
|
||||
assert resp.json['err_desc'] == 'event %s is not bookable' % event1.slug
|
||||
|
||||
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event1.slug), params={'events': 'past'})
|
||||
assert resp.json['err'] == 0
|
||||
|
@ -1935,15 +1935,15 @@ def test_fillslot_past_event(app, user):
|
|||
|
||||
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event2.slug), params={'events': 'past'})
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'event not bookable'
|
||||
assert resp.json['err_desc'] == 'event %s is not bookable' % event2.slug
|
||||
resp = app.post('/api/agenda/%s/fillslot/%s/?events=past' % (agenda.slug, event2.slug))
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'event not bookable'
|
||||
assert resp.json['err_desc'] == 'event %s is not bookable' % event2.slug
|
||||
resp = app.post(
|
||||
'/api/agenda/%s/fillslot/%s/?events=all' % (agenda.slug, event2.slug), params={'events': 'past'}
|
||||
)
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'event not bookable'
|
||||
assert resp.json['err_desc'] == 'event %s is not bookable' % event2.slug
|
||||
|
||||
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event2.slug), params={'events': 'all'})
|
||||
assert resp.json['err'] == 0
|
||||
|
@ -1953,10 +1953,10 @@ def test_fillslot_past_event(app, user):
|
|||
event2.cancel()
|
||||
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event1.slug), params={'events': 'all'})
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'event is cancelled'
|
||||
assert resp.json['err_desc'] == 'event %s is cancelled' % event1.slug
|
||||
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event2.slug), params={'events': 'all'})
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'event is cancelled'
|
||||
assert resp.json['err_desc'] == 'event %s is cancelled' % event2.slug
|
||||
|
||||
|
||||
def test_fillslot_past_event_places(app, user):
|
||||
|
@ -2026,7 +2026,7 @@ def test_fillslot_past_events_exclude_slots(app, user):
|
|||
params={'events': 'past', 'user_external_id': '35', 'exclude_user': True},
|
||||
)
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'event is already booked by user'
|
||||
assert resp.json['err_desc'] == 'event %s is already booked by user' % event.slug
|
||||
|
||||
|
||||
def test_fillslot_past_events_recurring_event(app, user):
|
||||
|
@ -2063,7 +2063,7 @@ def test_fillslot_past_events_recurring_event(app, user):
|
|||
assert resp.json['err'] == 0
|
||||
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event_slug), params={'events': 'future'})
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'event not bookable'
|
||||
assert resp.json['err_desc'] == 'event %s is not bookable' % event_slug.replace(':', '--')
|
||||
|
||||
event_slug = '%s:%s' % (
|
||||
event.slug,
|
||||
|
@ -2071,7 +2071,7 @@ def test_fillslot_past_events_recurring_event(app, user):
|
|||
) # too late
|
||||
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event_slug), params={'events': 'all'})
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'event not bookable'
|
||||
assert resp.json['err_desc'] == 'event %s is not bookable' % event_slug.replace(':', '--')
|
||||
|
||||
event_slug = '%s:%s' % (
|
||||
event.slug,
|
||||
|
@ -2079,7 +2079,7 @@ def test_fillslot_past_events_recurring_event(app, user):
|
|||
)
|
||||
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event_slug), params={'events': 'past'})
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'event not bookable'
|
||||
assert resp.json['err_desc'] == 'event %s is not bookable' % event_slug.replace(':', '--')
|
||||
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event_slug), params={'events': 'all'})
|
||||
assert resp.json['err'] == 0
|
||||
resp = app.post('/api/agenda/%s/fillslot/%s/' % (agenda.slug, event_slug), params={'events': 'future'})
|
||||
|
@ -2093,7 +2093,7 @@ def test_fillslot_past_events_recurring_event(app, user):
|
|||
params={'events': 'past', 'user_external_id': '42', 'exclude_user': True},
|
||||
)
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'event is already booked by user'
|
||||
assert resp.json['err_desc'] == 'event %s is already booked by user' % first_recurrence.slug
|
||||
|
||||
# check canceled
|
||||
first_recurrence.cancel()
|
||||
|
@ -2101,7 +2101,7 @@ def test_fillslot_past_events_recurring_event(app, user):
|
|||
'/api/agenda/%s/fillslot/%s/' % (agenda.slug, first_recurrence.slug), params={'events': 'past'}
|
||||
)
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'event is cancelled'
|
||||
assert resp.json['err_desc'] == 'event %s is cancelled' % first_recurrence.slug
|
||||
|
||||
|
||||
def test_recurring_events_api_fillslots(app, user, freezer):
|
||||
|
@ -2417,17 +2417,17 @@ def test_api_events_fillslots_past_event(app, user):
|
|||
params = {'user_external_id': 'user_id', 'slots': ','.join((event1.slug, event2.slug))}
|
||||
resp = app.post_json('/api/agenda/%s/events/fillslots/' % agenda.slug, params)
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'event not bookable'
|
||||
assert resp.json['err_desc'] == 'event %s is not bookable' % event1.slug
|
||||
|
||||
params['events'] = 'future'
|
||||
resp = app.post_json('/api/agenda/%s/events/fillslots/' % agenda.slug, params)
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'event not bookable'
|
||||
assert resp.json['err_desc'] == 'event %s is not bookable' % event1.slug
|
||||
|
||||
params['events'] = 'past'
|
||||
resp = app.post_json('/api/agenda/%s/events/fillslots/' % agenda.slug, params)
|
||||
assert resp.json['err'] == 1
|
||||
assert resp.json['err_desc'] == 'event not bookable'
|
||||
assert resp.json['err_desc'] == 'event %s is not bookable' % event2.slug
|
||||
|
||||
params['events'] = 'all'
|
||||
resp = app.post_json('/api/agenda/%s/events/fillslots/' % agenda.slug, params)
|
||||
|
|
Loading…
Reference in New Issue