import unfold from unfold.admin import ModelAdmin as UnfoldModelAdmin from django.contrib import admin from .models import Homework, HomeworkExerciseItem, HomeworkAssignment, HomeworkAssignmentItem, HomeworkStatus, TrainingHomework, TrainingHomeworkExercise, TrainingHomeworkAssignment class HomeworkExerciseItemInline(admin.TabularInline): model = HomeworkExerciseItem extra = 1 raw_id_fields = ['exercise'] @admin.register(Homework) class HomeworkAdmin(UnfoldModelAdmin): list_display = ['title', 'club', 'due_date', 'is_active', 'exercise_count'] list_filter = ['is_active', 'club'] search_fields = ['title', 'description'] readonly_fields = ['created_at', 'updated_at'] raw_id_fields = ['club'] inlines = [HomeworkExerciseItemInline] def exercise_count(self, obj): return obj.exercise_items.count() exercise_count.short_description = 'Exercises' class HomeworkAssignmentItemInline(admin.TabularInline): model = HomeworkAssignmentItem extra = 0 raw_id_fields = ['exercise'] readonly_fields = ['completion_date'] @admin.register(HomeworkAssignment) class HomeworkAssignmentAdmin(UnfoldModelAdmin): list_display = ['wrestler', 'homework', 'club', 'due_date', 'is_completed_display'] list_filter = ['club'] search_fields = ['wrestler__first_name', 'wrestler__last_name', 'homework__title'] readonly_fields = ['created_at', 'updated_at'] raw_id_fields = ['homework', 'wrestler', 'club'] inlines = [HomeworkAssignmentItemInline] def is_completed_display(self, obj): return obj.is_completed is_completed_display.short_description = 'Completed' is_completed_display.boolean = True @admin.register(HomeworkExerciseItem) class HomeworkExerciseItemAdmin(UnfoldModelAdmin): list_display = ['homework', 'exercise', 'reps', 'time_minutes', 'order'] list_filter = ['homework'] raw_id_fields = ['homework', 'exercise'] @admin.register(HomeworkStatus) class HomeworkStatusAdmin(UnfoldModelAdmin): list_display = ['homework', 'wrestler', 'is_completed', 'completion_date'] list_filter = ['is_completed'] raw_id_fields = ['homework', 'wrestler'] @admin.register(TrainingHomework) class TrainingHomeworkAdmin(UnfoldModelAdmin): list_display = ['id', 'training', 'created_at'] list_select_related = ['training'] @admin.register(TrainingHomeworkAssignment) class TrainingHomeworkAssignmentAdmin(UnfoldModelAdmin): list_display = ['id', 'wrestler', 'training', 'is_completed', 'created_at'] list_filter = ['is_completed', 'created_at'] list_select_related = ['wrestler', 'training']