manager: redirection for old urls (#72323)
gitea-wip/chrono/pipeline/pr-main This commit looks good Details

This commit is contained in:
Lauréline Guérin 2022-12-15 09:28:44 +01:00
parent bf44300704
commit b0201494cc
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
4 changed files with 74 additions and 10 deletions

View File

@ -83,6 +83,11 @@ urlpatterns = [
views.resource_day_view,
name='chrono-manager-resource-day-view',
),
re_path(
r'^resource/(?P<pk>\d+)/(?P<year>[0-9]{4})/',
views.resource_redirect_view,
name='chrono-manager-resource-redirect-view',
),
path('resource/<int:pk>/edit/', views.resource_edit, name='chrono-manager-resource-edit'),
path('resource/<int:pk>/delete/', views.resource_delete, name='chrono-manager-resource-delete'),
path('categories/', views.category_list, name='chrono-manager-category-list'),
@ -132,6 +137,11 @@ urlpatterns = [
views.agenda_day_view,
name='chrono-manager-agenda-day-view',
),
re_path(
r'^agendas/(?P<pk>\d+)/(?P<year>[0-9]{4})/',
views.agenda_redirect_view,
name='chrono-manager-agenda-redirect-view',
),
path(
'agendas/<int:pk>/events/open/',
views.agenda_open_events_view,

View File

@ -654,6 +654,14 @@ class ResourceMonthView(ResourceWeekMonthMixin, DateMixin, DayArchiveView):
resource_monthly_view = ResourceMonthView.as_view()
class ResourceRedirectView(RedirectView):
def get_redirect_url(self, *args, **kwargs):
return reverse('chrono-manager-resource-view', kwargs={'pk': kwargs['pk']})
resource_redirect_view = ResourceRedirectView.as_view()
class ResourceAddView(CreateView):
template_name = 'chrono/manager_resource_form.html'
model = Resource
@ -1754,6 +1762,14 @@ class AgendaMonthView(AgendaWeekMonthMixin, AgendaDateView, DayArchiveView):
agenda_monthly_view = AgendaMonthView.as_view()
class AgendaRedirectView(RedirectView):
def get_redirect_url(self, *args, **kwargs):
return reverse('chrono-manager-agenda-view', kwargs={'pk': kwargs['pk']})
agenda_redirect_view = AgendaRedirectView.as_view()
class AgendaOpenEventsView(ViewableAgendaMixin, DetailView):
model = Agenda
template_name = 'chrono/manager_agenda_open_events.html'

View File

@ -113,25 +113,33 @@ def test_events_agenda_redirect(app, admin_user):
app = login(app)
for agenda_id in [agenda.pk, agenda.slug]:
resp = app.get('/manage/agendas/%s/' % agenda_id, status=302)
assert resp.location.endswith('/manage/agendas/%s/month/' % agenda.pk)
assert resp.location.endswith('/manage/agendas/%s/month/' % agenda.pk)
agenda.default_view = 'open_events'
agenda.save()
for agenda_id in [agenda.pk, agenda.slug]:
resp = app.get('/manage/agendas/%s/' % agenda_id, status=302)
assert resp.location.endswith('/manage/agendas/%s/events/open/' % agenda.pk)
assert resp.location.endswith('/manage/agendas/%s/events/open/' % agenda.pk)
agenda.default_view = 'day'
agenda.save()
for agenda_id in [agenda.pk, agenda.slug]:
resp = app.get('/manage/agendas/%s/' % agenda_id, status=302)
assert resp.location.endswith('/manage/agendas/%s/day/' % agenda.pk)
assert resp.location.endswith('/manage/agendas/%s/day/' % agenda.pk)
agenda.default_view = 'week'
agenda.save()
for agenda_id in [agenda.pk, agenda.slug]:
resp = app.get('/manage/agendas/%s/' % agenda_id, status=302)
assert resp.location.endswith('/manage/agendas/%s/week/' % agenda.pk)
assert resp.location.endswith('/manage/agendas/%s/week/' % agenda.pk)
# old month/week/days views
resp = app.get('/manage/agendas/%s/2022/12/15/' % agenda.pk, status=302)
assert resp.location.endswith('/manage/agendas/%s/' % agenda.pk)
resp = app.get('/manage/agendas/%s/2022/12/' % agenda.pk, status=302)
assert resp.location.endswith('/manage/agendas/%s/' % agenda.pk)
resp = app.get('/manage/agendas/%s/2022/week/1/' % agenda.pk, status=302)
assert resp.location.endswith('/manage/agendas/%s/' % agenda.pk)
@freezegun.freeze_time('2020-07-12')
@ -296,19 +304,27 @@ def test_meetings_agenda_redirect(app, admin_user):
app = login(app)
for agenda_id in [agenda.pk, agenda.slug]:
resp = app.get('/manage/agendas/%s/' % agenda_id, status=302)
assert resp.location.endswith('/manage/agendas/%s/day/' % agenda.pk)
assert resp.location.endswith('/manage/agendas/%s/day/' % agenda.pk)
agenda.default_view = 'month'
agenda.save()
for agenda_id in [agenda.pk, agenda.slug]:
resp = app.get('/manage/agendas/%s/' % agenda_id, status=302)
assert resp.location.endswith('/manage/agendas/%s/month/' % agenda.pk)
assert resp.location.endswith('/manage/agendas/%s/month/' % agenda.pk)
agenda.default_view = 'week'
agenda.save()
for agenda_id in [agenda.pk, agenda.slug]:
resp = app.get('/manage/agendas/%s/' % agenda_id, status=302)
assert resp.location.endswith('/manage/agendas/%s/week/' % agenda.pk)
assert resp.location.endswith('/manage/agendas/%s/week/' % agenda.pk)
# old month/week/days views
resp = app.get('/manage/agendas/%s/2022/12/15/' % agenda.pk, status=302)
assert resp.location.endswith('/manage/agendas/%s/' % agenda.pk)
resp = app.get('/manage/agendas/%s/2022/12/' % agenda.pk, status=302)
assert resp.location.endswith('/manage/agendas/%s/' % agenda.pk)
resp = app.get('/manage/agendas/%s/2022/week/1/' % agenda.pk, status=302)
assert resp.location.endswith('/manage/agendas/%s/' % agenda.pk)
def test_virtual_agenda_redirect(app, admin_user):
@ -317,19 +333,27 @@ def test_virtual_agenda_redirect(app, admin_user):
app = login(app)
for agenda_id in [agenda.pk, agenda.slug]:
resp = app.get('/manage/agendas/%s/' % agenda_id, status=302)
assert resp.location.endswith('/manage/agendas/%s/day/' % agenda.pk)
assert resp.location.endswith('/manage/agendas/%s/day/' % agenda.pk)
agenda.default_view = 'month'
agenda.save()
for agenda_id in [agenda.pk, agenda.slug]:
resp = app.get('/manage/agendas/%s/' % agenda_id, status=302)
assert resp.location.endswith('/manage/agendas/%s/month/' % agenda.pk)
assert resp.location.endswith('/manage/agendas/%s/month/' % agenda.pk)
agenda.default_view = 'week'
agenda.save()
for agenda_id in [agenda.pk, agenda.slug]:
resp = app.get('/manage/agendas/%s/' % agenda_id, status=302)
assert resp.location.endswith('/manage/agendas/%s/week/' % agenda.pk)
assert resp.location.endswith('/manage/agendas/%s/week/' % agenda.pk)
# old month/week/days views
resp = app.get('/manage/agendas/%s/2022/12/15/' % agenda.pk, status=302)
assert resp.location.endswith('/manage/agendas/%s/' % agenda.pk)
resp = app.get('/manage/agendas/%s/2022/12/' % agenda.pk, status=302)
assert resp.location.endswith('/manage/agendas/%s/' % agenda.pk)
resp = app.get('/manage/agendas/%s/2022/week/1/' % agenda.pk, status=302)
assert resp.location.endswith('/manage/agendas/%s/' % agenda.pk)
def test_view_agendas_as_admin(app, admin_user):

View File

@ -66,6 +66,20 @@ def test_view_resource_as_manager(app, manager_user):
app.get('/manage/resource/%s/' % resource.pk, status=403)
def test_resource_redirect(app, admin_user):
resource = Resource.objects.create(label='Resource 1')
app = login(app)
# old month/week/days views
resp = app.get('/manage/resource/%s/2022/12/15/' % resource.pk, status=302)
assert resp.location.endswith('/manage/resource/%s/' % resource.pk)
resp = app.get('/manage/resource/%s/2022/12/' % resource.pk, status=302)
assert resp.location.endswith('/manage/resource/%s/' % resource.pk)
resp = app.get('/manage/resource/%s/2022/week/1/' % resource.pk, status=302)
assert resp.location.endswith('/manage/resource/%s/' % resource.pk)
def test_resource_day_view(app, admin_user, get_proper_html_str):
today = datetime.date.today()
resource = Resource.objects.create(label='Foo bar')