time exceptions: never show past exceptions (#19033)

This commit is contained in:
Lauréline Guérin 2019-10-31 11:59:19 +01:00
parent 90dfb10afa
commit b5ef493d77
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
2 changed files with 36 additions and 1 deletions

View File

@ -749,7 +749,7 @@ class TimePeriodExceptionListView(ManagedDeskMixin, ListView):
model = TimePeriodException
def get_queryset(self):
return self.model.objects.filter(desk=self.desk)
return self.model.objects.filter(desk=self.desk, end_datetime__gte=now())
def get_context_data(self, **kwargs):
context = super(TimePeriodExceptionListView, self).get_context_data(**kwargs)

View File

@ -1028,6 +1028,41 @@ def test_meetings_agenda_delete_time_period_exception(app, admin_user):
resp = resp.form.submit()
assert TimePeriodException.objects.count() == 0
def test_exception_list(app, admin_user):
agenda = Agenda.objects.create(label='Foo bar', kind='meetings')
desk = Desk.objects.create(agenda=agenda, label='Desk A')
MeetingType(agenda=agenda, label='Blah').save()
TimePeriod.objects.create(weekday=1, desk=desk,
start_time=datetime.time(10, 0), end_time=datetime.time(12, 0))
past_exception = TimePeriodException.objects.create(
label='Past Exception',
desk=desk,
start_datetime=now() - datetime.timedelta(days=2),
end_datetime=now() - datetime.timedelta(days=1))
current_exception = TimePeriodException.objects.create(
label='Current Exception',
desk=desk,
start_datetime=now() - datetime.timedelta(days=1),
end_datetime=now() + datetime.timedelta(days=1))
future_exception = TimePeriodException.objects.create(
label='Future Exception',
desk=desk,
start_datetime=now() + datetime.timedelta(days=1),
end_datetime=now() + datetime.timedelta(days=2))
login(app)
resp = app.get('/manage/agendas/%d/settings' % agenda.pk)
assert '/manage/time-period-exceptions/%d/edit' % past_exception.pk not in resp.text
assert '/manage/time-period-exceptions/%d/edit' % current_exception.pk in resp.text
assert '/manage/time-period-exceptions/%d/edit' % future_exception.pk in resp.text
resp = resp.click(href="/manage/time-period-exceptions/%d/exception-list" % desk.pk)
assert '/manage/time-period-exceptions/%d/edit' % past_exception.pk not in resp.text
assert '/manage/time-period-exceptions/%d/edit' % current_exception.pk in resp.text
assert '/manage/time-period-exceptions/%d/edit' % future_exception.pk in resp.text
def test_agenda_import_time_period_exception_from_ics(app, admin_user):
agenda = Agenda.objects.create(label='Example', kind='meetings')
desk = Desk.objects.create(agenda=agenda, label='Test Desk')