rrs: Fix frontpage redirect
PATCH 1/1 rrs: Fix frontpage redirect
We was experimenting fixed redirects due to urls are cached at init of rrs.
Move the redirect Release, Milestone selection to a view called FrontPageRedirect.
Signed-off-by Aníbal Limón <[email protected]>
--- rrs/urls.py | 17 +++-------------- rrs/views.py | 12 ++++++++++-- 2 files changed, 13 insertions(+), 16 deletions(-)
rrs/urls.py +3 -14
@@ -1,25 +1,14 @@ from django.views.generic import TemplateView -from django.views.generic.simple import redirect_to -from django.core.urlresolvers import reverse_lazy - from django.conf.urls import patterns, url from layerindex.views import EditProfileFormView from rrs.models import Release, Milestone -from rrs.views import RecipeListView, recipes_report, RecipeDetailView, MaintainerListView +from rrs.views import RecipeListView, recipes_report, RecipeDetailView, \ + MaintainerListView, FrontPageRedirect urlpatterns = patterns('', - url(r'^$', redirect_to, - {'url' : - reverse_lazy('recipes', - args = ( - Release.get_current().name, - Milestone.get_current(Release.get_current()).name, - ) - ), - 'permanent' : False - }, + url(r'^$', FrontPageRedirect.as_view(), name='frontpage'), url(r'^recipes/(?P<release_name>.*)/(?P<milestone_name>.*)/$', RecipeListView.as_view(
rrs/views.py +10 -2
@@ -6,14 +6,22 @@ from django.http import HttpResponse from datetime import date, datetime from django.http import Http404 from django.shortcuts import get_object_or_404 -from django.views.generic import ListView, DetailView -from django.core.urlresolvers import resolve +from django.views.generic import ListView, DetailView, RedirectView +from django.core.urlresolvers import resolve, reverse from layerindex.models import Recipe from rrs.models import Release, Milestone, Maintainer, RecipeMaintainerHistory, \ RecipeMaintainer, RecipeUpstreamHistory, RecipeUpstream, \ RecipeDistro, RecipeUpgrade, Raw +class FrontPageRedirect(RedirectView): + permanent = False + + def get_redirect_url(self): + release_name = Release.get_current().name + milestone_name = Milestone.get_current(Release.get_current()).name + return reverse('recipes', args=(release_name, milestone_name)) + def _check_url_params(upstream_status, maintainer_name): get_object_or_404(Maintainer, name=maintainer_name)
Signature · 1 line
2.1.4