|
|
|
@ -2792,6 +2792,77 @@ def test_event_check_subscription(check_types, app, admin_user):
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@mock.patch('chrono.manager.forms.get_agenda_check_types')
|
|
|
|
|
def test_event_check_extra_user_block(check_types, app, admin_user):
|
|
|
|
|
check_types.return_value = []
|
|
|
|
|
agenda = Agenda.objects.create(label='Events', kind='events')
|
|
|
|
|
event = Event.objects.create(
|
|
|
|
|
label='xyz',
|
|
|
|
|
start_datetime=now() - datetime.timedelta(days=1),
|
|
|
|
|
places=10,
|
|
|
|
|
waiting_list_places=5,
|
|
|
|
|
agenda=agenda,
|
|
|
|
|
)
|
|
|
|
|
subscription = Subscription.objects.create(
|
|
|
|
|
agenda=agenda,
|
|
|
|
|
user_external_id='user:1',
|
|
|
|
|
user_first_name='Subscription',
|
|
|
|
|
user_last_name='41',
|
|
|
|
|
date_start=now() - datetime.timedelta(days=1),
|
|
|
|
|
date_end=now(),
|
|
|
|
|
)
|
|
|
|
|
booking = Booking.objects.create(
|
|
|
|
|
event=event, user_first_name='User', user_last_name='42', user_external_id='user:2'
|
|
|
|
|
)
|
|
|
|
|
cancelled_booking = Booking.objects.create(
|
|
|
|
|
event=event, user_first_name='User', user_last_name='43', user_external_id='user:3'
|
|
|
|
|
)
|
|
|
|
|
cancelled_booking.cancel()
|
|
|
|
|
waiting_booking = Booking.objects.create(
|
|
|
|
|
event=event,
|
|
|
|
|
user_first_name='User',
|
|
|
|
|
user_last_name='44',
|
|
|
|
|
user_external_id='user:4',
|
|
|
|
|
in_waiting_list=True,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
login(app)
|
|
|
|
|
resp = app.get('/manage/agendas/%s/events/%s/check' % (agenda.pk, event.pk))
|
|
|
|
|
assert '/manage/agendas/%s/subscriptions/%s/extra-user-block' % (agenda.pk, subscription.pk) not in resp
|
|
|
|
|
assert '/manage/agendas/%s/bookings/%s/extra-user-block' % (agenda.pk, booking.pk) not in resp
|
|
|
|
|
assert '/manage/agendas/%s/bookings/%s/extra-user-block' % (agenda.pk, cancelled_booking.pk) not in resp
|
|
|
|
|
assert '/manage/agendas/%s/bookings/%s/extra-user-block' % (agenda.pk, waiting_booking.pk) not in resp
|
|
|
|
|
|
|
|
|
|
agenda.booking_extra_user_block_template = '{{ booking.user_name }} Foo Bar'
|
|
|
|
|
agenda.save()
|
|
|
|
|
resp = app.get('/manage/agendas/%s/events/%s/check' % (agenda.pk, event.pk))
|
|
|
|
|
assert '/manage/agendas/%s/subscriptions/%s/extra-user-block' % (agenda.pk, subscription.pk) in resp
|
|
|
|
|
assert '/manage/agendas/%s/bookings/%s/extra-user-block' % (agenda.pk, booking.pk) in resp
|
|
|
|
|
assert '/manage/agendas/%s/bookings/%s/extra-user-block' % (agenda.pk, cancelled_booking.pk) in resp
|
|
|
|
|
assert '/manage/agendas/%s/bookings/%s/extra-user-block' % (agenda.pk, waiting_booking.pk) in resp
|
|
|
|
|
|
|
|
|
|
Subscription.objects.create(
|
|
|
|
|
agenda=agenda,
|
|
|
|
|
user_external_id='user:2',
|
|
|
|
|
user_first_name='Subscription',
|
|
|
|
|
user_last_name='42',
|
|
|
|
|
date_start=now() - datetime.timedelta(days=1),
|
|
|
|
|
date_end=now(),
|
|
|
|
|
)
|
|
|
|
|
resp = app.get('/manage/agendas/%s/events/%s/check' % (agenda.pk, event.pk))
|
|
|
|
|
# booking url, not subscription url
|
|
|
|
|
assert '/manage/agendas/%s/bookings/%s/extra-user-block' % (agenda.pk, booking.pk) in resp
|
|
|
|
|
|
|
|
|
|
resp = app.get('/manage/agendas/%s/subscriptions/%s/extra-user-block' % (agenda.pk, subscription.pk))
|
|
|
|
|
assert resp.text == 'Subscription 41 Foo Bar'
|
|
|
|
|
resp = app.get('/manage/agendas/%s/bookings/%s/extra-user-block' % (agenda.pk, booking.pk))
|
|
|
|
|
assert resp.text == 'User 42 Foo Bar'
|
|
|
|
|
resp = app.get('/manage/agendas/%s/bookings/%s/extra-user-block' % (agenda.pk, cancelled_booking.pk))
|
|
|
|
|
assert resp.text == 'User 43 Foo Bar'
|
|
|
|
|
resp = app.get('/manage/agendas/%s/bookings/%s/extra-user-block' % (agenda.pk, waiting_booking.pk))
|
|
|
|
|
assert resp.text == 'User 44 Foo Bar'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@mock.patch('chrono.manager.forms.get_agenda_check_types')
|
|
|
|
|
def test_event_check_subscription_ajax(check_types, app, admin_user):
|
|
|
|
|
check_types.return_value = [
|
|
|
|
@ -3049,13 +3120,13 @@ def test_event_check_primary_booking(app, admin_user):
|
|
|
|
|
assert 'Bookings (4/10)' in resp.text
|
|
|
|
|
user_bookings = resp.pyquery.find('td.booking-username.main-list')
|
|
|
|
|
assert len(user_bookings) == 2
|
|
|
|
|
assert user_bookings[0].text == 'User 42 (3 places)'
|
|
|
|
|
assert user_bookings[1].text == 'John Doe'
|
|
|
|
|
assert user_bookings[0].text.replace('\n', '').strip() == 'User 42 (3 places)'
|
|
|
|
|
assert user_bookings[1].text.replace('\n', '').strip() == 'John Doe'
|
|
|
|
|
|
|
|
|
|
assert 'Waiting List (2/5)' in resp.text
|
|
|
|
|
user_bookings = resp.pyquery.find('td.booking-username.waiting')
|
|
|
|
|
assert len(user_bookings) == 1
|
|
|
|
|
assert user_bookings[0].text == 'Jane Doe (2 places)'
|
|
|
|
|
assert user_bookings[0].text.replace('\n', '').strip() == 'Jane Doe (2 places)'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_duplicate_event(app, admin_user):
|
|
|
|
|