aboutsummaryrefslogtreecommitdiffstats
path: root/rrs
diff options
context:
space:
mode:
authorAníbal Limón <anibal.limon@linux.intel.com>2015-01-30 14:49:17 -0600
committerPaul Eggleton <paul.eggleton@linux.intel.com>2018-05-04 23:57:51 +1200
commitf3f70210afaca4388c535d465e3d5671a4de979b (patch)
tree83d8a9d510bd48b12ce14d5a87396b563d968f4e /rrs
parent5534515a8abd0a5544b7505129bcd8bc4b9daaff (diff)
downloadopenembedded-core-contrib-f3f70210afaca4388c535d465e3d5671a4de979b.tar.gz
rrs: Now display recipes when not found upstream info.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Diffstat (limited to 'rrs')
-rw-r--r--rrs/models.py10
-rw-r--r--rrs/views.py100
2 files changed, 64 insertions, 46 deletions
diff --git a/rrs/models.py b/rrs/models.py
index 129020648b..ee6288e1ac 100644
--- a/rrs/models.py
+++ b/rrs/models.py
@@ -124,9 +124,13 @@ class RecipeMaintainer(models.Model):
@staticmethod
def get_maintainer_by_recipe_and_history(recipe, history):
- recipe_maintainer = RecipeMaintainer.objects.filter(recipe = recipe,
- history = history)[0]
- return recipe_maintainer.maintainer
+ qry = RecipeMaintainer.objects.filter(recipe = recipe,
+ history = history)
+
+ if qry:
+ return qry[0].maintainer
+ else:
+ return None
def __unicode__(self):
return "%s: %s <%s>" % (self.recipe.pn, self.maintainer.name,
diff --git a/rrs/views.py b/rrs/views.py
index 655dfd86cb..12f6ab3d4b 100644
--- a/rrs/views.py
+++ b/rrs/views.py
@@ -1,5 +1,6 @@
import urllib
+from datetime import date
from django.http import Http404
from django.shortcuts import get_object_or_404
from django.views.generic import ListView, DetailView
@@ -37,17 +38,9 @@ def _get_milestone_statistics(milestone, maintainer_name=None):
milestone.end_date
)
- if recipe_upstream_history is None:
- milestone_statistics['all'] = '0'
- milestone_statistics['up_to_date'] = '0'
- milestone_statistics['not_updated'] = '0'
- milestone_statistics['unknown'] = '0'
- milestone_statistics['percentage'] = '0.0'
- elif maintainer_name is None:
- recipe_count = RecipeUpstream.objects.filter(history =
- recipe_upstream_history).count()
-
- milestone_statistics['all'] = recipe_count
+ if maintainer_name is None:
+ milestone_statistics['all'] = Recipe.objects.all().count()
+
milestone_statistics['up_to_date'] = RecipeUpstream.objects.filter(
history = recipe_upstream_history, status = 'Y').count()
milestone_statistics['not_updated'] = RecipeUpstream.objects.filter(
@@ -60,19 +53,21 @@ def _get_milestone_statistics(milestone, maintainer_name=None):
else:
recipe_maintainer_history = RecipeMaintainerHistory.get_by_end_date(
milestone.end_date)
+ recipe_maintainer_all = RecipeMaintainer.objects.filter(history = recipe_maintainer_history,
+ maintainer__name = maintainer_name)
+ milestone_statistics['all'] = len(recipe_maintainer_all)
- recipes_all = []
- for rm in RecipeMaintainer.objects.filter(history = recipe_maintainer_history,
- maintainer__name = maintainer_name):
- ru = RecipeUpstream.objects.filter(recipe = rm.recipe, history =
- recipe_upstream_history)[0]
- recipes_all.append(ru)
+ recipe_upstream_all = []
+ for rm in recipe_maintainer_all:
+ ru_qry = RecipeUpstream.objects.filter(recipe = rm.recipe, history =
+ recipe_upstream_history)
+ if ru_qry:
+ recipe_upstream_all.append(ru_qry[0])
- milestone_statistics['all'] = len(recipes_all)
milestone_statistics['up_to_date'] = 0
milestone_statistics['not_updated'] = 0
milestone_statistics['unknown'] = 0
- for ru in recipes_all:
+ for ru in recipe_upstream_all:
if ru.status == 'Y':
milestone_statistics['up_to_date'] += 1
elif ru.status == 'N':
@@ -95,15 +90,10 @@ class RecipeList():
upstream_version = None
maintainer_name = None
- def __init__(self, pk, name, version, summary, upstream_status,
- upstream_version, maintainer_name):
+ def __init__(self, pk, name, summary):
self.pk = pk
self.name = name
- self.version = version
self.summary = summary
- self.upstream_status = upstream_status
- self.upstream_version = upstream_version
- self.maintainer_name = maintainer_name
class RecipeListView(ListView):
context_object_name = 'recipe_list'
@@ -126,38 +116,64 @@ class RecipeListView(ListView):
self.milestone_statistics = _get_milestone_statistics(milestone)
+ self.recipe_maintainer_history = RecipeMaintainerHistory.get_by_end_date(
+ milestone.end_date)
recipe_upstream_history = RecipeUpstreamHistory.get_last_by_date_range(
milestone.start_date,
milestone.end_date
)
- self.recipe_maintainer_history = RecipeMaintainerHistory.get_by_end_date(
- milestone.end_date)
recipe_list = []
self.recipe_list_count = 0
- if not recipe_upstream_history is None:
- recipe_qry = Recipe.objects.filter().order_by('pn')
+ current_date = date.today()
+ for recipe in Recipe.objects.filter().order_by('pn'):
+ if current_date >= milestone.start_date and \
+ current_date <= milestone.end_date:
+ version = recipe.pv
+ else:
+ version = '' # Implement recipe version history
- for recipe in recipe_qry:
- recipe_upstream = RecipeUpstream.get_by_recipe_and_history(
- recipe, recipe_upstream_history)
+ recipe_upstream = RecipeUpstream.get_by_recipe_and_history(
+ recipe, recipe_upstream_history)
- recipe_upstream_status = \
+ if recipe_upstream is None:
+ if self.upstream_status != 'All':
+ continue
+
+ upstream_status = ''
+ upstream_version = ''
+ else:
+ upstream_status = \
RecipeUpstream.RECIPE_UPSTREAM_STATUS_CHOICES_DICT[
recipe_upstream.status]
- if recipe_upstream_status == 'Downgrade':
- recipe_upstream_status = 'Unknown' # Downgrade is displayed as Unknown
- if self.upstream_status != 'All' and self.upstream_status != recipe_upstream_status:
+ if upstream_status == 'Downgrade':
+ upstream_status = 'Unknown' # Downgrade is displayed as Unknown
+
+ if self.upstream_status != 'All' and \
+ self.upstream_status != upstream_status:
continue
- maintainer = RecipeMaintainer.get_maintainer_by_recipe_and_history(
- recipe, self.recipe_maintainer_history)
+ upstream_version = recipe_upstream.version
+
+ maintainer = RecipeMaintainer.get_maintainer_by_recipe_and_history(
+ recipe, self.recipe_maintainer_history)
+ if maintainer is None:
+ if self.maintainer_name != 'All':
+ continue
+
+ maintainer_name = ''
+ else:
if self.maintainer_name != 'All' and self.maintainer_name != maintainer.name:
continue
- recipe_list_item = RecipeList(recipe.id, recipe.pn, recipe.pv, recipe.summary,
- recipe_upstream_status, recipe_upstream.version, maintainer.name)
- recipe_list.append(recipe_list_item)
+ maintainer_name = maintainer.name
+
+ recipe_list_item = RecipeList(recipe.id, recipe.pn, recipe.summary)
+ recipe_list_item.version = version
+ recipe_list_item.upstream_status = upstream_status
+ recipe_list_item.upstream_version = upstream_version
+ recipe_list_item.maintainer_name = maintainer_name
+ recipe_list.append(recipe_list_item)
self.recipe_list_count = len(recipe_list)
@@ -319,8 +335,6 @@ class MaintainerListView(ListView):
context_object_name = 'maintainer_list'
def get_queryset(self):
- from datetime import date
-
maintainer_list = []
self.maintainer_count = 0