rrs: Maintainers add support for display Milestone intervals

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
This commit is contained in:
Aníbal Limón 2015-02-17 00:29:41 -06:00 committed by Paul Eggleton
parent b076105829
commit cec364510f
3 changed files with 40 additions and 20 deletions

View File

@ -64,6 +64,22 @@ class Milestone(models.Model):
current_milestone = Milestone.get_by_release_and_date(release, current) current_milestone = Milestone.get_by_release_and_date(release, current)
return current_milestone or Milestone.objects.filter().order_by('-end_date')[0] return current_milestone or Milestone.objects.filter().order_by('-end_date')[0]
""" Get milestone intervals by release """
@staticmethod
def get_milestone_intervals(release):
milestones = Milestone.objects.filter(release = release)
milestone_dir = {}
for m in milestones:
if "All" in m.name:
continue
milestone_dir[m.name] = {}
milestone_dir[m.name]['start_date'] = m.start_date
milestone_dir[m.name]['end_date'] = m.end_date
return milestone_dir
""" Get week intervals from start and end of Milestone """ """ Get week intervals from start and end of Milestone """
def get_week_intervals(self): def get_week_intervals(self):
from datetime import timedelta from datetime import timedelta
@ -77,9 +93,10 @@ class Milestone(models.Model):
if current_date >= self.end_date: if current_date >= self.end_date:
break; break;
weeks[week_no] = {} week = "Wk" + str(week_no)
weeks[week_no]['start_date'] = current_date weeks[week] = {}
weeks[week_no]['end_date'] = current_date + week_delta weeks[week]['start_date'] = current_date
weeks[week]['end_date'] = current_date + week_delta
current_date += week_delta current_date += week_delta
week_no += 1 week_no += 1

View File

@ -380,7 +380,7 @@ class MaintainerList():
recipes_unknown = '0' recipes_unknown = '0'
percentage_done = '0.00' percentage_done = '0.00'
week_statistics = None interval_statistics = None
def __init__(self, name): def __init__(self, name):
self.name = name self.name = name
@ -398,7 +398,10 @@ class MaintainerListView(ListView):
milestone = get_object_or_404(Milestone, release = release, milestone = get_object_or_404(Milestone, release = release,
name=self.milestone_name) name=self.milestone_name)
milestone_week_intervals = milestone.get_week_intervals() if "All" in milestone.name:
intervals = milestone.get_milestone_intervals(release)
else:
intervals = milestone.get_week_intervals()
self.milestone_statistics = _get_milestone_statistics(milestone) self.milestone_statistics = _get_milestone_statistics(milestone)
@ -413,8 +416,7 @@ class MaintainerListView(ListView):
self.maintainer_count = len(maintainer_list) self.maintainer_count = len(maintainer_list)
self.milestone_weeks = sorted(milestone_week_intervals.keys()) self.intervals = sorted(intervals.keys())
self.current_week = -1
current_date = date.today() current_date = date.today()
for ml in maintainer_list: for ml in maintainer_list:
milestone_statistics = _get_milestone_statistics(milestone, ml.name) milestone_statistics = _get_milestone_statistics(milestone, ml.name)
@ -425,18 +427,19 @@ class MaintainerListView(ListView):
ml.recipes_unknown = milestone_statistics['unknown'] ml.recipes_unknown = milestone_statistics['unknown']
ml.percentage_done = milestone_statistics['percentage'] + '%' ml.percentage_done = milestone_statistics['percentage'] + '%'
ml.week_statistics = [] ml.interval_statistics = []
for week_no in milestone_week_intervals.keys(): self.current_interval = -1
start_date = milestone_week_intervals[week_no]['start_date'] for idx, i in enumerate(sorted(intervals.keys())):
end_date = milestone_week_intervals[week_no]['end_date'] start_date = intervals[i]['start_date']
end_date = intervals[i]['end_date']
if current_date >= start_date and current_date <= end_date: if current_date >= start_date and current_date <= end_date:
self.current_week = week_no - 1 # used in template for loop self.current_interval = idx
number = RecipeUpgrade.objects.filter(maintainer__name = ml.name, number = RecipeUpgrade.objects.filter(maintainer__name = ml.name,
commit_date__gte = start_date, commit_date__gte = start_date,
commit_date__lte = end_date).count() commit_date__lte = end_date).count()
ml.week_statistics.append('' if number == 0 else number) ml.interval_statistics.append('' if number == 0 else number)
return maintainer_list return maintainer_list
@ -458,8 +461,8 @@ class MaintainerListView(ListView):
context['recipes_unknown'] = self.milestone_statistics['unknown'] context['recipes_unknown'] = self.milestone_statistics['unknown']
context['maintainer_count'] = self.maintainer_count context['maintainer_count'] = self.maintainer_count
context['milestone_weeks'] = self.milestone_weeks context['intervals'] = self.intervals
context['current_week'] = self.current_week context['current_interval'] = self.current_interval
return context return context

View File

@ -45,13 +45,13 @@
<th class="muted">Unknown</th> <th class="muted">Unknown</th>
<th>% done</th> <th>% done</th>
{% for w in milestone_weeks %} {% for i in intervals %}
{% if current_week == forloop.counter0 %} {% if current_interval == forloop.counter0 %}
<th class="current-wk"> <th class="current-wk">
{% else %} {% else %}
<th class="muted"> <th class="muted">
{% endif %} {% endif %}
wk{{ w }} {{ i }}
</th> </th>
{% endfor %} {% endfor %}
</tr> </tr>
@ -88,8 +88,8 @@
</a> </a>
</td> </td>
<td>{{ ml.percentage_done }}</td> <td>{{ ml.percentage_done }}</td>
{% for number in ml.week_statistics %} {% for number in ml.interval_statistics %}
{% if current_week == forloop.counter0 %} {% if current_interval == forloop.counter0 %}
<td class="current-wk"> <td class="current-wk">
{% else %} {% else %}
<td class="muted"> <td class="muted">