from django.contrib import admin from .models import ( AiAnalysisCache, Application, ApplicationTimelineEvent, Employer, Feedback, FieldProvenance, GeocodeLocationLookup, JobPosting, JobSourceAlias, JobVersion, ScoreRun, ) @admin.register(Employer) class EmployerAdmin(admin.ModelAdmin): list_display = ("name", "domain", "is_direct_employer", "is_recruiter", "confidence") list_filter = ("is_direct_employer", "is_recruiter", "employer_type") search_fields = ("name", "normalized_name", "domain") class JobSourceAliasInline(admin.TabularInline): model = JobSourceAlias extra = 0 readonly_fields = ("source", "canonical_url", "external_id", "extraction_method", "last_seen") @admin.register(JobPosting) class JobPostingAdmin(admin.ModelAdmin): list_display = ("original_title", "employer", "region", "status", "first_seen", "valid_through") list_filter = ("status", "workplace_type", "direct_employer", "recruiter", "language") search_fields = ("original_title", "normalized_title", "employer__name", "description_text") inlines = [JobSourceAliasInline] @admin.register(ScoreRun) class ScoreRunAdmin(admin.ModelAdmin): list_display = ("job", "profile", "score", "confidence", "recommendation", "created_at") list_filter = ("recommendation", "profile") admin.site.register(JobVersion) admin.site.register(FieldProvenance) admin.site.register(Feedback) admin.site.register(Application) admin.site.register(ApplicationTimelineEvent) admin.site.register(AiAnalysisCache) @admin.register(GeocodeLocationLookup) class GeocodeLocationLookupAdmin(admin.ModelAdmin): list_display = ( "query_kind", "query_value", "postal_code", "municipality", "region", "latitude", "longitude", "source_name", "source_version", "confidence", "updated_at", ) list_filter = ("source_name", "source_version", "query_kind") search_fields = ("query_value", "municipality", "postal_code", "source_name", "source_version") readonly_fields = ("created_at", "updated_at")