from django.contrib import admin from access_core.curation.models import ( AggregateOutcome, ClinicalDocument, CuratedObservationDraft, CurationReviewEvent, DataCurationTask, DocumentAccessEvent, DocumentMetadata, DocumentVersion, PublicReportExport, ReportingView, SourceDocumentRecord, SuppressionRule, ) @admin.register(SourceDocumentRecord) class SourceDocumentRecordAdmin(admin.ModelAdmin): list_display = ["beneficiary", "intake_record", "document_type", "source_system"] list_filter = ["document_type", "source_system"] @admin.register(ClinicalDocument) class ClinicalDocumentAdmin(admin.ModelAdmin): list_display = ["beneficiary", "document_type", "file_name", "upload_date"] list_filter = ["document_type", "is_encrypted"] readonly_fields = ["id", "created_at"] @admin.register(DocumentMetadata) class DocumentMetadataAdmin(admin.ModelAdmin): list_display = ["document", "metadata_key", "metadata_value"] @admin.register(DocumentVersion) class DocumentVersionAdmin(admin.ModelAdmin): list_display = ["document", "version_number", "uploaded_by", "created_at"] @admin.register(DocumentAccessEvent) class DocumentAccessEventAdmin(admin.ModelAdmin): list_display = ["document", "user", "action", "accessed_at"] list_filter = ["action"] @admin.register(DataCurationTask) class DataCurationTaskAdmin(admin.ModelAdmin): list_display = ["assigned_to", "task_type", "status", "assigned_at"] list_filter = ["task_type", "status"] @admin.register(CuratedObservationDraft) class CuratedObservationDraftAdmin(admin.ModelAdmin): list_display = ["beneficiary", "observation_type", "measure_name", "status"] list_filter = ["observation_type", "status"] @admin.register(CurationReviewEvent) class CurationReviewEventAdmin(admin.ModelAdmin): list_display = ["draft", "reviewer", "review_type", "decision", "reviewed_at"] list_filter = ["review_type", "decision"] @admin.register(ReportingView) class ReportingViewAdmin(admin.ModelAdmin): list_display = [ "view_name", "aggregation_level", "is_public_reportable", "is_active", ] @admin.register(AggregateOutcome) class AggregateOutcomeAdmin(admin.ModelAdmin): list_display = [ "clinical_track", "measure_name", "numerator", "denominator", "suppression_required", ] list_filter = ["clinical_track"] @admin.register(SuppressionRule) class SuppressionRuleAdmin(admin.ModelAdmin): list_display = ["rule_name", "min_cell_size", "applies_to", "is_active"] @admin.register(PublicReportExport) class PublicReportExportAdmin(admin.ModelAdmin): list_display = ["report_name", "export_date", "approved_by", "is_published"]