44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
from django.contrib import admin
|
|
from .models import Submission, SubmissionFile
|
|
|
|
|
|
class SubmissionFileInline(admin.TabularInline):
|
|
"""Inline admin for submission files."""
|
|
|
|
model = SubmissionFile
|
|
extra = 0
|
|
readonly_fields = ["uploaded_at", "file_size"]
|
|
|
|
|
|
@admin.register(Submission)
|
|
class SubmissionAdmin(admin.ModelAdmin):
|
|
"""Admin interface for submissions."""
|
|
|
|
list_display = [
|
|
"email",
|
|
"submitted_at",
|
|
"expiration_time",
|
|
"is_expired",
|
|
"file_count",
|
|
]
|
|
list_filter = ["submitted_at", "expiration_time"]
|
|
search_fields = ["email", "description"]
|
|
readonly_fields = ["submitted_at"]
|
|
inlines = [SubmissionFileInline]
|
|
|
|
def file_count(self, obj):
|
|
"""Display the number of files in this submission."""
|
|
return obj.files.count()
|
|
|
|
file_count.short_description = "Files"
|
|
|
|
|
|
@admin.register(SubmissionFile)
|
|
class SubmissionFileAdmin(admin.ModelAdmin):
|
|
"""Admin interface for submission files."""
|
|
|
|
list_display = ["original_filename", "submission", "file_size", "uploaded_at"]
|
|
list_filter = ["uploaded_at"]
|
|
search_fields = ["original_filename", "submission__email"]
|
|
readonly_fields = ["uploaded_at", "file_size"]
|