ccdb-api/ccdb/locations/admin.py

77 lines
2.9 KiB
Python

from django.contrib import admin
from .models import Region, Site, MunicipalLocation, \
StudyLocation, StorageLocation
class RegionAdmin(admin.ModelAdmin):
list_display = ('name', 'code', 'sort_order')
list_display_links = ('name',)
search_fields = ('name', 'code')
list_per_page = 25
fields = ('name', 'code', 'sort_order')
class SiteAdmin(admin.ModelAdmin):
list_display = ('name', 'code', 'region_name', 'description', 'sort_order')
list_display_links = ('name',)
search_fields = ('name', 'code', 'region__name', 'description')
list_per_page = 25
fields = ('name', 'code', 'region', 'description', 'sort_order')
def region_name(self, obj):
return obj.region.name
region_name.admin_order_field = 'region__name'
region_name.short_description = 'Region'
class MunicipalLocationAdmin(admin.ModelAdmin):
list_display = ('name', 'code', 'municipal_location_type', 'description',
'sort_order')
list_display_links = ('name',)
search_fields = ('name', 'code', 'municipal_location_type', 'description')
list_per_page = 25
fields = ('name', 'code', 'municipal_location_type', 'description',
'sort_order')
class StudyLocationAdmin(admin.ModelAdmin):
list_display = ('name', 'code', 'site_name', 'study_location_type',
'treatment_type', 'ml_name', 'collecting_location',
'description', 'sort_order')
list_display_links = ('name',)
search_fields = ('name', 'code', 'site__name', 'study_location_type',
'treatment_type', 'municipal_location__name',
'collecting_location', 'description')
list_per_page = 25
fields = ('name', 'code', 'site', 'study_location_type', 'treatment_type',
'municipal_location', 'collecting_location', 'description',
'sort_order')
def site_name(self, obj):
return obj.site.name
site_name.admin_order_field = 'site__name'
site_name.short_description = 'Site'
def ml_name(self, obj):
return str(obj.municipal_location) if obj.municipal_location else None
ml_name.admin_order_field = 'municipal_location__name'
ml_name.short_description = 'Municipal Location'
class StorageLocationAdmin(admin.ModelAdmin):
list_display = ('code', 'facility', 'building', 'room', 'freezer',
'temp_c', 'description', 'sort_order')
list_display_links = ('code',)
search_fields = ('code', 'facility', 'building', 'room', 'freezer',
'temp_c', 'description')
list_per_page = 25
fields = ('code', 'facility', 'building', 'room', 'freezer', 'temp_c',
'description', 'sort_order')
admin.site.register(Region, RegionAdmin)
admin.site.register(Site, SiteAdmin)
admin.site.register(MunicipalLocation, MunicipalLocationAdmin)
admin.site.register(StudyLocation, StudyLocationAdmin)
admin.site.register(StorageLocation, StorageLocationAdmin)