"""Admin configuration for the operations app.""" from django.contrib import admin from apps.operations.models import ( AdminAction, AuditLog, BackgroundJob, ConfigVersion, DeploymentEvent, DistributedLock, IdempotencyKey, JobLock, KeyRotationLog, Notification, SigningKey, SystemSetting, Webhook, WebhookDelivery, ) class WebhookDeliveryInline(admin.TabularInline): model = WebhookDelivery extra = 0 @admin.register(AuditLog) class AuditLogAdmin(admin.ModelAdmin): list_display = ("action", "actor_user", "target_type", "target_id", "created_at") list_filter = ("action",) readonly_fields = ("created_at",) @admin.register(AdminAction) class AdminActionAdmin(admin.ModelAdmin): list_display = ("admin_user", "action", "created_at") @admin.register(SystemSetting) class SystemSettingAdmin(admin.ModelAdmin): list_display = ("key", "value", "updated_at") @admin.register(BackgroundJob) class BackgroundJobAdmin(admin.ModelAdmin): list_display = ("queue", "status", "attempts", "run_at", "created_at") list_filter = ("status", "queue") @admin.register(JobLock) class JobLockAdmin(admin.ModelAdmin): list_display = ("lock_key", "locked_by", "expires_at") @admin.register(DistributedLock) class DistributedLockAdmin(admin.ModelAdmin): list_display = ("lock_key", "owner_id", "acquired_at", "expires_at") @admin.register(Notification) class NotificationAdmin(admin.ModelAdmin): list_display = ("user", "channel", "status", "sent_at", "created_at") list_filter = ("channel", "status") @admin.register(Webhook) class WebhookAdmin(admin.ModelAdmin): list_display = ("org", "url", "enabled", "created_at") inlines = [WebhookDeliveryInline] @admin.register(WebhookDelivery) class WebhookDeliveryAdmin(admin.ModelAdmin): list_display = ("webhook", "status", "response_code", "attempts", "created_at") @admin.register(IdempotencyKey) class IdempotencyKeyAdmin(admin.ModelAdmin): list_display = ("key", "user", "expires_at") @admin.register(ConfigVersion) class ConfigVersionAdmin(admin.ModelAdmin): list_display = ("version", "checksum", "applied_at") @admin.register(DeploymentEvent) class DeploymentEventAdmin(admin.ModelAdmin): list_display = ("version", "status", "started_at", "finished_at") @admin.register(SigningKey) class SigningKeyAdmin(admin.ModelAdmin): list_display = ("algorithm", "active", "rotated_at") @admin.register(KeyRotationLog) class KeyRotationLogAdmin(admin.ModelAdmin): list_display = ("key", "rotated_by", "rotated_at")