feat: submissions app + django-storages + whitenoise

This commit is contained in:
2026-05-24 23:37:22 +02:00
parent 3e91ef77b6
commit f2fe87c12b
11 changed files with 387 additions and 0 deletions
+69
View File
@@ -0,0 +1,69 @@
from django.contrib import admin
from .models import Submission, SubmissionFile
class SubmissionFileInline(admin.TabularInline):
model = SubmissionFile
extra = 0
fields = [
"original_filename",
"file_size",
"content_type",
"ocr_processed",
"ocr_error",
"created_at",
]
readonly_fields = [
"file_size",
"content_type",
"ocr_processed",
"ocr_error",
"created_at",
]
def get_queryset(self, request):
return super().get_queryset(request)
@admin.register(Submission)
class SubmissionAdmin(admin.ModelAdmin):
list_display = ["id_short", "user", "notes_preview", "created_at"]
list_filter = ["created_at", "updated_at"]
search_fields = ["id", "user__email", "notes"]
readonly_fields = ["id", "created_at", "updated_at"]
inlines = [SubmissionFileInline]
def get_queryset(self, request):
return super().get_queryset(request).select_related("user")
@admin.display(description="ID")
def id_short(self, obj):
return str(obj.id)[:8]
@admin.display(description="Notes")
def notes_preview(self, obj):
if obj.notes:
return obj.notes[:50] + "..." if len(obj.notes) > 50 else obj.notes
return "-"
@admin.register(SubmissionFile)
class SubmissionFileAdmin(admin.ModelAdmin):
list_display = [
"original_filename",
"submission_id",
"file_size",
"content_type",
"ocr_processed",
"created_at",
]
list_filter = ["content_type", "ocr_processed", "created_at"]
search_fields = ["original_filename", "submission__id"]
readonly_fields = ["file_size", "content_type", "created_at", "updated_at"]
def get_queryset(self, request):
return super().get_queryset(request).select_related("submission")
@admin.display(description="Submission ID")
def submission_id(self, obj):
return str(obj.submission.id)[:8]