time exceptions: stay on exception list on delete (#19033)

This commit is contained in:
Lauréline Guérin 2019-11-04 10:02:41 +01:00
parent c6f418dd8e
commit 49eff910c6
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
2 changed files with 23 additions and 1 deletions

View File

@ -776,6 +776,14 @@ class TimePeriodExceptionDeleteView(ManagedDeskSubobjectMixin, DeleteView):
template_name = 'chrono/manager_confirm_delete.html'
model = TimePeriodException
def get_success_url(self):
referer = self.request.META.get('HTTP_REFERER')
success_url = reverse('chrono-manager-time-period-exception-list', kwargs={'pk': self.desk.agenda_id})
if success_url in referer:
return success_url
return super(TimePeriodExceptionDeleteView, self).get_success_url()
time_period_exception_delete = TimePeriodExceptionDeleteView.as_view()

View File

@ -1025,8 +1025,22 @@ def test_meetings_agenda_delete_time_period_exception(app, admin_user):
assert localtime(time_period_exception.end_datetime).strftime(dt_format) == tomorrow.replace(hour=16).strftime(dt_format)
resp = resp.click(href='/manage/time-period-exceptions/%d/edit' % time_period_exception.id)
resp = resp.click('Delete')
resp = resp.form.submit()
resp = resp.form.submit().follow()
assert TimePeriodException.objects.count() == 0
assert resp.request.url.endswith('/manage/agendas/%d/settings' % agenda.pk)
# stay on exception list
time_period_exception = TimePeriodException.objects.create(
label='Future Exception',
desk=desk,
start_datetime=now() + datetime.timedelta(days=1),
end_datetime=now() + datetime.timedelta(days=2))
resp = app.get('/manage/time-period-exceptions/%d/exception-list' % desk.pk)
resp = resp.click(href='/manage/time-period-exceptions/%d/delete' % time_period_exception.pk)
resp = resp.form.submit(
extra_environ={'HTTP_REFERER': str('/manage/time-period-exceptions/%d/exception-list' % desk.pk)}
).follow()
assert resp.request.url.endswith('/manage/time-period-exceptions/%d/exception-list' % desk.pk)
def test_exception_list(app, admin_user):