aboutsummaryrefslogtreecommitdiffstats
path: root/rrs
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2018-03-21 16:16:02 +1300
committerPaul Eggleton <paul.eggleton@linux.intel.com>2018-05-04 23:57:53 +1200
commitb2a67d718cbbe004a940145fc12ccfac56490765 (patch)
treecb57e15573d1561ec547cee662e3e9160d66de68 /rrs
parent88467d1ab97ff5a34b19306edc7b198bda86a222 (diff)
downloadopenembedded-core-contrib-b2a67d718cbbe004a940145fc12ccfac56490765.tar.gz
Add link to maintenance plan in layer detail
If the RRS is enabled, then add a way to get from the layer detail page to any maintenance plans in which the layer is included. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Diffstat (limited to 'rrs')
-rw-r--r--rrs/urls.py5
-rw-r--r--rrs/views.py14
2 files changed, 18 insertions, 1 deletions
diff --git a/rrs/urls.py b/rrs/urls.py
index 9cc596da85..18fa61be54 100644
--- a/rrs/urls.py
+++ b/rrs/urls.py
@@ -2,11 +2,14 @@ from django.conf.urls import patterns, include, url
from rrs.models import Release, Milestone
from rrs.views import RecipeListView, recipes_report, RecipeDetailView, \
- MaintainerListView, FrontPageRedirect
+ MaintainerListView, FrontPageRedirect, MaintenancePlanRedirect
urlpatterns = patterns('',
url(r'^$', FrontPageRedirect.as_view(),
name='rrs_frontpage'),
+ url(r'^maintplan/(?P<maintplan_name>.*)/$',
+ MaintenancePlanRedirect.as_view(),
+ name='rrs_maintplan'),
url(r'^recipes/(?P<maintplan_name>.*)/(?P<release_name>.*)/(?P<milestone_name>.*)/$',
RecipeListView.as_view(
template_name='rrs/recipes.html'),
diff --git a/rrs/views.py b/rrs/views.py
index d11046c426..348b2d0629 100644
--- a/rrs/views.py
+++ b/rrs/views.py
@@ -32,6 +32,20 @@ class FrontPageRedirect(RedirectView):
raise Exception('No milestones defined for release %s' % release.name)
return reverse('rrs_recipes', args=(maintplan.name, release.name, milestone.name))
+class MaintenancePlanRedirect(RedirectView):
+ permanent = False
+
+ def get_redirect_url(self, maintplan_name):
+ maintplan = get_object_or_404(MaintenancePlan, name=maintplan_name)
+ release = Release.get_current(maintplan)
+ if not release:
+ raise Exception('No releases defined for maintenance plan %s' % maintplan.name)
+ milestone = Milestone.get_current(release)
+ if not milestone:
+ raise Exception('No milestones defined for release %s' % release.name)
+ return reverse('rrs_recipes', args=(maintplan.name, release.name, milestone.name))
+
+
def _check_url_params(upstream_status, maintainer_name):
get_object_or_404(Maintainer, name=maintainer_name)