diff options
author | Aníbal Limón <anibal.limon@linux.intel.com> | 2015-02-19 15:01:08 +0000 |
---|---|---|
committer | Paul Eggleton <paul.eggleton@linux.intel.com> | 2018-05-04 23:57:51 +1200 |
commit | 665dfae57735149cb60d40b6f2a6bf6db1577831 (patch) | |
tree | d2c8551d6c360f42709315f187db77eb01e662be /rrs/models.py | |
parent | d61f95164b8a57b5053c6ea3b324bd2ae74757fb (diff) | |
download | openembedded-core-contrib-665dfae57735149cb60d40b6f2a6bf6db1577831.tar.gz |
rrs: Release/Milestone improvments
rrs/models.py: Milestone now have unique in Release and Name fields
instead of only field. When try to get current milestone give priority
to Mn instead of All.
templates/rrs/base_toplevel.html: Display only release name when
milestone is All.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Diffstat (limited to 'rrs/models.py')
-rw-r--r-- | rrs/models.py | 46 |
1 files changed, 40 insertions, 6 deletions
diff --git a/rrs/models.py b/rrs/models.py index cb1b67bd1d..9ed74a1dca 100644 --- a/rrs/models.py +++ b/rrs/models.py @@ -38,14 +38,39 @@ class Release(models.Model): return current_release or Release.objects.filter().order_by('-end_date')[0] def __unicode__(self): - return '%s: %s - %s' % (self.name, self.start_date, self.end_date) + return '%s' % (self.name) class Milestone(models.Model): release = models.ForeignKey(Release) - name = models.CharField(max_length=100, unique=True) + name = models.CharField(max_length=100) start_date = models.DateField() end_date = models.DateField() + class Meta: + unique_together = ('release', 'name',) + + """ Get milestones, filtering don't exist yet and ordering """ + @staticmethod + def get_by_release_name(release_name): + milestones = [] + today = date.today() + + mall = Milestone.objects.get(release__name = release_name, name = 'All') + if mall: + milestones.append(mall) + + mqry = Milestone.objects.filter(release__name = release_name).order_by('-end_date') + for m in mqry: + if m.name == 'All': + continue + + if m.start_date > today: + continue + + milestones.append(m) + + return milestones + """ Get milestone by release and date """ @staticmethod def get_by_release_and_date(release, date): @@ -60,9 +85,18 @@ class Milestone(models.Model): """ Get current milestone """ @staticmethod def get_current(release): - current = date.today() - current_milestone = Milestone.get_by_release_and_date(release, current) - return current_milestone or Milestone.objects.filter().order_by('-end_date')[0] + current_milestone = None + current_date = date.today() + + mqry = Milestone.objects.filter(release = release, start_date__lte = current_date, + end_date__gte = current_date).exclude(name = 'All').order_by('-end_date') + if mqry: + current_milestone = mqry[0] + else: + current_milestone = Milestone.objects.filter(release = release). \ + order_by('-end_date')[0] + + return current_milestone """ Get milestone intervals by release """ @staticmethod @@ -102,7 +136,7 @@ class Milestone(models.Model): return weeks def __unicode__(self): - return '%s: %s - %s' % (self.name, self.start_date, self.end_date) + return '%s%s' % (self.release.name, self.name) class Maintainer(models.Model): name = models.CharField(max_length=255, unique=True) |