aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMariano Lopez <mariano.lopez@linux.intel.com>2015-06-26 14:35:31 -0500
committerPaul Eggleton <paul.eggleton@linux.intel.com>2018-05-04 23:57:52 +1200
commitfaafae13fa6bde4809bab65e6eb7ad049140b2ea (patch)
tree5fd69ea6e4821dd471284fba27b2bffed3d7326c
parenta9aff3cae665a9b80f3b06f45865a2239d739ac3 (diff)
downloadopenembedded-core-contrib-faafae13fa6bde4809bab65e6eb7ad049140b2ea.tar.gz
views.py: Add how long a recipe hasn't been updated
This add a tooltip in the upstream status field that show how long the recipe hasn't been updated. Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com> Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
-rw-r--r--rrs/models.py15
-rw-r--r--rrs/views.py23
-rw-r--r--templates/rrs/recipes.html8
3 files changed, 41 insertions, 5 deletions
diff --git a/rrs/models.py b/rrs/models.py
index e9cf787cca..a72fa63ddb 100644
--- a/rrs/models.py
+++ b/rrs/models.py
@@ -448,6 +448,21 @@ class Raw():
return Raw.dictfetchall(cur)
@staticmethod
+ def get_reup_by_last_updated(date):
+ cur = connection.cursor()
+ cur.execute("""SELECT te.recipe_id, te.status, te.date, te.rownum FROM(
+ SELECT recipe_id, status, date, ROW_NUMBER() OVER(
+ PARTITION BY recipe_id
+ ORDER BY date DESC
+ ) AS rownum
+ FROM rrs_RecipeUpstream
+ WHERE status = 'Y'
+ AND date <= %s) AS te
+ WHERE te.rownum = 1;
+ """, [date])
+ return Raw.dictfetchall(cur)
+
+ @staticmethod
def dictfetchall(cursor):
"Returns all rows from a cursor as a dict"
desc = cursor.description
diff --git a/rrs/views.py b/rrs/views.py
index e2aa1ce817..5c458b38b1 100644
--- a/rrs/views.py
+++ b/rrs/views.py
@@ -3,7 +3,7 @@ import urllib
import csv
from django.http import HttpResponse
-from datetime import date
+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
@@ -96,6 +96,7 @@ class RecipeList():
summary = None
upstream_status = None
upstream_version = None
+ outdated = None
maintainer_name = None
no_update_reason = None
@@ -116,6 +117,7 @@ def _get_recipe_list(milestone):
recipe_list = []
recipes_ids = []
recipe_upstream_dict_all = {}
+ recipe_last_updated_dict_all = {}
maintainers_dict_all = {}
current_date = date.today()
@@ -127,12 +129,17 @@ def _get_recipe_list(milestone):
if recipe_upstream_history:
recipe_upstream_all = Raw.get_reup_by_recipes_and_date(
recipes_ids, recipe_upstream_history.id)
+ recipe_last_updated = Raw.get_reup_by_last_updated(
+ milestone.end_date)
maintainers_all = Raw.get_ma_by_recipes_and_date(
recipes_ids, recipe_maintainer_history[0])
for reup in recipe_upstream_all:
recipe_upstream_dict_all[reup['recipe_id']] = reup
+ for rela in recipe_last_updated:
+ recipe_last_updated_dict_all[rela['recipe_id']] = rela
for ma in maintainers_all:
maintainers_dict_all[ma['recipe_id']] = ma['name']
+
else:
recipe_upstream_all = None
@@ -140,6 +147,7 @@ def _get_recipe_list(milestone):
upstream_version = ''
upstream_status = ''
no_update_reason = ''
+ outdated = ''
if recipe_upstream_history:
recipe_upstream = recipe_upstream_dict_all.get(recipe['id'])
@@ -167,11 +175,24 @@ def _get_recipe_list(milestone):
upstream_version = recipe_upstream['version']
no_update_reason = recipe_upstream['no_update_reason']
+ #Get how long the recipe hasn't been updated
+ if recipe_upstream['status'] != 'Y':
+ recipe_last_updated = \
+ recipe_last_updated_dict_all.get(recipe['id'])
+ if recipe_last_updated:
+ recipe_date = recipe_last_updated['date']
+ outdated = (current_date - recipe_date.date()).days
+ else:
+ outdated = 'Unknown'
+ else:
+ outdated = 'Up-to-date'
+
maintainer_name = maintainers_dict_all.get(recipe['id'], '')
recipe_list_item = RecipeList(recipe['id'], recipe['pn'], recipe['summary'])
recipe_list_item.version = recipe['version']
recipe_list_item.upstream_status = upstream_status
recipe_list_item.upstream_version = upstream_version
+ recipe_list_item.outdated = outdated
recipe_list_item.maintainer_name = maintainer_name
recipe_list_item.no_update_reason = no_update_reason
recipe_list.append(recipe_list_item)
diff --git a/templates/rrs/recipes.html b/templates/rrs/recipes.html
index 493b7cf904..ca3c93ebee 100644
--- a/templates/rrs/recipes.html
+++ b/templates/rrs/recipes.html
@@ -88,13 +88,13 @@
<td class="version_column">{{ r.version }}</td>
<td class="upstream_version_column">{{ r.upstream_version }}</td>
{% if r.upstream_status == "Up-to-date" %}
- <td class="text-success">
+ <td class="text-success" data-toggle="tooltip" title="{{r.outdated}}">
{% elif r.upstream_status == "Not updated" %}
- <td class="text-error">
+ <td class="text-error" data-toggle="tooltip" title="{{r.outdated}}">
{% elif r.upstream_status == "Can't be updated" %}
- <td class="muted">
+ <td class="muted" data-toggle="tooltip" title="{{r.outdated}}">
{% else %}
- <td class="text-warning">
+ <td class="text-warning" data-toggle="tooltip" title="{{r.outdated}}">
{% endif %}
{{ r.upstream_status }}
</td>