Fixed admin forms for Metric/KnobCatalog models.
This commit is contained in:
parent
ee101d818e
commit
e1a41928f6
|
@ -15,6 +15,7 @@ from .models import (BackupData, DBMSCatalog, KnobCatalog,
|
||||||
PipelineData, PipelineRun, Project,
|
PipelineData, PipelineRun, Project,
|
||||||
Result, Session, Workload, Hardware,
|
Result, Session, Workload, Hardware,
|
||||||
SessionKnob)
|
SessionKnob)
|
||||||
|
from .types import VarType
|
||||||
|
|
||||||
|
|
||||||
class DBMSCatalogAdmin(admin.ModelAdmin):
|
class DBMSCatalogAdmin(admin.ModelAdmin):
|
||||||
|
@ -26,12 +27,30 @@ class KnobCatalogAdmin(admin.ModelAdmin):
|
||||||
list_filter = (('dbms', admin.RelatedOnlyFieldListFilter), 'tunable')
|
list_filter = (('dbms', admin.RelatedOnlyFieldListFilter), 'tunable')
|
||||||
ordering = ('dbms', '-tunable', 'name')
|
ordering = ('dbms', '-tunable', 'name')
|
||||||
|
|
||||||
|
def get_form(self, request, obj=None, **kwargs):
|
||||||
|
exclude = ['category', 'summary', 'description', 'context']
|
||||||
|
if obj:
|
||||||
|
if obj.vartype not in (VarType.INTEGER, VarType.REAL):
|
||||||
|
exclude += ['minval', 'maxval']
|
||||||
|
if obj.vartype != VarType.ENUM:
|
||||||
|
exclude.append('enumvals')
|
||||||
|
kwargs['exclude'] = exclude
|
||||||
|
form = super().get_form(request, obj, **kwargs)
|
||||||
|
for field_name in ('minval', 'maxval', 'enumvals'):
|
||||||
|
if field_name in form.base_fields:
|
||||||
|
form.base_fields[field_name].required = False
|
||||||
|
return form
|
||||||
|
|
||||||
|
|
||||||
class MetricCatalogAdmin(admin.ModelAdmin):
|
class MetricCatalogAdmin(admin.ModelAdmin):
|
||||||
list_display = ('name', 'dbms', 'metric_type')
|
list_display = ('name', 'dbms', 'metric_type')
|
||||||
list_filter = (('dbms', admin.RelatedOnlyFieldListFilter), 'metric_type')
|
list_filter = (('dbms', admin.RelatedOnlyFieldListFilter), 'metric_type')
|
||||||
ordering = ('dbms', 'name')
|
ordering = ('dbms', 'name')
|
||||||
|
|
||||||
|
def get_form(self, request, obj=None, **kwargs):
|
||||||
|
kwargs['exclude'] = ('summary',)
|
||||||
|
return super().get_form(request, obj, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class ProjectAdmin(admin.ModelAdmin):
|
class ProjectAdmin(admin.ModelAdmin):
|
||||||
list_display = ('name', 'user', 'last_update', 'creation_time')
|
list_display = ('name', 'user', 'last_update', 'creation_time')
|
||||||
|
|
Loading…
Reference in New Issue