from django.contrib import admin
from .models import Student, PortfolioItem, TestAttendance, PerformanceRating, Assignment


@admin.register(Student)
class StudentAdmin(admin.ModelAdmin):
    list_display = ['full_name', 'email', 'phone_number', 'course', 'gender', 'payment_confirmed', 'registered_at']
    list_filter = ['course', 'gender', 'payment_confirmed', 'has_prior_knowledge']
    search_fields = ['full_name', 'email', 'phone_number']
    list_editable = ['payment_confirmed']
    readonly_fields = ['registered_at']


@admin.register(PortfolioItem)
class PortfolioItemAdmin(admin.ModelAdmin):
    list_display = ['title', 'category', 'instructor_name', 'created_at']
    list_filter = ['category']
    search_fields = ['title', 'instructor_name']


@admin.register(TestAttendance)
class TestAttendanceAdmin(admin.ModelAdmin):
    list_display = ['student', 'test_type', 'completed', 'date_completed']
    list_filter = ['test_type', 'completed']
    list_editable = ['completed', 'date_completed']
    search_fields = ['student__full_name']


@admin.register(PerformanceRating)
class PerformanceRatingAdmin(admin.ModelAdmin):
    list_display = ['student', 'score', 'grade', 'updated_at']
    search_fields = ['student__full_name']

    def grade(self, obj):
        return obj.grade


@admin.register(Assignment)
class AssignmentAdmin(admin.ModelAdmin):
    list_display = ['title', 'student', 'submitted_at']
    search_fields = ['title', 'student__full_name']
    list_filter = ['submitted_at']
