aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2018-03-21 14:36:33 +1300
committerPaul Eggleton <paul.eggleton@linux.intel.com>2018-05-04 23:57:53 +1200
commit173317058391a9bbbd7bd9be63ff01cdc532807f (patch)
tree1f73455e4034dce078902f1b191b7a727715b9ea
parent9b7eec7ec803d05e376595eb25d9dc2059da5a54 (diff)
downloadopenembedded-core-contrib-173317058391a9bbbd7bd9be63ff01cdc532807f.tar.gz
rrs: add maintenance plan selection
Add a drop-down for selecting the maintenance plan from the recipes page. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-rw-r--r--rrs/models.py6
-rw-r--r--rrs/views.py2
-rw-r--r--templates/rrs/base_toplevel.html17
3 files changed, 25 insertions, 0 deletions
diff --git a/rrs/models.py b/rrs/models.py
index c7d8ea01e5..fcf0876e18 100644
--- a/rrs/models.py
+++ b/rrs/models.py
@@ -27,6 +27,9 @@ class MaintenancePlan(models.Model):
email_to = models.CharField(max_length=255, blank=True, help_text='Recipient for automated emails (separate multiple addresses with ;)')
admin = models.ForeignKey(User, blank=True, null=True, help_text='Plan administrator')
+ def get_default_release(self):
+ return self.release_set.last()
+
def __str__(self):
return '%s' % (self.name)
@@ -43,6 +46,9 @@ class Release(models.Model):
start_date = models.DateField(db_index=True)
end_date = models.DateField(db_index=True)
+ def get_default_milestone(self):
+ return self.milestone_set.last()
+
@staticmethod
def get_by_date(maintplan, date):
release_qry = Release.objects.filter(plan=maintplan,
diff --git a/rrs/views.py b/rrs/views.py
index 8711fd323a..d11046c426 100644
--- a/rrs/views.py
+++ b/rrs/views.py
@@ -508,6 +508,7 @@ class RecipeListView(ListView):
context['this_url_name'] = resolve(self.request.path_info).url_name
+ context['all_maintplans'] = MaintenancePlan.objects.all()
context['maintplan_name'] = self.maintplan_name
maintplan = get_object_or_404(MaintenancePlan, name=self.maintplan_name)
context['release_name'] = self.release_name
@@ -793,6 +794,7 @@ class MaintainerListView(ListView):
context['this_url_name'] = resolve(self.request.path_info).url_name
+ context['all_maintplans'] = MaintenancePlan.objects.all()
context['maintplan_name'] = self.maintplan_name
maintplan = get_object_or_404(MaintenancePlan, name=self.maintplan_name)
context['release_name'] = self.release_name
diff --git a/templates/rrs/base_toplevel.html b/templates/rrs/base_toplevel.html
index ee6790864c..212aaabd1d 100644
--- a/templates/rrs/base_toplevel.html
+++ b/templates/rrs/base_toplevel.html
@@ -14,6 +14,23 @@
{% block topfunctions %}
<ul class="nav">
<li class="divider-vertical" style="display; list-item;"/>
+{% block maintplan_selector %}
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">
+ Maintenance Plan: <b>{{ maintplan_name }}</b>
+ <b class="caret"></b>
+ </a>
+ <ul class="dropdown-menu">
+ {% for plan in all_maintplans %}
+ <li><a href="{% url this_url_name plan plan.get_default_release.name plan.get_default_release.get_default_milestone.name %}{{ extra_url_param }}">
+ {% if plan.name = maintplan_name %}<b>{% endif %}
+ {{ plan.name }}
+ {% if plan.name = maintplan_name %}</b>{% endif %}
+ </a></li>
+ {% endfor %}
+ </ul>
+ </li>
+{% endblock %}
{% block release_selector %}
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">