mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 20:59:01 +02:00
rrs: Add application
Add models for store Milestone, Maintainer and Recipe{Maintainer, Upgrade, Upstream, Distro}, add initial data for Milestone and Maintainer, initial migration and admin sites. Add rrs/context_processors.py for return the site_name and application for use in templates. Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
This commit is contained in:
parent
e10eb3c7f5
commit
eae7b91a11
0
rrs/__init__.py
Normal file
0
rrs/__init__.py
Normal file
48
rrs/admin.py
Normal file
48
rrs/admin.py
Normal file
|
@ -0,0 +1,48 @@
|
|||
# rrs-web - admin interface definitions
|
||||
#
|
||||
# Copyright (C) 2014 Intel Corporation
|
||||
#
|
||||
# Licensed under the MIT license, see COPYING.MIT for details
|
||||
|
||||
from django.contrib import admin
|
||||
from django.contrib.admin import DateFieldListFilter
|
||||
|
||||
from rrs.models import Milestone, Maintainer, RecipeMaintainer, RecipeDistro, \
|
||||
RecipeUpgrade, RecipeUpstream
|
||||
|
||||
class MilestoneAdmin(admin.ModelAdmin):
|
||||
search_fields = ['name']
|
||||
model = Milestone
|
||||
|
||||
class MaintainerAdmin(admin.ModelAdmin):
|
||||
search_fields = ['name']
|
||||
model = Maintainer
|
||||
|
||||
class RecipeMaintainerAdmin(admin.ModelAdmin):
|
||||
search_fields = ['recipe__pn']
|
||||
list_filter = ['recipe__layerbranch__layer__name', 'maintainer__name']
|
||||
model = RecipeMaintainer
|
||||
|
||||
class RecipeDistroAdmin(admin.ModelAdmin):
|
||||
search_fields = ['recipe__pn']
|
||||
list_filter = ['recipe__layerbranch__layer__name', 'distro']
|
||||
model = RecipeDistro
|
||||
|
||||
class RecipeUpgradeAdmin(admin.ModelAdmin):
|
||||
search_fields = ['recipe__pn']
|
||||
list_filter = ['recipe__layerbranch__layer__name',
|
||||
('commit_date', DateFieldListFilter), 'maintainer__name']
|
||||
model = RecipeUpgrade
|
||||
|
||||
class RecipeUpstreamAdmin(admin.ModelAdmin):
|
||||
search_fields = ['recipe__pn']
|
||||
list_filter = ['recipe__layerbranch__layer__name', 'status',
|
||||
'type', ('date', DateFieldListFilter)]
|
||||
model = RecipeUpstream
|
||||
|
||||
admin.site.register(Milestone, MilestoneAdmin)
|
||||
admin.site.register(Maintainer, MaintainerAdmin)
|
||||
admin.site.register(RecipeMaintainer, RecipeMaintainerAdmin)
|
||||
admin.site.register(RecipeDistro, RecipeDistroAdmin)
|
||||
admin.site.register(RecipeUpgrade, RecipeUpgradeAdmin)
|
||||
admin.site.register(RecipeUpstream, RecipeUpstreamAdmin)
|
19
rrs/context_processors.py
Normal file
19
rrs/context_processors.py
Normal file
|
@ -0,0 +1,19 @@
|
|||
# rrs-web - custom context processor
|
||||
#
|
||||
# Copyright (C) 2014 Intel Corporation
|
||||
#
|
||||
# Licensed under the MIT license, see COPYING.MIT for details
|
||||
|
||||
import settings
|
||||
from django.contrib.sites.models import Site
|
||||
|
||||
def rrs_context(request):
|
||||
site = Site.objects.get_current()
|
||||
if site and site.name and site.name != 'example.com':
|
||||
site_name = site.name
|
||||
else:
|
||||
site_name = 'Recipe reporting system'
|
||||
return {
|
||||
'site_name': site_name,
|
||||
'application' : settings.APPLICATION
|
||||
}
|
461
rrs/fixtures/initial_data.json
Normal file
461
rrs/fixtures/initial_data.json
Normal file
|
@ -0,0 +1,461 @@
|
|||
[
|
||||
{
|
||||
"pk": 0,
|
||||
"model": "rrs.maintainer",
|
||||
"fields": {
|
||||
"name": "No Maintainer",
|
||||
"email": ""
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"pk": 1,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.0",
|
||||
"end_date": "2011-04-15",
|
||||
"start_date": "2010-06-20"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 2,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.0_M1",
|
||||
"end_date": "2010-11-08",
|
||||
"start_date": "2010-06-20"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 3,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.0_M2",
|
||||
"end_date": "2010-12-24",
|
||||
"start_date": "2010-11-08"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 4,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.0_M3",
|
||||
"end_date": "2011-02-08",
|
||||
"start_date": "2010-12-20"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 5,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.0_M4",
|
||||
"end_date": "2011-04-15",
|
||||
"start_date": "2011-02-07"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 6,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.1",
|
||||
"end_date": "2011-10-06",
|
||||
"start_date": "2011-04-18"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 7,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.1_M1",
|
||||
"end_date": "2011-06-13",
|
||||
"start_date": "2011-04-18"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 8,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.1_M2",
|
||||
"end_date": "2011-07-25",
|
||||
"start_date": "2011-05-30"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 9,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.1_M3",
|
||||
"end_date": "2011-08-15",
|
||||
"start_date": "2011-07-11"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 10,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.1_M4",
|
||||
"end_date": "2011-10-06",
|
||||
"start_date": "2011-08-15"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 11,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.2",
|
||||
"end_date": "2012-04-27",
|
||||
"start_date": "2011-10-31"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 12,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.2_M1",
|
||||
"end_date": "2011-12-23",
|
||||
"start_date": "2011-10-31"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 13,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.2_M2",
|
||||
"end_date": "2012-02-03",
|
||||
"start_date": "2011-12-12"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 14,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.2_M3",
|
||||
"end_date": "2012-03-16",
|
||||
"start_date": "2012-01-23"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 15,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.2_M4",
|
||||
"end_date": "2012-04-27",
|
||||
"start_date": "2012-03-05"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 16,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.3",
|
||||
"end_date": "2012-10-26",
|
||||
"start_date": "2012-05-14"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 17,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.3_M1",
|
||||
"end_date": "2012-06-29",
|
||||
"start_date": "2012-05-14"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 18,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.3_M2",
|
||||
"end_date": "2012-07-27",
|
||||
"start_date": "2012-06-11"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 19,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.3_M3",
|
||||
"end_date": "2012-08-24",
|
||||
"start_date": "2012-07-08"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 20,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.3_M4",
|
||||
"end_date": "2012-09-21",
|
||||
"start_date": "2012-08-06"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 21,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.3_M5",
|
||||
"end_date": "2012-10-26",
|
||||
"start_date": "2012-09-19"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 22,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.4",
|
||||
"end_date": "2013-04-26",
|
||||
"start_date": "2012-10-29"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 23,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.4_M1",
|
||||
"end_date": "2012-12-14",
|
||||
"start_date": "2012-10-29"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 24,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.4_M2",
|
||||
"end_date": "2013-01-11",
|
||||
"start_date": "2012-11-26"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 25,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.4_M3",
|
||||
"end_date": "2013-02-08",
|
||||
"start_date": "2012-12-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 26,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.4_M4",
|
||||
"end_date": "2013-03-08",
|
||||
"start_date": "2013-01-21"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 27,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.4_M5",
|
||||
"end_date": "2013-04-05",
|
||||
"start_date": "2013-02-18"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 28,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.4_M6",
|
||||
"end_date": "2013-04-26",
|
||||
"start_date": "2013-03-18"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 29,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.5",
|
||||
"end_date": "2013-10-18",
|
||||
"start_date": "2013-05-06"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 30,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.5_M1",
|
||||
"end_date": "2013-06-21",
|
||||
"start_date": "2013-05-06"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 31,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.5_M2",
|
||||
"end_date": "2013-07-19",
|
||||
"start_date": "2013-06-03"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 32,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.5_M3",
|
||||
"end_date": "2013-08-16",
|
||||
"start_date": "2013-07-01"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 33,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.5_M4",
|
||||
"end_date": "2013-09-13",
|
||||
"start_date": "2013-07-29"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 34,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.5_M5",
|
||||
"end_date": "2013-10-18",
|
||||
"start_date": "2013-08-26"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 35,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.6",
|
||||
"end_date": "2014-05-25",
|
||||
"start_date": "2013-11-11"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 36,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.6_M1",
|
||||
"end_date": "2013-12-20",
|
||||
"start_date": "2013-11-11"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 37,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.6_M2",
|
||||
"end_date": "2014-01-31",
|
||||
"start_date": "2013-12-09"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 38,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.6_M3",
|
||||
"end_date": "2014-02-28",
|
||||
"start_date": "2014-01-13"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 39,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.6_M4",
|
||||
"end_date": "2014-03-28",
|
||||
"start_date": "2014-02-10"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 40,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.6_M5",
|
||||
"end_date": "2014-05-25",
|
||||
"start_date": "2014-03-25"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 41,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.7",
|
||||
"end_date": "2014-10-31",
|
||||
"start_date": "2014-05-19"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 42,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.7_M1",
|
||||
"end_date": "2014-07-11",
|
||||
"start_date": "2014-05-19"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 43,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.7_M2",
|
||||
"end_date": "2014-08-15",
|
||||
"start_date": "2014-06-30"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 44,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.7_M3",
|
||||
"end_date": "2014-09-19",
|
||||
"start_date": "2014-08-04"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 45,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.7_M4",
|
||||
"end_date": "2014-10-31",
|
||||
"start_date": "2014-09-08"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 46,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.8",
|
||||
"end_date": "2015-04-24",
|
||||
"start_date": "2014-11-03"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 47,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.8_M1",
|
||||
"end_date": "2014-12-19",
|
||||
"start_date": "2014-11-03"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 48,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.8_M2",
|
||||
"end_date": "2015-01-30",
|
||||
"start_date": "2014-12-03"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 49,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.8_M3",
|
||||
"end_date": "2015-03-06",
|
||||
"start_date": "2015-01-14"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 50,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"name": "Release 1.8_M4",
|
||||
"end_date": "2015-04-24",
|
||||
"start_date": "2015-02-19"
|
||||
}
|
||||
}
|
||||
]
|
200
rrs/migrations/0001_initial.py
Normal file
200
rrs/migrations/0001_initial.py
Normal file
|
@ -0,0 +1,200 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from south.utils import datetime_utils as datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Adding model 'Milestone'
|
||||
db.create_table('rrs_milestone', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=100)),
|
||||
('start_date', self.gf('django.db.models.fields.DateField')()),
|
||||
('end_date', self.gf('django.db.models.fields.DateField')()),
|
||||
))
|
||||
db.send_create_signal('rrs', ['Milestone'])
|
||||
|
||||
# Adding model 'Maintainer'
|
||||
db.create_table('rrs_maintainer', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255)),
|
||||
('email', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)),
|
||||
))
|
||||
db.send_create_signal('rrs', ['Maintainer'])
|
||||
|
||||
# Adding model 'RecipeMaintainer'
|
||||
db.create_table('rrs_recipemaintainer', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('recipe', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['layerindex.Recipe'])),
|
||||
('maintainer', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rrs.Maintainer'])),
|
||||
))
|
||||
db.send_create_signal('rrs', ['RecipeMaintainer'])
|
||||
|
||||
# Adding model 'RecipeUpstream'
|
||||
db.create_table('rrs_recipeupstream', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('recipe', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['layerindex.Recipe'])),
|
||||
('version', self.gf('django.db.models.fields.CharField')(max_length=100, blank=True)),
|
||||
('type', self.gf('django.db.models.fields.CharField')(max_length=1, blank=True)),
|
||||
('status', self.gf('django.db.models.fields.CharField')(max_length=1, blank=True)),
|
||||
('no_update_reason', self.gf('django.db.models.fields.CharField')(max_length=255, blank=True)),
|
||||
('date', self.gf('django.db.models.fields.DateTimeField')()),
|
||||
))
|
||||
db.send_create_signal('rrs', ['RecipeUpstream'])
|
||||
|
||||
# Adding model 'RecipeDistro'
|
||||
db.create_table('rrs_recipedistro', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('recipe', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['layerindex.Recipe'])),
|
||||
('distro', self.gf('django.db.models.fields.CharField')(max_length=100, blank=True)),
|
||||
('alias', self.gf('django.db.models.fields.CharField')(max_length=100, blank=True)),
|
||||
))
|
||||
db.send_create_signal('rrs', ['RecipeDistro'])
|
||||
|
||||
# Adding model 'RecipeUpgrade'
|
||||
db.create_table('rrs_recipeupgrade', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('recipe', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['layerindex.Recipe'])),
|
||||
('maintainer', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rrs.Maintainer'], null=True, blank=True)),
|
||||
('sha1', self.gf('django.db.models.fields.CharField')(max_length=40, blank=True)),
|
||||
('title', self.gf('django.db.models.fields.CharField')(max_length=1024, blank=True)),
|
||||
('version', self.gf('django.db.models.fields.CharField')(max_length=100, blank=True)),
|
||||
('author_date', self.gf('django.db.models.fields.DateTimeField')()),
|
||||
('commit_date', self.gf('django.db.models.fields.DateTimeField')()),
|
||||
))
|
||||
db.send_create_signal('rrs', ['RecipeUpgrade'])
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting model 'Milestone'
|
||||
db.delete_table('rrs_milestone')
|
||||
|
||||
# Deleting model 'Maintainer'
|
||||
db.delete_table('rrs_maintainer')
|
||||
|
||||
# Deleting model 'RecipeMaintainer'
|
||||
db.delete_table('rrs_recipemaintainer')
|
||||
|
||||
# Deleting model 'RecipeUpstream'
|
||||
db.delete_table('rrs_recipeupstream')
|
||||
|
||||
# Deleting model 'RecipeDistro'
|
||||
db.delete_table('rrs_recipedistro')
|
||||
|
||||
# Deleting model 'RecipeUpgrade'
|
||||
db.delete_table('rrs_recipeupgrade')
|
||||
|
||||
|
||||
models = {
|
||||
'layerindex.branch': {
|
||||
'Meta': {'object_name': 'Branch'},
|
||||
'bitbake_branch': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}),
|
||||
'short_description': ('django.db.models.fields.CharField', [], {'max_length': '50', 'blank': 'True'}),
|
||||
'sort_priority': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'updated': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now', 'auto_now': 'True', 'blank': 'True'})
|
||||
},
|
||||
'layerindex.layerbranch': {
|
||||
'Meta': {'object_name': 'LayerBranch'},
|
||||
'actual_branch': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
|
||||
'branch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.Branch']"}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'layer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.LayerItem']"}),
|
||||
'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'vcs_last_commit': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'vcs_last_fetch': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
|
||||
'vcs_last_rev': ('django.db.models.fields.CharField', [], {'max_length': '80', 'blank': 'True'}),
|
||||
'vcs_subdir': ('django.db.models.fields.CharField', [], {'max_length': '40', 'blank': 'True'})
|
||||
},
|
||||
'layerindex.layeritem': {
|
||||
'Meta': {'object_name': 'LayerItem'},
|
||||
'classic': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'index_preference': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
|
||||
'layer_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
|
||||
'mailing_list_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '40'}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'default': "'N'", 'max_length': '1'}),
|
||||
'summary': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
|
||||
'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
|
||||
'usage_url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||
'vcs_url': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'vcs_web_file_base_url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||
'vcs_web_tree_base_url': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||
'vcs_web_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'})
|
||||
},
|
||||
'layerindex.recipe': {
|
||||
'Meta': {'object_name': 'Recipe'},
|
||||
'bbclassextend': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||
'bugtracker': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
|
||||
'depends': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'filename': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
|
||||
'filepath': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||
'homepage': ('django.db.models.fields.URLField', [], {'max_length': '200', 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'layerbranch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.LayerBranch']"}),
|
||||
'license': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||
'pn': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||
'provides': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||
'pv': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||
'section': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||
'src_uri': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||
'summary': ('django.db.models.fields.CharField', [], {'max_length': '200', 'blank': 'True'}),
|
||||
'updated': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'})
|
||||
},
|
||||
'rrs.maintainer': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'Maintainer'},
|
||||
'email': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'})
|
||||
},
|
||||
'rrs.milestone': {
|
||||
'Meta': {'object_name': 'Milestone'},
|
||||
'end_date': ('django.db.models.fields.DateField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}),
|
||||
'start_date': ('django.db.models.fields.DateField', [], {})
|
||||
},
|
||||
'rrs.recipedistro': {
|
||||
'Meta': {'object_name': 'RecipeDistro'},
|
||||
'alias': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||
'distro': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'recipe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.Recipe']"})
|
||||
},
|
||||
'rrs.recipemaintainer': {
|
||||
'Meta': {'object_name': 'RecipeMaintainer'},
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rrs.Maintainer']"}),
|
||||
'recipe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.Recipe']"})
|
||||
},
|
||||
'rrs.recipeupgrade': {
|
||||
'Meta': {'object_name': 'RecipeUpgrade'},
|
||||
'author_date': ('django.db.models.fields.DateTimeField', [], {}),
|
||||
'commit_date': ('django.db.models.fields.DateTimeField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'maintainer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rrs.Maintainer']", 'null': 'True', 'blank': 'True'}),
|
||||
'recipe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.Recipe']"}),
|
||||
'sha1': ('django.db.models.fields.CharField', [], {'max_length': '40', 'blank': 'True'}),
|
||||
'title': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'blank': 'True'}),
|
||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'})
|
||||
},
|
||||
'rrs.recipeupstream': {
|
||||
'Meta': {'object_name': 'RecipeUpstream'},
|
||||
'date': ('django.db.models.fields.DateTimeField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'no_update_reason': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
|
||||
'recipe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['layerindex.Recipe']"}),
|
||||
'status': ('django.db.models.fields.CharField', [], {'max_length': '1', 'blank': 'True'}),
|
||||
'type': ('django.db.models.fields.CharField', [], {'max_length': '1', 'blank': 'True'}),
|
||||
'version': ('django.db.models.fields.CharField', [], {'max_length': '100', 'blank': 'True'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['rrs']
|
0
rrs/migrations/__init__.py
Normal file
0
rrs/migrations/__init__.py
Normal file
127
rrs/models.py
Normal file
127
rrs/models.py
Normal file
|
@ -0,0 +1,127 @@
|
|||
# rrs-web - model definitions
|
||||
#
|
||||
# Copyright (C) 2014 Intel Corporation
|
||||
#
|
||||
# Licensed under the MIT license, see COPYING.MIT for details
|
||||
|
||||
import sys
|
||||
import os
|
||||
import os.path
|
||||
sys.path.insert(0, os.path.realpath(os.path.join(os.path.dirname(__file__), '../')))
|
||||
|
||||
from datetime import date
|
||||
|
||||
from django.db import models
|
||||
from layerindex.models import Recipe
|
||||
|
||||
class Milestone(models.Model):
|
||||
name = models.CharField(max_length=100, unique=True)
|
||||
start_date = models.DateField()
|
||||
end_date = models.DateField()
|
||||
|
||||
""" Get current milestone """
|
||||
@staticmethod
|
||||
def get_current():
|
||||
current = date.today()
|
||||
|
||||
milestone_set = Milestone.objects.filter(start_date__lte = current,
|
||||
end_date__gte = current).order_by('-id')
|
||||
|
||||
if milestone_set:
|
||||
return milestone_set[0]
|
||||
else:
|
||||
return Milestone.objects.filter().order_by('-id')[0]
|
||||
|
||||
""" Get month intervals between the start and the end of the milestone """
|
||||
def get_intervals(self):
|
||||
intervals = []
|
||||
previous_date = self.start_date
|
||||
current_date = self.start_date
|
||||
while current_date < self.end_date+timedelta(days=28):
|
||||
current_date += timedelta(days=1)
|
||||
if current_date.month != previous_date.month:
|
||||
interval_start = previous_date.replace(day=1)
|
||||
interval_end = current_date.replace(day=1)
|
||||
interval_end -= timedelta(days=1)
|
||||
intervals.append((interval_start, interval_end))
|
||||
previous_date = current_date
|
||||
return intervals
|
||||
|
||||
def __unicode__(self):
|
||||
return '%s' % (self.name)
|
||||
|
||||
class Maintainer(models.Model):
|
||||
name = models.CharField(max_length=255, unique=True)
|
||||
email = models.CharField(max_length=255, blank=True)
|
||||
|
||||
class Meta:
|
||||
ordering = ["name"]
|
||||
|
||||
def __unicode__(self):
|
||||
return "%s <%s>" % (self.name, self.email)
|
||||
|
||||
class RecipeMaintainer(models.Model):
|
||||
recipe = models.ForeignKey(Recipe)
|
||||
maintainer = models.ForeignKey(Maintainer)
|
||||
|
||||
def __unicode__(self):
|
||||
return "%s: %s <%s>" % (self.recipe.pn, self.maintainer.name,
|
||||
self.maintainer.email)
|
||||
|
||||
class RecipeUpstream(models.Model):
|
||||
RECIPE_UPSTREAM_STATUS_CHOICES = (
|
||||
('N', 'Not updated'),
|
||||
('Y', 'Up-to-date'),
|
||||
('D', 'Downgrade'),
|
||||
('U', 'Unknown'),
|
||||
)
|
||||
|
||||
RECIPE_UPSTREAM_TYPE_CHOICES = (
|
||||
('A', 'Automatic'),
|
||||
('M', 'Manual'),
|
||||
)
|
||||
|
||||
recipe = models.ForeignKey(Recipe)
|
||||
version = models.CharField(max_length=100, blank=True)
|
||||
type = models.CharField(max_length=1, choices=RECIPE_UPSTREAM_TYPE_CHOICES, blank=True)
|
||||
status = models.CharField(max_length=1, choices=RECIPE_UPSTREAM_STATUS_CHOICES, blank=True)
|
||||
no_update_reason = models.CharField(max_length=255, blank=True)
|
||||
date = models.DateTimeField()
|
||||
|
||||
def needs_upgrade(self):
|
||||
if self.status == 'N':
|
||||
return True
|
||||
else:
|
||||
return False
|
||||
|
||||
def __unicode__(self):
|
||||
return '%s: (%s, %s, %s)' % (self.recipe.pn, self.status,
|
||||
self.version, self.date)
|
||||
|
||||
class RecipeDistro(models.Model):
|
||||
recipe = models.ForeignKey(Recipe)
|
||||
distro = models.CharField(max_length=100, blank=True)
|
||||
alias = models.CharField(max_length=100, blank=True)
|
||||
|
||||
def __unicode__(self):
|
||||
return '%s: %s' % (self.recipe.pn, self.distro)
|
||||
|
||||
class RecipeUpgrade(models.Model):
|
||||
recipe = models.ForeignKey(Recipe)
|
||||
maintainer = models.ForeignKey(Maintainer, blank=True, null=True)
|
||||
sha1 = models.CharField(max_length=40, blank=True)
|
||||
title = models.CharField(max_length=1024, blank=True)
|
||||
version = models.CharField(max_length=100, blank=True)
|
||||
author_date = models.DateTimeField()
|
||||
commit_date = models.DateTimeField()
|
||||
|
||||
def short_sha1(self):
|
||||
return self.sha1[0:6]
|
||||
|
||||
def commit_url(self):
|
||||
web_interface_url = self.recipe.layerbranch.layer.vcs_web_url
|
||||
return web_interface_url + "/commit/?id=" + self.sha1
|
||||
|
||||
def __unicode__(self):
|
||||
return '%s: (%s, %s)' % (self.recipe.pn, self.version,
|
||||
self.commit_date)
|
4
rrs/urls.py
Normal file
4
rrs/urls.py
Normal file
|
@ -0,0 +1,4 @@
|
|||
from django.conf.urls import patterns, include, url
|
||||
|
||||
urlpatterns = patterns('',
|
||||
)
|
Loading…
Reference in New Issue
Block a user