ccdb-api/ccdb/projects/admin.py

48 lines
1.6 KiB
Python

from django.contrib import admin
from .models import Project, Grant, GrantReport
class ProjectGrantInline(admin.TabularInline):
model = Grant.projects.through
extra = 1
class ProjectAdmin(admin.ModelAdmin):
list_display = ('name', 'code', 'iacuc_number', 'description',
'sort_order')
list_display_links = ('name',)
search_fields = ('name', 'code', 'iacuc_number', 'description')
list_per_page = 25
fields = ('name', 'code', 'iacuc_number', 'description', 'sort_order')
inlines = [ProjectGrantInline]
class GrantAdmin(admin.ModelAdmin):
list_display = ('title', 'code', 'description', 'sort_order')
list_display_links = ('title',)
search_fields = ('title', 'code', 'description', 'description')
list_per_page = 25
fields = ('title', 'code', 'description', 'projects', 'sort_order')
class GrantReportAdmin(admin.ModelAdmin):
list_display = ('grant_title', 'title', 'report_type', 'description',
'due_date', 'submitted_date', 'attachment', 'sort_order')
list_display_links = ('title',)
search_fields = ('grant__title', 'title', 'report_type', 'description',
'due_date', 'submitted_date', 'attachment')
list_per_page = 25
fields = ('grant', 'title', 'report_type', 'description', 'due_date',
'submitted_date', 'attachment', 'sort_order')
def grant_title(self, obj):
return obj.grant.title
grant_title.admin_order_field = 'grant__title'
grant_title.short_description = 'Grant'
admin.site.register(Project, ProjectAdmin)
admin.site.register(Grant, GrantAdmin)
admin.site.register(GrantReport, GrantReportAdmin)