from django.contrib import admin from attendance.models import ( AttendanceAnalysisRun, AttendanceAutoSyncSettings, AttendanceRecord, EmployeeWorkSchedule, StandardWorkSchedule, ) @admin.register(AttendanceAnalysisRun) class AttendanceAnalysisRunAdmin(admin.ModelAdmin): list_display = ( "id", "employee", "period_start", "period_end", "status", "triggered_by", "created_at", ) list_filter = ("status", "created_at") search_fields = ("employee__email", "employee__first_name", "employee__last_name") readonly_fields = ("created_at",) @admin.register(AttendanceRecord) class AttendanceRecordAdmin(admin.ModelAdmin): list_display = ( "employee", "date", "is_workday", "arrival_time", "departure_time", "work_hours", "is_late", "is_absent", "is_overtime", "updated_at", ) list_filter = ( "is_workday", "is_late", "is_absent", "is_overtime", "date", ) search_fields = ("employee__email", "employee__first_name", "employee__last_name") readonly_fields = ("updated_at",) @admin.register(EmployeeWorkSchedule) class EmployeeWorkScheduleAdmin(admin.ModelAdmin): list_display = ( "employee", "start_time", "end_time", "expected_hours", "is_active", "updated_at", ) list_filter = ("is_active",) search_fields = ( "employee__last_name", "employee__first_name", "employee__email", ) readonly_fields = ("created_at", "updated_at") @admin.register(StandardWorkSchedule) class StandardWorkScheduleAdmin(admin.ModelAdmin): list_display = ( "start_time", "end_time", "expected_hours", "updated_by", "updated_at", ) readonly_fields = ("created_at", "updated_at") @admin.register(AttendanceAutoSyncSettings) class AttendanceAutoSyncSettingsAdmin(admin.ModelAdmin): list_display = ( "enabled", "frequency_minutes", "lookback_days", "next_run_at", "last_status", "last_success_count", "last_error_count", "updated_at", ) readonly_fields = ( "next_run_at", "last_started_at", "last_finished_at", "last_status", "last_error", "last_success_count", "last_error_count", "updated_at", )