mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-05 13:14:46 +02:00

It's a bit of a pain to have to set the two python environment fields on every record in order to have things set correctly, and it can easily get forgotten, so try to set them automatically by default (assuming reasonable naming). Note that this does introduce an annoying behaviour whereby if you click "Add another Maintenance plan layer branch" and then decide you don't want it, the admin form will insist you fill in the fields unless you clear out the python2/3 environment fields. I'm not sure how to fix that, so I'm leaving it as-is for now. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
118 lines
4.3 KiB
Python
118 lines
4.3 KiB
Python
# rrs-web - admin interface definitions
|
|
#
|
|
# Copyright (C) 2014 Intel Corporation
|
|
#
|
|
# Licensed under the MIT license, see COPYING.MIT for details
|
|
|
|
from django.utils.functional import curry
|
|
|
|
from django.contrib import admin
|
|
from django.contrib.admin import DateFieldListFilter
|
|
from django.forms.models import BaseInlineFormSet
|
|
|
|
from rrs.models import Release, Milestone, Maintainer, RecipeMaintainerHistory, \
|
|
RecipeMaintainer, RecipeDistro, RecipeUpgrade, RecipeUpstream, \
|
|
RecipeUpstreamHistory, MaintenancePlan, MaintenancePlanLayerBranch, \
|
|
RecipeMaintenanceLink
|
|
|
|
class MaintenancePlanLayerBranchFormSet(BaseInlineFormSet):
|
|
def __init__(self, *args, **kwargs):
|
|
from layerindex.models import PythonEnvironment
|
|
initialfields = {}
|
|
py2env = PythonEnvironment.get_default_python2_environment()
|
|
if py2env:
|
|
initialfields['python2_environment'] = py2env.id
|
|
py3env = PythonEnvironment.get_default_python3_environment()
|
|
if py3env:
|
|
initialfields['python3_environment'] = py3env.id
|
|
if initialfields:
|
|
kwargs['initial'] = [initialfields]
|
|
super(MaintenancePlanLayerBranchFormSet, self).__init__(*args, **kwargs)
|
|
|
|
@property
|
|
def empty_form(self):
|
|
from layerindex.models import PythonEnvironment
|
|
form = super(MaintenancePlanLayerBranchFormSet, self).empty_form
|
|
py2env = PythonEnvironment.get_default_python2_environment()
|
|
if py2env:
|
|
form.fields['python2_environment'].initial = py2env
|
|
py3env = PythonEnvironment.get_default_python3_environment()
|
|
if py3env:
|
|
form.fields['python3_environment'].initial = py3env
|
|
return form
|
|
|
|
class MaintenancePlanLayerBranchInline(admin.StackedInline):
|
|
model = MaintenancePlanLayerBranch
|
|
formset = MaintenancePlanLayerBranchFormSet
|
|
readonly_fields = ['upgrade_date', 'upgrade_rev']
|
|
min_num = 1
|
|
extra = 0
|
|
|
|
class MaintenancePlanAdmin(admin.ModelAdmin):
|
|
model = MaintenancePlan
|
|
inlines = [
|
|
MaintenancePlanLayerBranchInline,
|
|
]
|
|
|
|
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):
|
|
search_fields = ['name']
|
|
model = Maintainer
|
|
|
|
class RecipeMaintainerHistoryAdmin(admin.ModelAdmin):
|
|
search_fields = ['title', 'author__name', 'sha1']
|
|
list_filter = ['author__name', ('date', DateFieldListFilter)]
|
|
model = RecipeMaintainerHistory
|
|
|
|
class RecipeMaintainerAdmin(admin.ModelAdmin):
|
|
search_fields = ['recipe__pn']
|
|
list_filter = ['recipe__layerbranch__layer__name', 'history', '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 RecipeUpstreamHistoryAdmin(admin.ModelAdmin):
|
|
list_filter = [
|
|
('start_date', DateFieldListFilter),
|
|
('end_date', DateFieldListFilter)
|
|
]
|
|
model = RecipeUpstreamHistory
|
|
|
|
class RecipeUpstreamAdmin(admin.ModelAdmin):
|
|
search_fields = ['recipe__pn']
|
|
list_filter = ['recipe__layerbranch__layer__name', 'status',
|
|
'type', ('date', DateFieldListFilter), 'history']
|
|
model = RecipeUpstream
|
|
|
|
class RecipeMaintenanceLinkAdmin(admin.ModelAdmin):
|
|
model = RecipeMaintenanceLink
|
|
|
|
admin.site.register(MaintenancePlan, MaintenancePlanAdmin)
|
|
admin.site.register(Release, ReleaseAdmin)
|
|
admin.site.register(Milestone, MilestoneAdmin)
|
|
admin.site.register(Maintainer, MaintainerAdmin)
|
|
admin.site.register(RecipeMaintainerHistory, RecipeMaintainerHistoryAdmin)
|
|
admin.site.register(RecipeMaintainer, RecipeMaintainerAdmin)
|
|
admin.site.register(RecipeDistro, RecipeDistroAdmin)
|
|
admin.site.register(RecipeUpgrade, RecipeUpgradeAdmin)
|
|
admin.site.register(RecipeUpstreamHistory, RecipeUpstreamHistoryAdmin)
|
|
admin.site.register(RecipeUpstream, RecipeUpstreamAdmin)
|
|
admin.site.register(RecipeMaintenanceLink, RecipeMaintenanceLinkAdmin)
|