mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 20:59:01 +02:00
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>
This commit is contained in:
parent
a9aff3cae6
commit
faafae13fa
|
@ -447,6 +447,21 @@ class Raw():
|
||||||
""", [date])
|
""", [date])
|
||||||
return Raw.dictfetchall(cur)
|
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
|
@staticmethod
|
||||||
def dictfetchall(cursor):
|
def dictfetchall(cursor):
|
||||||
"Returns all rows from a cursor as a dict"
|
"Returns all rows from a cursor as a dict"
|
||||||
|
|
23
rrs/views.py
23
rrs/views.py
|
@ -3,7 +3,7 @@ import urllib
|
||||||
import csv
|
import csv
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
|
|
||||||
from datetime import date
|
from datetime import date, datetime
|
||||||
from django.http import Http404
|
from django.http import Http404
|
||||||
from django.shortcuts import get_object_or_404
|
from django.shortcuts import get_object_or_404
|
||||||
from django.views.generic import ListView, DetailView
|
from django.views.generic import ListView, DetailView
|
||||||
|
@ -96,6 +96,7 @@ class RecipeList():
|
||||||
summary = None
|
summary = None
|
||||||
upstream_status = None
|
upstream_status = None
|
||||||
upstream_version = None
|
upstream_version = None
|
||||||
|
outdated = None
|
||||||
maintainer_name = None
|
maintainer_name = None
|
||||||
no_update_reason = None
|
no_update_reason = None
|
||||||
|
|
||||||
|
@ -116,6 +117,7 @@ def _get_recipe_list(milestone):
|
||||||
recipe_list = []
|
recipe_list = []
|
||||||
recipes_ids = []
|
recipes_ids = []
|
||||||
recipe_upstream_dict_all = {}
|
recipe_upstream_dict_all = {}
|
||||||
|
recipe_last_updated_dict_all = {}
|
||||||
maintainers_dict_all = {}
|
maintainers_dict_all = {}
|
||||||
current_date = date.today()
|
current_date = date.today()
|
||||||
|
|
||||||
|
@ -127,12 +129,17 @@ def _get_recipe_list(milestone):
|
||||||
if recipe_upstream_history:
|
if recipe_upstream_history:
|
||||||
recipe_upstream_all = Raw.get_reup_by_recipes_and_date(
|
recipe_upstream_all = Raw.get_reup_by_recipes_and_date(
|
||||||
recipes_ids, recipe_upstream_history.id)
|
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(
|
maintainers_all = Raw.get_ma_by_recipes_and_date(
|
||||||
recipes_ids, recipe_maintainer_history[0])
|
recipes_ids, recipe_maintainer_history[0])
|
||||||
for reup in recipe_upstream_all:
|
for reup in recipe_upstream_all:
|
||||||
recipe_upstream_dict_all[reup['recipe_id']] = reup
|
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:
|
for ma in maintainers_all:
|
||||||
maintainers_dict_all[ma['recipe_id']] = ma['name']
|
maintainers_dict_all[ma['recipe_id']] = ma['name']
|
||||||
|
|
||||||
else:
|
else:
|
||||||
recipe_upstream_all = None
|
recipe_upstream_all = None
|
||||||
|
|
||||||
|
@ -140,6 +147,7 @@ def _get_recipe_list(milestone):
|
||||||
upstream_version = ''
|
upstream_version = ''
|
||||||
upstream_status = ''
|
upstream_status = ''
|
||||||
no_update_reason = ''
|
no_update_reason = ''
|
||||||
|
outdated = ''
|
||||||
|
|
||||||
if recipe_upstream_history:
|
if recipe_upstream_history:
|
||||||
recipe_upstream = recipe_upstream_dict_all.get(recipe['id'])
|
recipe_upstream = recipe_upstream_dict_all.get(recipe['id'])
|
||||||
|
@ -167,11 +175,24 @@ def _get_recipe_list(milestone):
|
||||||
upstream_version = recipe_upstream['version']
|
upstream_version = recipe_upstream['version']
|
||||||
no_update_reason = recipe_upstream['no_update_reason']
|
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'], '')
|
maintainer_name = maintainers_dict_all.get(recipe['id'], '')
|
||||||
recipe_list_item = RecipeList(recipe['id'], recipe['pn'], recipe['summary'])
|
recipe_list_item = RecipeList(recipe['id'], recipe['pn'], recipe['summary'])
|
||||||
recipe_list_item.version = recipe['version']
|
recipe_list_item.version = recipe['version']
|
||||||
recipe_list_item.upstream_status = upstream_status
|
recipe_list_item.upstream_status = upstream_status
|
||||||
recipe_list_item.upstream_version = upstream_version
|
recipe_list_item.upstream_version = upstream_version
|
||||||
|
recipe_list_item.outdated = outdated
|
||||||
recipe_list_item.maintainer_name = maintainer_name
|
recipe_list_item.maintainer_name = maintainer_name
|
||||||
recipe_list_item.no_update_reason = no_update_reason
|
recipe_list_item.no_update_reason = no_update_reason
|
||||||
recipe_list.append(recipe_list_item)
|
recipe_list.append(recipe_list_item)
|
||||||
|
|
|
@ -88,13 +88,13 @@
|
||||||
<td class="version_column">{{ r.version }}</td>
|
<td class="version_column">{{ r.version }}</td>
|
||||||
<td class="upstream_version_column">{{ r.upstream_version }}</td>
|
<td class="upstream_version_column">{{ r.upstream_version }}</td>
|
||||||
{% if r.upstream_status == "Up-to-date" %}
|
{% 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" %}
|
{% 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" %}
|
{% elif r.upstream_status == "Can't be updated" %}
|
||||||
<td class="muted">
|
<td class="muted" data-toggle="tooltip" title="{{r.outdated}}">
|
||||||
{% else %}
|
{% else %}
|
||||||
<td class="text-warning">
|
<td class="text-warning" data-toggle="tooltip" title="{{r.outdated}}">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{{ r.upstream_status }}
|
{{ r.upstream_status }}
|
||||||
</td>
|
</td>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user