manager: disable check for partial bookings if check locked (#80983)
gitea/chrono/pipeline/head This commit looks good
Details
gitea/chrono/pipeline/head This commit looks good
Details
This commit is contained in:
parent
e231d27751
commit
60de169359
|
@ -1624,9 +1624,13 @@ class AgendaDayView(EventChecksMixin, AgendaDateView, DayArchiveView):
|
|||
return
|
||||
|
||||
context['event'] = event
|
||||
context['allow_check'] = bool(
|
||||
self.agenda.enable_check_for_future_events
|
||||
or localtime(event.start_datetime).date() <= localtime().date()
|
||||
context['allow_check'] = (
|
||||
(
|
||||
self.agenda.enable_check_for_future_events
|
||||
or localtime(event.start_datetime).date() <= localtime().date()
|
||||
)
|
||||
and (not event.checked or not self.agenda.disable_check_update)
|
||||
and not event.check_locked
|
||||
)
|
||||
self.add_filters_context(context, event)
|
||||
|
||||
|
@ -4480,8 +4484,10 @@ class PartialBookingCheckView(ViewableAgendaMixin, UpdateView):
|
|||
def get_queryset(self, **kwargs):
|
||||
qs = super().get_queryset()
|
||||
return qs.filter(
|
||||
Q(event__checked=False) | Q(event__agenda__disable_check_update=False),
|
||||
Q(event__start_datetime__date__lte=localtime().date())
|
||||
| Q(event__agenda__enable_check_for_future_events=True),
|
||||
event__check_locked=False,
|
||||
)
|
||||
|
||||
def get_success_url(self):
|
||||
|
|
|
@ -246,7 +246,7 @@ def test_manager_partial_bookings_check(check_types, app, admin_user):
|
|||
event = Event.objects.create(
|
||||
label='Event', start_datetime=start_datetime, end_time=datetime.time(18, 00), places=10, agenda=agenda
|
||||
)
|
||||
Booking.objects.create(
|
||||
booking = Booking.objects.create(
|
||||
user_external_id='xxx',
|
||||
user_first_name='Jane',
|
||||
user_last_name='Doe',
|
||||
|
@ -343,6 +343,30 @@ def test_manager_partial_bookings_check(check_types, app, admin_user):
|
|||
assert len(resp.pyquery('.registrant--bar.booking')) == 1
|
||||
assert resp.pyquery('.registrant--bar span').text() == ''
|
||||
|
||||
# event is checked
|
||||
event.checked = True
|
||||
event.save()
|
||||
assert agenda.disable_check_update is False
|
||||
resp = app.get('/manage/agendas/%s/day/%d/%d/%d/' % (agenda.pk, today.year, today.month, today.day))
|
||||
assert '/manage/agendas/%s/bookings/%s/check' % (agenda.pk, booking.pk) in resp
|
||||
app.get('/manage/agendas/%s/bookings/%s/check' % (agenda.pk, booking.pk), status=200)
|
||||
|
||||
# event check is locked
|
||||
event.check_locked = True
|
||||
event.save()
|
||||
resp = app.get('/manage/agendas/%s/day/%d/%d/%d/' % (agenda.pk, today.year, today.month, today.day))
|
||||
assert '/manage/agendas/%s/bookings/%s/check' % (agenda.pk, booking.pk) not in resp
|
||||
app.get('/manage/agendas/%s/bookings/%s/check' % (agenda.pk, booking.pk), status=404)
|
||||
|
||||
# now disable check update
|
||||
event.check_locked = False
|
||||
event.save()
|
||||
agenda.disable_check_update = True
|
||||
agenda.save()
|
||||
resp = app.get('/manage/agendas/%s/day/%d/%d/%d/' % (agenda.pk, today.year, today.month, today.day))
|
||||
assert '/manage/agendas/%s/bookings/%s/check' % (agenda.pk, booking.pk) not in resp
|
||||
app.get('/manage/agendas/%s/bookings/%s/check' % (agenda.pk, booking.pk), status=404)
|
||||
|
||||
|
||||
def test_manager_partial_bookings_check_future_events(app, admin_user, freezer):
|
||||
agenda = Agenda.objects.create(label='Foo bar', kind='events', partial_bookings=True)
|
||||
|
|
Loading…
Reference in New Issue