diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2018-03-21 16:16:02 +1300 |
---|---|---|
committer | Paul Eggleton <paul.eggleton@linux.intel.com> | 2018-05-04 23:57:53 +1200 |
commit | b2a67d718cbbe004a940145fc12ccfac56490765 (patch) | |
tree | cb57e15573d1561ec547cee662e3e9160d66de68 /rrs | |
parent | 88467d1ab97ff5a34b19306edc7b198bda86a222 (diff) | |
download | openembedded-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.py | 5 | ||||
-rw-r--r-- | rrs/views.py | 14 |
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) |