diff --git a/rrs/models.py b/rrs/models.py index 3eb99c9..64d7985 100644 --- a/rrs/models.py +++ b/rrs/models.py @@ -64,6 +64,22 @@ class Milestone(models.Model): current_milestone = Milestone.get_by_release_and_date(release, current) 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 """ def get_week_intervals(self): from datetime import timedelta @@ -77,9 +93,10 @@ class Milestone(models.Model): if current_date >= self.end_date: break; - weeks[week_no] = {} - weeks[week_no]['start_date'] = current_date - weeks[week_no]['end_date'] = current_date + week_delta + week = "Wk" + str(week_no) + weeks[week] = {} + weeks[week]['start_date'] = current_date + weeks[week]['end_date'] = current_date + week_delta current_date += week_delta week_no += 1 diff --git a/rrs/views.py b/rrs/views.py index 8072e60..de84fa8 100644 --- a/rrs/views.py +++ b/rrs/views.py @@ -380,7 +380,7 @@ class MaintainerList(): recipes_unknown = '0' percentage_done = '0.00' - week_statistics = None + interval_statistics = None def __init__(self, name): self.name = name @@ -398,7 +398,10 @@ class MaintainerListView(ListView): milestone = get_object_or_404(Milestone, release = release, 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) @@ -413,8 +416,7 @@ class MaintainerListView(ListView): self.maintainer_count = len(maintainer_list) - self.milestone_weeks = sorted(milestone_week_intervals.keys()) - self.current_week = -1 + self.intervals = sorted(intervals.keys()) current_date = date.today() for ml in maintainer_list: milestone_statistics = _get_milestone_statistics(milestone, ml.name) @@ -425,18 +427,19 @@ class MaintainerListView(ListView): ml.recipes_unknown = milestone_statistics['unknown'] ml.percentage_done = milestone_statistics['percentage'] + '%' - ml.week_statistics = [] - for week_no in milestone_week_intervals.keys(): - start_date = milestone_week_intervals[week_no]['start_date'] - end_date = milestone_week_intervals[week_no]['end_date'] + ml.interval_statistics = [] + self.current_interval = -1 + for idx, i in enumerate(sorted(intervals.keys())): + start_date = intervals[i]['start_date'] + end_date = intervals[i]['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, commit_date__gte = start_date, 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 @@ -458,8 +461,8 @@ class MaintainerListView(ListView): context['recipes_unknown'] = self.milestone_statistics['unknown'] context['maintainer_count'] = self.maintainer_count - context['milestone_weeks'] = self.milestone_weeks - context['current_week'] = self.current_week + context['intervals'] = self.intervals + context['current_interval'] = self.current_interval return context diff --git a/templates/rrs/maintainers.html b/templates/rrs/maintainers.html index d71017c..6ca4906 100644 --- a/templates/rrs/maintainers.html +++ b/templates/rrs/maintainers.html @@ -45,13 +45,13 @@ Unknown % done - {% for w in milestone_weeks %} - {% if current_week == forloop.counter0 %} + {% for i in intervals %} + {% if current_interval == forloop.counter0 %} {% else %} {% endif %} - wk{{ w }} + {{ i }} {% endfor %} @@ -88,8 +88,8 @@ {{ ml.percentage_done }} - {% for number in ml.week_statistics %} - {% if current_week == forloop.counter0 %} + {% for number in ml.interval_statistics %} + {% if current_interval == forloop.counter0 %} {% else %}