mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 20:59:01 +02:00
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>
This commit is contained in:
parent
8c4d41b87b
commit
a0053f426f
|
@ -7,12 +7,17 @@
|
|||
from django.contrib import admin
|
||||
from django.contrib.admin import DateFieldListFilter
|
||||
|
||||
from rrs.models import Milestone, Maintainer, RecipeMaintainerHistory, \
|
||||
from rrs.models import Release, Milestone, Maintainer, RecipeMaintainerHistory, \
|
||||
RecipeMaintainer, RecipeDistro, RecipeUpgrade, RecipeUpstream, \
|
||||
RecipeUpstreamHistory
|
||||
|
||||
class ReleaseAdmin(admin.ModelAdmin):
|
||||
search_fields = ['name']
|
||||
model = Release
|
||||
|
||||
class MilestoneAdmin(admin.ModelAdmin):
|
||||
search_fields = ['name']
|
||||
list_filter = ['release__name']
|
||||
model = Milestone
|
||||
|
||||
class MaintainerAdmin(admin.ModelAdmin):
|
||||
|
@ -53,6 +58,7 @@ class RecipeUpstreamAdmin(admin.ModelAdmin):
|
|||
'type', ('date', DateFieldListFilter), 'history']
|
||||
model = RecipeUpstream
|
||||
|
||||
admin.site.register(Release, ReleaseAdmin)
|
||||
admin.site.register(Milestone, MilestoneAdmin)
|
||||
admin.site.register(Maintainer, MaintainerAdmin)
|
||||
admin.site.register(RecipeMaintainerHistory, RecipeMaintainerHistoryAdmin)
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
"email": ""
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"pk": 1,
|
||||
"model": "rrs.maintainer",
|
||||
|
@ -17,9 +16,10 @@
|
|||
}
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"pk": 1,
|
||||
"model": "rrs.milestone",
|
||||
"model": "rrs.release",
|
||||
"fields": {
|
||||
"name": "1.0",
|
||||
"end_date": "2011-04-15",
|
||||
|
@ -27,44 +27,60 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"pk": 2,
|
||||
"pk": 41,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 1,
|
||||
"name": "1.0All",
|
||||
"end_date": "2011-04-15",
|
||||
"start_date": "2010-06-20"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 1,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 1,
|
||||
"name": "1.0M1",
|
||||
"end_date": "2010-11-08",
|
||||
"start_date": "2010-06-20"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 3,
|
||||
"pk": 2,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 1,
|
||||
"name": "1.0M2",
|
||||
"end_date": "2010-12-24",
|
||||
"start_date": "2010-11-08"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 4,
|
||||
"pk": 3,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 1,
|
||||
"name": "1.0M3",
|
||||
"end_date": "2011-02-08",
|
||||
"start_date": "2010-12-20"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 5,
|
||||
"pk": 4,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 1,
|
||||
"name": "1.0M4",
|
||||
"end_date": "2011-04-15",
|
||||
"start_date": "2011-02-07"
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"pk": 6,
|
||||
"model": "rrs.milestone",
|
||||
"pk": 2,
|
||||
"model": "rrs.release",
|
||||
"fields": {
|
||||
"name": "1.1",
|
||||
"end_date": "2011-10-06",
|
||||
|
@ -72,44 +88,60 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"pk": 7,
|
||||
"pk": 42,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 2,
|
||||
"name": "1.1All",
|
||||
"end_date": "2011-10-06",
|
||||
"start_date": "2011-04-18"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 5,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 2,
|
||||
"name": "1.1M1",
|
||||
"end_date": "2011-06-13",
|
||||
"start_date": "2011-04-18"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 8,
|
||||
"pk": 6,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 2,
|
||||
"name": "1.1M2",
|
||||
"end_date": "2011-07-25",
|
||||
"start_date": "2011-05-30"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 9,
|
||||
"pk": 7,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 2,
|
||||
"name": "1.1M3",
|
||||
"end_date": "2011-08-15",
|
||||
"start_date": "2011-07-11"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 10,
|
||||
"pk": 8,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 2,
|
||||
"name": "1.1M4",
|
||||
"end_date": "2011-10-06",
|
||||
"start_date": "2011-08-15"
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"pk": 11,
|
||||
"model": "rrs.milestone",
|
||||
"pk": 3,
|
||||
"model": "rrs.release",
|
||||
"fields": {
|
||||
"name": "1.2",
|
||||
"end_date": "2012-04-27",
|
||||
|
@ -117,44 +149,60 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"pk": 12,
|
||||
"pk": 43,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 3,
|
||||
"name": "1.2All",
|
||||
"end_date": "2012-04-27",
|
||||
"start_date": "2011-10-31"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 9,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 3,
|
||||
"name": "1.2M1",
|
||||
"end_date": "2011-12-23",
|
||||
"start_date": "2011-10-31"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 13,
|
||||
"pk": 10,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 3,
|
||||
"name": "1.2M2",
|
||||
"end_date": "2012-02-03",
|
||||
"start_date": "2011-12-12"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 14,
|
||||
"pk": 11,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 3,
|
||||
"name": "1.2M3",
|
||||
"end_date": "2012-03-16",
|
||||
"start_date": "2012-01-23"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 15,
|
||||
"pk": 12,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 3,
|
||||
"name": "1.2M4",
|
||||
"end_date": "2012-04-27",
|
||||
"start_date": "2012-03-05"
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"pk": 16,
|
||||
"model": "rrs.milestone",
|
||||
"pk": 4,
|
||||
"model": "rrs.release",
|
||||
"fields": {
|
||||
"name": "1.3",
|
||||
"end_date": "2012-10-26",
|
||||
|
@ -162,53 +210,70 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"pk": 17,
|
||||
"pk": 44,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 4,
|
||||
"name": "1.3All",
|
||||
"end_date": "2012-10-26",
|
||||
"start_date": "2012-05-14"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 13,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 4,
|
||||
"name": "1.3M1",
|
||||
"end_date": "2012-06-29",
|
||||
"start_date": "2012-05-14"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 18,
|
||||
"pk": 14,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 4,
|
||||
"name": "1.3M2",
|
||||
"end_date": "2012-07-27",
|
||||
"start_date": "2012-06-11"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 19,
|
||||
"pk": 15,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 4,
|
||||
"name": "1.3M3",
|
||||
"end_date": "2012-08-24",
|
||||
"start_date": "2012-07-08"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 20,
|
||||
"pk": 16,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 4,
|
||||
"name": "1.3M4",
|
||||
"end_date": "2012-09-21",
|
||||
"start_date": "2012-08-06"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 21,
|
||||
"pk": 17,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 4,
|
||||
"name": "1.3M5",
|
||||
"end_date": "2012-10-26",
|
||||
"start_date": "2012-09-19"
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"pk": 22,
|
||||
"model": "rrs.milestone",
|
||||
"pk": 5,
|
||||
"model": "rrs.release",
|
||||
"fields": {
|
||||
"name": "1.4",
|
||||
"end_date": "2013-04-26",
|
||||
|
@ -216,62 +281,80 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"pk": 23,
|
||||
"pk": 45,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 5,
|
||||
"name": "1.4All",
|
||||
"end_date": "2013-04-26",
|
||||
"start_date": "2012-10-29"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 18,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 5,
|
||||
"name": "1.4M1",
|
||||
"end_date": "2012-12-14",
|
||||
"start_date": "2012-10-29"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 24,
|
||||
"pk": 19,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 5,
|
||||
"name": "1.4M2",
|
||||
"end_date": "2013-01-11",
|
||||
"start_date": "2012-11-26"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 25,
|
||||
"pk": 20,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 5,
|
||||
"name": "1.4M3",
|
||||
"end_date": "2013-02-08",
|
||||
"start_date": "2012-12-24"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 26,
|
||||
"pk": 21,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 5,
|
||||
"name": "1.4M4",
|
||||
"end_date": "2013-03-08",
|
||||
"start_date": "2013-01-21"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 27,
|
||||
"pk": 22,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 5,
|
||||
"name": "1.4M5",
|
||||
"end_date": "2013-04-05",
|
||||
"start_date": "2013-02-18"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 28,
|
||||
"pk": 23,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 5,
|
||||
"name": "1.4M6",
|
||||
"end_date": "2013-04-26",
|
||||
"start_date": "2013-03-18"
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"pk": 29,
|
||||
"model": "rrs.milestone",
|
||||
"pk": 6,
|
||||
"model": "rrs.release",
|
||||
"fields": {
|
||||
"name": "1.5",
|
||||
"end_date": "2013-10-18",
|
||||
|
@ -279,53 +362,70 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"pk": 30,
|
||||
"pk": 46,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 6,
|
||||
"name": "1.5All",
|
||||
"end_date": "2013-10-18",
|
||||
"start_date": "2013-05-06"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 23,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 6,
|
||||
"name": "1.5M1",
|
||||
"end_date": "2013-06-21",
|
||||
"start_date": "2013-05-06"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 31,
|
||||
"pk": 24,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 6,
|
||||
"name": "1.5M2",
|
||||
"end_date": "2013-07-19",
|
||||
"start_date": "2013-06-03"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 32,
|
||||
"pk": 25,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 6,
|
||||
"name": "1.5M3",
|
||||
"end_date": "2013-08-16",
|
||||
"start_date": "2013-07-01"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 33,
|
||||
"pk": 26,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 6,
|
||||
"name": "1.5M4",
|
||||
"end_date": "2013-09-13",
|
||||
"start_date": "2013-07-29"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 34,
|
||||
"pk": 27,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 6,
|
||||
"name": "1.5M5",
|
||||
"end_date": "2013-10-18",
|
||||
"start_date": "2013-08-26"
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"pk": 35,
|
||||
"model": "rrs.milestone",
|
||||
"pk": 7,
|
||||
"model": "rrs.release",
|
||||
"fields": {
|
||||
"name": "1.6",
|
||||
"end_date": "2014-05-25",
|
||||
|
@ -333,53 +433,70 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"pk": 36,
|
||||
"pk": 47,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 7,
|
||||
"name": "1.6All",
|
||||
"end_date": "2014-05-25",
|
||||
"start_date": "2013-11-11"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 28,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 7,
|
||||
"name": "1.6M1",
|
||||
"end_date": "2013-12-20",
|
||||
"start_date": "2013-11-11"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 37,
|
||||
"pk": 29,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 7,
|
||||
"name": "1.6M2",
|
||||
"end_date": "2014-01-31",
|
||||
"start_date": "2013-12-09"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 38,
|
||||
"pk": 30,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 7,
|
||||
"name": "1.6M3",
|
||||
"end_date": "2014-02-28",
|
||||
"start_date": "2014-01-13"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 39,
|
||||
"pk": 31,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 7,
|
||||
"name": "1.6M4",
|
||||
"end_date": "2014-03-28",
|
||||
"start_date": "2014-02-10"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 40,
|
||||
"pk": 32,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 7,
|
||||
"name": "1.6M5",
|
||||
"end_date": "2014-05-25",
|
||||
"start_date": "2014-03-25"
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"pk": 41,
|
||||
"model": "rrs.milestone",
|
||||
"pk": 8,
|
||||
"model": "rrs.release",
|
||||
"fields": {
|
||||
"name": "1.7",
|
||||
"end_date": "2014-10-31",
|
||||
|
@ -387,44 +504,60 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"pk": 42,
|
||||
"pk": 48,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 8,
|
||||
"name": "1.7All",
|
||||
"end_date": "2014-10-31",
|
||||
"start_date": "2014-05-19"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 33,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 8,
|
||||
"name": "1.7M1",
|
||||
"end_date": "2014-07-11",
|
||||
"start_date": "2014-05-19"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 43,
|
||||
"pk": 34,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 8,
|
||||
"name": "1.7M2",
|
||||
"end_date": "2014-08-15",
|
||||
"start_date": "2014-06-30"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 44,
|
||||
"pk": 35,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 8,
|
||||
"name": "1.7M3",
|
||||
"end_date": "2014-09-19",
|
||||
"start_date": "2014-08-04"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 45,
|
||||
"pk": 36,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 8,
|
||||
"name": "1.7M4",
|
||||
"end_date": "2014-10-31",
|
||||
"start_date": "2014-09-08"
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
{
|
||||
"pk": 46,
|
||||
"model": "rrs.milestone",
|
||||
"pk": 9,
|
||||
"model": "rrs.release",
|
||||
"fields": {
|
||||
"name": "1.8",
|
||||
"end_date": "2015-04-24",
|
||||
|
@ -432,36 +565,50 @@
|
|||
}
|
||||
},
|
||||
{
|
||||
"pk": 47,
|
||||
"pk": 49,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 9,
|
||||
"name": "1.8All",
|
||||
"end_date": "2014-12-19",
|
||||
"start_date": "2014-11-03"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 37,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 9,
|
||||
"name": "1.8M1",
|
||||
"end_date": "2014-12-19",
|
||||
"start_date": "2014-11-03"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 48,
|
||||
"pk": 38,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 9,
|
||||
"name": "1.8M2",
|
||||
"end_date": "2015-01-30",
|
||||
"start_date": "2014-12-03"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 49,
|
||||
"pk": 39,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 9,
|
||||
"name": "1.8M3",
|
||||
"end_date": "2015-03-06",
|
||||
"start_date": "2015-01-14"
|
||||
}
|
||||
},
|
||||
{
|
||||
"pk": 50,
|
||||
"pk": 40,
|
||||
"model": "rrs.milestone",
|
||||
"fields": {
|
||||
"release" : 9,
|
||||
"name": "1.8M4",
|
||||
"end_date": "2015-04-24",
|
||||
"start_date": "2015-02-19"
|
||||
|
|
|
@ -8,9 +8,19 @@ from django.db import models
|
|||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Adding model 'Release'
|
||||
db.create_table('rrs_release', (
|
||||
('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', ['Release'])
|
||||
|
||||
# Adding model 'Milestone'
|
||||
db.create_table('rrs_milestone', (
|
||||
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
|
||||
('release', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rrs.Release'])),
|
||||
('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')()),
|
||||
|
@ -89,6 +99,9 @@ class Migration(SchemaMigration):
|
|||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting model 'Release'
|
||||
db.delete_table('rrs_release')
|
||||
|
||||
# Deleting model 'Milestone'
|
||||
db.delete_table('rrs_milestone')
|
||||
|
||||
|
@ -167,7 +180,7 @@ class Migration(SchemaMigration):
|
|||
'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'}),
|
||||
'provides': ('django.db.models.fields.CharField', [], {'max_length': '2048', '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'}),
|
||||
|
@ -185,6 +198,7 @@ class Migration(SchemaMigration):
|
|||
'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'}),
|
||||
'release': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rrs.Release']"}),
|
||||
'start_date': ('django.db.models.fields.DateField', [], {})
|
||||
},
|
||||
'rrs.recipedistro': {
|
||||
|
@ -236,6 +250,13 @@ class Migration(SchemaMigration):
|
|||
'end_date': ('django.db.models.fields.DateTimeField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'start_date': ('django.db.models.fields.DateTimeField', [], {})
|
||||
},
|
||||
'rrs.release': {
|
||||
'Meta': {'object_name': 'Release'},
|
||||
'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', [], {})
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
||||
""" Get milestone by date """
|
||||
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)
|
||||
|
||||
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]
|
||||
|
|
16
rrs/urls.py
16
rrs/urls.py
|
@ -6,13 +6,21 @@ from django.conf.urls import patterns, url
|
|||
|
||||
from layerindex.views import EditProfileFormView
|
||||
|
||||
from rrs.models import Milestone
|
||||
from rrs.models import Release, Milestone
|
||||
from rrs.views import RecipeListView, RecipeDetailView, MaintainerListView
|
||||
|
||||
urlpatterns = patterns('',
|
||||
url(r'^$', redirect_to, {'url' : reverse_lazy('recipes', args=(Milestone.get_current().name,))},
|
||||
url(r'^$', redirect_to,
|
||||
{'url' :
|
||||
reverse_lazy('recipes',
|
||||
args = (
|
||||
Release.get_current().name,
|
||||
Milestone.get_current(Release.get_current()).name,
|
||||
)
|
||||
)
|
||||
},
|
||||
name='frontpage'),
|
||||
url(r'^recipes/(?P<milestone_name>.*)/$',
|
||||
url(r'^recipes/(?P<release_name>.*)/(?P<milestone_name>.*)/$',
|
||||
RecipeListView.as_view(
|
||||
template_name='rrs/recipes.html'),
|
||||
name='recipes'),
|
||||
|
@ -20,7 +28,7 @@ urlpatterns = patterns('',
|
|||
RecipeDetailView.as_view(
|
||||
template_name='rrs/recipedetail.html'),
|
||||
name='recipedetail'),
|
||||
url(r'^maintainers/(?P<milestone_name>.*)/$',
|
||||
url(r'^maintainers/(?P<release_name>.*)/(?P<milestone_name>.*)/$',
|
||||
MaintainerListView.as_view(
|
||||
template_name='rrs/maintainers.html'),
|
||||
name="maintainers"),
|
||||
|
|
84
rrs/views.py
84
rrs/views.py
|
@ -7,7 +7,7 @@ from django.views.generic import ListView, DetailView
|
|||
from django.core.urlresolvers import resolve
|
||||
|
||||
from layerindex.models import Recipe
|
||||
from rrs.models import Milestone, Maintainer, RecipeMaintainerHistory, \
|
||||
from rrs.models import Release, Milestone, Maintainer, RecipeMaintainerHistory, \
|
||||
RecipeMaintainer, RecipeUpstreamHistory, RecipeUpstream, \
|
||||
RecipeDistro, RecipeUpgrade
|
||||
|
||||
|
@ -49,9 +49,6 @@ def _get_milestone_statistics(milestone, maintainer_name=None):
|
|||
RecipeUpstream.get_recipes_cant_be_updated(recipe_upstream_history).count()
|
||||
milestone_statistics['unknown'] = \
|
||||
RecipeUpstream.get_recipes_unknown(recipe_upstream_history).count()
|
||||
milestone_statistics['percentage'] = "%.0f" % \
|
||||
((float(milestone_statistics['up_to_date']) /
|
||||
float(milestone_statistics['all'])) * 100)
|
||||
else:
|
||||
recipe_maintainer_history = RecipeMaintainerHistory.get_by_end_date(
|
||||
milestone.end_date)
|
||||
|
@ -81,6 +78,9 @@ def _get_milestone_statistics(milestone, maintainer_name=None):
|
|||
else:
|
||||
milestone_statistics['unknown'] += 1
|
||||
|
||||
if milestone_statistics['all'] == 0:
|
||||
milestone_statistics['percentage'] = 0
|
||||
else:
|
||||
milestone_statistics['percentage'] = "%.0f" % \
|
||||
((float(milestone_statistics['up_to_date']) /
|
||||
float(milestone_statistics['all'])) * 100)
|
||||
|
@ -105,8 +105,11 @@ class RecipeListView(ListView):
|
|||
context_object_name = 'recipe_list'
|
||||
|
||||
def get_queryset(self):
|
||||
self.release_name = self.kwargs['release_name']
|
||||
release = get_object_or_404(Release, name=self.release_name)
|
||||
|
||||
self.milestone_name = self.kwargs['milestone_name']
|
||||
milestone = get_object_or_404(Milestone, name=self.milestone_name)
|
||||
milestone = get_object_or_404(Milestone, release = release, name=self.milestone_name)
|
||||
|
||||
if 'upstream_status' in self.request.GET.keys():
|
||||
self.upstream_status = self.request.GET['upstream_status']
|
||||
|
@ -185,8 +188,11 @@ class RecipeListView(ListView):
|
|||
|
||||
context['this_url_name'] = resolve(self.request.path_info).url_name
|
||||
|
||||
context['release_name'] = self.release_name
|
||||
context['all_releases'] = Release.objects.filter().order_by('-end_date')
|
||||
context['milestone_name'] = self.milestone_name
|
||||
context['all_milestones'] = Milestone.objects.filter().order_by('-end_date')
|
||||
context['all_milestones'] = Milestone.objects.filter(release__name =
|
||||
self.release_name).order_by('-end_date')
|
||||
|
||||
context['recipes_percentage'] = self.milestone_statistics['percentage']
|
||||
context['recipes_up_to_date'] = self.milestone_statistics['up_to_date']
|
||||
|
@ -223,6 +229,7 @@ class RecipeListView(ListView):
|
|||
class RecipeUpgradeDetail():
|
||||
title = None
|
||||
version = None
|
||||
release_name = None
|
||||
milestone_name = None
|
||||
date = None
|
||||
maintainer_name = None
|
||||
|
@ -230,10 +237,11 @@ class RecipeUpgradeDetail():
|
|||
commit = None
|
||||
commit_url = None
|
||||
|
||||
def __init__(self, title, version, milestone_name, date,
|
||||
def __init__(self, title, version, release_name, milestone_name, date,
|
||||
maintainer_name, is_recipe_maintainer, commit, commit_url):
|
||||
self.title = title
|
||||
self.version = version
|
||||
self.release_name = release_name
|
||||
self.milestone_name = milestone_name
|
||||
self.date = date
|
||||
self.maintainer_name = maintainer_name
|
||||
|
@ -242,14 +250,19 @@ class RecipeUpgradeDetail():
|
|||
self.commit_url = commit_url
|
||||
|
||||
def _get_recipe_upgrade_detail(recipe_upgrade):
|
||||
milestone = Milestone.get_by_date(recipe_upgrade.commit_date)
|
||||
if milestone is None:
|
||||
milestone_name = ''
|
||||
recipe_maintainer_history = None
|
||||
else:
|
||||
milestone_name = milestone.name
|
||||
recipe_maintainer_history = RecipeMaintainerHistory.get_by_end_date(
|
||||
milestone.end_date)
|
||||
release_name = ''
|
||||
milestone_name = ''
|
||||
recipe_maintainer_history = None
|
||||
|
||||
release = Release.get_by_date(recipe_upgrade.commit_date)
|
||||
if release:
|
||||
release_name = release.name
|
||||
milestone = Milestone.get_by_release_and_date(release,
|
||||
recipe_upgrade.commit_date)
|
||||
if milestone:
|
||||
milestone_name = milestone.name
|
||||
recipe_maintainer_history = RecipeMaintainerHistory.get_by_end_date(
|
||||
milestone.end_date)
|
||||
|
||||
is_recipe_maintainer = False
|
||||
maintainer_name = ''
|
||||
|
@ -267,8 +280,8 @@ def _get_recipe_upgrade_detail(recipe_upgrade):
|
|||
'/commit/?id=' + recipe_upgrade.sha1
|
||||
|
||||
rud = RecipeUpgradeDetail(recipe_upgrade.title, recipe_upgrade.version, \
|
||||
milestone_name, recipe_upgrade.commit_date, maintainer_name, \
|
||||
is_recipe_maintainer, commit, commit_url)
|
||||
release_name, milestone_name, recipe_upgrade.commit_date, \
|
||||
maintainer_name, is_recipe_maintainer, commit, commit_url)
|
||||
|
||||
return rud
|
||||
|
||||
|
@ -279,22 +292,28 @@ class RecipeDetailView(DetailView):
|
|||
context = super(RecipeDetailView, self).get_context_data(**kwargs)
|
||||
recipe = self.get_object()
|
||||
|
||||
milestone = Milestone.get_current()
|
||||
release = Release.get_current()
|
||||
context['release_name'] = release.name
|
||||
milestone = Milestone.get_current(release)
|
||||
context['milestone_name'] = milestone.name
|
||||
|
||||
context['upstream_status'] = ''
|
||||
context['upstream_version'] = ''
|
||||
context['upstream_no_update_reason'] = ''
|
||||
recipe_upstream_history = RecipeUpstreamHistory.get_last_by_date_range(
|
||||
milestone.start_date,
|
||||
milestone.end_date
|
||||
)
|
||||
recipe_upstream = RecipeUpstream.get_by_recipe_and_history(
|
||||
recipe, recipe_upstream_history)
|
||||
if recipe_upstream.status == 'N' and recipe_upstream.no_update_reason:
|
||||
recipe_upstream.status = 'C'
|
||||
context['upstream_status'] = \
|
||||
RecipeUpstream.RECIPE_UPSTREAM_STATUS_CHOICES_DICT[recipe_upstream.status]
|
||||
context['upstream_version'] = recipe_upstream.version
|
||||
context['upstream_no_update_reason'] = recipe_upstream.no_update_reason
|
||||
|
||||
if recipe_upstream_history:
|
||||
recipe_upstream = RecipeUpstream.get_by_recipe_and_history(
|
||||
recipe, recipe_upstream_history)
|
||||
if recipe_upstream:
|
||||
if recipe_upstream.status == 'N' and recipe_upstream.no_update_reason:
|
||||
recipe_upstream.status = 'C'
|
||||
context['upstream_status'] = \
|
||||
RecipeUpstream.RECIPE_UPSTREAM_STATUS_CHOICES_DICT[recipe_upstream.status]
|
||||
context['upstream_version'] = recipe_upstream.version
|
||||
context['upstream_no_update_reason'] = recipe_upstream.no_update_reason
|
||||
|
||||
self.recipe_maintainer_history = RecipeMaintainerHistory.get_last()
|
||||
recipe_maintainer = RecipeMaintainer.objects.filter(recipe = recipe,
|
||||
|
@ -345,8 +364,12 @@ class MaintainerListView(ListView):
|
|||
maintainer_list = []
|
||||
self.maintainer_count = 0
|
||||
|
||||
self.release_name = self.kwargs['release_name']
|
||||
release = get_object_or_404(Release, name=self.release_name)
|
||||
self.milestone_name = self.kwargs['milestone_name']
|
||||
milestone = get_object_or_404(Milestone, name=self.milestone_name)
|
||||
milestone = get_object_or_404(Milestone, release = release,
|
||||
name=self.milestone_name)
|
||||
|
||||
milestone_week_intervals = milestone.get_week_intervals()
|
||||
|
||||
self.milestone_statistics = _get_milestone_statistics(milestone)
|
||||
|
@ -394,8 +417,11 @@ class MaintainerListView(ListView):
|
|||
|
||||
context['this_url_name'] = resolve(self.request.path_info).url_name
|
||||
|
||||
context['release_name'] = self.release_name
|
||||
context['all_releases'] = Release.objects.filter().order_by('-end_date')
|
||||
context['milestone_name'] = self.milestone_name
|
||||
context['all_milestones'] = Milestone.objects.filter().order_by('-id')
|
||||
context['all_milestones'] = Milestone.objects.filter(release__name =
|
||||
self.release_name).order_by('-end_date')
|
||||
|
||||
context['recipes_percentage'] = self.milestone_statistics['percentage']
|
||||
context['recipes_up_to_date'] = self.milestone_statistics['up_to_date']
|
||||
|
|
|
@ -14,6 +14,43 @@
|
|||
{% endcomment %}
|
||||
|
||||
{% block topfunctions %}
|
||||
<ul class="nav">
|
||||
<li class="divider-vertical" style="display; list-item;"/>
|
||||
{% block release_selector %}
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||
Release: <b>{{ release_name }}</b>
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
{% for r in all_releases %}
|
||||
<li><a href="{% url this_url_name r.name r.name|add:"All" %}{{ extra_url_param }}">
|
||||
{% if r.name = release_name %}<b>{% endif %}
|
||||
{{ r.name }}
|
||||
{% if r.name = release_name %}</b>{% endif %}
|
||||
</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endblock %}
|
||||
{% block milestone_selector %}
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||
Milestone: <b>{{ milestone_name }}</b>
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
{% for m in all_milestones %}
|
||||
<li><a href="{% url this_url_name release_name m.name %}{{ extra_url_param }}">
|
||||
{% if m.name = milestone_name %}<b>{% endif %}
|
||||
{{ m.name }}
|
||||
{% if m.name = milestone_name %}</b>{% endif %}
|
||||
</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endblock %}
|
||||
</ul>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
@ -21,24 +58,8 @@
|
|||
|
||||
<div class="navbar">
|
||||
<div class="navbar-inner">
|
||||
<span class="brand">{{ milestone_name }}</span>
|
||||
<ul class="nav">
|
||||
{% block milestone_selector %}
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||
Milestone: <b>{{ milestone_name }}</b>
|
||||
<b class="caret"></b>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
{% for m in all_milestones %}
|
||||
<li><a href="{% url this_url_name m.name %}{{ extra_url_param }}">
|
||||
{% if m.name = milestone_name %}<b>{% endif %}
|
||||
{{ m.name }}
|
||||
{% if m.name = milestone_name %}</b>{% endif %}
|
||||
</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endblock %}
|
||||
<li class="divider-vertical"></li>
|
||||
<li class="lead" id="percentage"><strong>{{ recipes_percentage }}%</strong> done</li>
|
||||
<li class="divider-vertical"></li>
|
||||
|
@ -64,7 +85,7 @@
|
|||
<a href="#">
|
||||
{% else %}
|
||||
<li>
|
||||
<a href="{% url 'recipes' milestone_name %}{{ extra_url_param }}">
|
||||
<a href="{% url 'recipes' release_name milestone_name %}{{ extra_url_param }}">
|
||||
{% endif %}
|
||||
Recipes status</a>
|
||||
</li>
|
||||
|
@ -74,7 +95,7 @@
|
|||
<a href="#">
|
||||
{% else %}
|
||||
<li>
|
||||
<a href="{% url 'maintainers' milestone_name %}">
|
||||
<a href="{% url 'maintainers' release_name milestone_name %}">
|
||||
{% endif %}
|
||||
Maintainer statistics</a>
|
||||
</li>
|
||||
|
|
|
@ -24,8 +24,9 @@
|
|||
<span class="badge" style="margin-top:11px;"></span>
|
||||
</li>
|
||||
</ul>
|
||||
<form class="navbar-form pull-right">
|
||||
<input type="text" class="input-xxlarge pull-right" placeholder="Search maintainers" id="filter">
|
||||
<form id="form-search" class="navbar-form pull-right">
|
||||
<input type="text" class="input-xxlarge" placeholder="Search maintainers" id="filter">
|
||||
<button type="submit" value="Search" class="btn btn-info" id="btn-search">Search</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -33,27 +34,27 @@
|
|||
<div id="no_maintainers_alert" class="alert">
|
||||
No maintainers found <a href="#" id="view-all-maintainers" style="margin-left:10px;">View all maintainers</a>
|
||||
</div>
|
||||
<table class="table table-bordered table-hovere" id="statistics-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="sorted">Maintainer<b class="caret"/></th>
|
||||
<th class="muted">Assigned recipes</th>
|
||||
<th class="muted">Up-to-date</th>
|
||||
<th>Not updated</th>
|
||||
<th class="muted">Can't be updated</th>
|
||||
<th class="muted">Unknown</th>
|
||||
<th>% done</th>
|
||||
<table class="table table-bordered table-hover" id="statistics-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="sorted">Maintainer<b class="caret"/></th>
|
||||
<th class="muted">Assigned recipes</th>
|
||||
<th class="muted">Up-to-date</th>
|
||||
<th>Not updated</th>
|
||||
<th class="muted">Can't be updated</th>
|
||||
<th class="muted">Unknown</th>
|
||||
<th>% done</th>
|
||||
|
||||
{% for w in milestone_weeks %}
|
||||
{% if current_week == forloop.counter0 %}
|
||||
<th class="current-wk">
|
||||
{% else %}
|
||||
<th class="muted">
|
||||
{% endif %}
|
||||
wk{{ w }}
|
||||
</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% for w in milestone_weeks %}
|
||||
{% if current_week == forloop.counter0 %}
|
||||
<th class="current-wk">
|
||||
{% else %}
|
||||
<th class="muted">
|
||||
{% endif %}
|
||||
wk{{ w }}
|
||||
</th>
|
||||
{% endfor %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for ml in maintainer_list %}
|
||||
|
@ -62,27 +63,27 @@
|
|||
{{ ml.name }}
|
||||
</td>
|
||||
<td>
|
||||
<a href="{% url 'recipes' milestone_name %}?maintainer_name={{ ml.name|urlencode }}">
|
||||
<a href="{% url 'recipes' release_name milestone_name %}?maintainer_name={{ ml.name|urlencode }}">
|
||||
{{ ml.recipes_all }}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{% url 'recipes' milestone_name %}?upstream_status={{ "Up-to-date"|urlencode }}&maintainer_name={{ ml.name|urlencode }}">
|
||||
<a href="{% url 'recipes' release_name milestone_name %}?upstream_status={{ "Up-to-date"|urlencode }}&maintainer_name={{ ml.name|urlencode }}">
|
||||
{{ ml.recipes_up_to_date }}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{% url 'recipes' milestone_name %}?upstream_status={{ "Not updated"|urlencode }}&maintainer_name={{ ml.name|urlencode }}">
|
||||
<a href="{% url 'recipes' release_name milestone_name %}?upstream_status={{ "Not updated"|urlencode }}&maintainer_name={{ ml.name|urlencode }}">
|
||||
{{ ml.recipes_not_updated }}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{% url 'recipes' milestone_name %}?upstream_status={{ "Can't be updated"|urlencode }}&maintainer_name={{ ml.name|urlencode }}">
|
||||
<a href="{% url 'recipes' release_name milestone_name %}?upstream_status={{ "Can't be updated"|urlencode }}&maintainer_name={{ ml.name|urlencode }}">
|
||||
{{ ml.recipes_cant_be_updated }}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{% url 'recipes' milestone_name %}?upstream_status={{ "Unknown"|urlencode }}&maintainer_name={{ ml.name|urlencode }}">
|
||||
<a href="{% url 'recipes' release_name milestone_name %}?upstream_status={{ "Unknown"|urlencode }}&maintainer_name={{ ml.name|urlencode }}">
|
||||
{{ ml.recipes_unknown }}
|
||||
</a>
|
||||
</td>
|
||||
|
@ -103,7 +104,6 @@
|
|||
{% endblock %}
|
||||
|
||||
{% block scripts %}
|
||||
{% if maintainer_count > 0 %}
|
||||
<script src="{% static "js/uitablefilter.js" %}"></script>
|
||||
<script src="{% static "js/jquery.tablesorter.js" %}"></script>
|
||||
<script>
|
||||
|
@ -131,6 +131,20 @@ $(document).ready(function() {
|
|||
}
|
||||
}
|
||||
|
||||
$("#form-search").submit(function( event ) {
|
||||
search_text = $("#filter").val()
|
||||
$.uiTableFilter(statisticsTable, search_text);
|
||||
updateMaintainerCount()
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
$("#view-all-maintainers").click(function() {
|
||||
$.uiTableFilter(statisticsTable, '');
|
||||
$("#filter").val('')
|
||||
updateMaintainerCount()
|
||||
});
|
||||
|
||||
{% if maintainer_count > 0 %}
|
||||
$(statisticsTable).tablesorter({
|
||||
sortList: [[0,0]],
|
||||
headers: {
|
||||
|
@ -150,20 +164,9 @@ $(document).ready(function() {
|
|||
14: { sorter: false },
|
||||
}
|
||||
});
|
||||
|
||||
$("#filter").keyup(function() {
|
||||
$.uiTableFilter(statisticsTable, this.value);
|
||||
updateMaintainerCount()
|
||||
});
|
||||
|
||||
$("#view-all-maintainers").click(function() {
|
||||
$.uiTableFilter(statisticsTable, '');
|
||||
$("#filter").val('')
|
||||
updateMaintainerCount()
|
||||
});
|
||||
{% endif %}
|
||||
|
||||
updateMaintainerCount()
|
||||
});
|
||||
</script>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
|
|
@ -45,7 +45,7 @@
|
|||
<li class="lead">Upstream version: <strong>{{ upstream_version }}</strong></li>
|
||||
{% endif %}
|
||||
<li class="divider-vertical"></li>
|
||||
<li class="lead">Maintainer: <strong><a href="{% url recipes milestone_name %}?maintainer_name={{ maintainer_name|urlencode }}">{{ maintainer_name }}</a></strong></li>
|
||||
<li class="lead">Maintainer: <strong><a href="{% url recipes release_name milestone_name %}?maintainer_name={{ maintainer_name|urlencode }}">{{ maintainer_name }}</a></strong></li>
|
||||
<li class="divider-vertical"></li>
|
||||
</ul>
|
||||
</div>
|
||||
|
@ -79,14 +79,14 @@
|
|||
<td>{{ rud.title }}</td>
|
||||
<td>{{ rud.version }}</td>
|
||||
{% if rud.milestone_name %}
|
||||
<td><a href="{% url recipes rud.milestone_name %}">{{ rud.milestone_name }}</a></td>
|
||||
<td><a href="{% url recipes rud.release_name rud.milestone_name %}">{{ rud.milestone_name }}</a></td>
|
||||
{% else %}
|
||||
<td>{{ rud.milestone_name }}</td>
|
||||
{% endif %}
|
||||
<td>{{ rud.date }}</td>
|
||||
|
||||
{% if rud.is_recipe_maintainer %}
|
||||
<td><a href="{% url recipes rud.milestone_name %}?maintainer_name={{ rud.maintainer_name|urlencode }}">{{ rud.maintainer_name }}</a></td>
|
||||
<td><a href="{% url recipes rud.release_name rud.milestone_name %}?maintainer_name={{ rud.maintainer_name|urlencode }}">{{ rud.maintainer_name }}</a></td>
|
||||
{% else %}
|
||||
<td>{{ rud.maintainer_name }}</a></td>
|
||||
{% endif %}
|
||||
|
|
|
@ -212,17 +212,6 @@ $(document).ready(function() {
|
|||
updateMaintainerSelected()
|
||||
}
|
||||
|
||||
$(recipesTable).tablesorter({
|
||||
sortList: [[0,0]],
|
||||
headers: {
|
||||
1: { sorter: false },
|
||||
2: { sorter: false },
|
||||
3: { sorter: false },
|
||||
4: { sorter: false },
|
||||
5: { sorter: false },
|
||||
}
|
||||
});
|
||||
|
||||
$("#form-search").submit(function( event ) {
|
||||
upstreamStatus = 'All'
|
||||
maintainer = 'All'
|
||||
|
@ -253,6 +242,19 @@ $(document).ready(function() {
|
|||
updateRecipeCount()
|
||||
});
|
||||
|
||||
{% if recipe_list_count > 0 %}
|
||||
$(recipesTable).tablesorter({
|
||||
sortList: [[0,0]],
|
||||
headers: {
|
||||
1: { sorter: false },
|
||||
2: { sorter: false },
|
||||
3: { sorter: false },
|
||||
4: { sorter: false },
|
||||
5: { sorter: false },
|
||||
}
|
||||
});
|
||||
{% endif %}
|
||||
|
||||
applyFilters()
|
||||
updateRecipeCount()
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue
Block a user