diff options
author | Aníbal Limón <anibal.limon@linux.intel.com> | 2015-02-16 16:51:11 -0600 |
---|---|---|
committer | Paul Eggleton <paul.eggleton@linux.intel.com> | 2018-05-04 23:57:51 +1200 |
commit | 73a90437c32fa0095d592bc760325296f7482cce (patch) | |
tree | d565c8d897528a2fa882ee6778fd752919a63293 /rrs/models.py | |
parent | c0a62bf06f71c9c0e8cb6306908eaf65e6556746 (diff) | |
download | openembedded-core-contrib-73a90437c32fa0095d592bc760325296f7482cce.tar.gz |
rrs: Add support for Release
Now Recipes and Maintainers page can be access by Release and Milestone,
to support this a url namespace was add also update views/templates
handle new URL's.
rrs/models.py: Add support model for store Release also foregin key in
Milestone.
rrs/admin.py: Add admin site for Release model.
rrs/fixtures/initial_data.json: Add initial data with Release/Milestone
relation.
rrs/{views, urls}.py: Add support for handle Release/Milestone.
templates/rrs: Update to handle new URL's.
Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Diffstat (limited to 'rrs/models.py')
-rw-r--r-- | rrs/models.py | 56 |
1 files changed, 39 insertions, 17 deletions
diff --git a/rrs/models.py b/rrs/models.py index 343f257489..3eb99c90e4 100644 --- a/rrs/models.py +++ b/rrs/models.py @@ -15,29 +15,55 @@ from django.db import models from django.db.models.query import Q from layerindex.models import Recipe -class Milestone(models.Model): +class Release(models.Model): name = models.CharField(max_length=100, unique=True) start_date = models.DateField() end_date = models.DateField() - """ Get current milestone """ + @staticmethod + def get_by_date(date): + release_qry = Release.objects.filter(start_date__lte = date, + end_date__gte = date).order_by('-end_date') + + if release_qry: + return release_qry[0] + else: + return None + @staticmethod def get_current(): current = date.today() - current_milestone = Milestone.get_by_date(current) - return current_milestone or Milestone.objects.filter().order_by('-id')[0] + current_release = Release.get_by_date(current) + + 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) - """ Get milestone by date """ +class Milestone(models.Model): + release = models.ForeignKey(Release) + name = models.CharField(max_length=100, unique=True) + start_date = models.DateField() + end_date = models.DateField() + + """ Get milestone by release and date """ @staticmethod - def get_by_date(date): - milestone_set = Milestone.objects.filter(start_date__lte = date, - end_date__gte = date).order_by('-id') + def get_by_release_and_date(release, date): + milestone_set = Milestone.objects.filter(release = release, + start_date__lte = date, end_date__gte = date).order_by('-end_date') if milestone_set: return milestone_set[0] else: return None + """ 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] + """ Get week intervals from start and end of Milestone """ def get_week_intervals(self): from datetime import timedelta @@ -60,7 +86,7 @@ class Milestone(models.Model): return weeks def __unicode__(self): - return '%s' % (self.name) + return '%s: %s - %s' % (self.name, self.start_date, self.end_date) class Maintainer(models.Model): name = models.CharField(max_length=255, unique=True) @@ -256,14 +282,10 @@ class RecipeUpgrade(models.Model): commit_date = models.DateTimeField() @staticmethod - def get_by_recipe_and_date(recipe, current_date): - rup_qry = RecipeUpgrade.objects.filter(recipe = recipe, - commit_date__lte = current_date).order_by('commit_date') - - if rup_qry: - return rup_qry[0] - else: - return None + def get_by_recipe_and_date(recipe, end_date): + ru = RecipeUpgrade.objects.filter(recipe = recipe, + commit_date__lte = end_date) + return ru[0] if ru else None def short_sha1(self): return self.sha1[0:6] |