@@ -0,0 +1,87 @@
|
||||
from django.contrib import admin
|
||||
|
||||
from .models import (
|
||||
EmailMessageRecord,
|
||||
RawDocument,
|
||||
Source,
|
||||
SourceLease,
|
||||
SourceOriginState,
|
||||
SourcePolicyReview,
|
||||
SourceRobotsCache,
|
||||
SourceRun,
|
||||
)
|
||||
|
||||
|
||||
@admin.register(Source)
|
||||
class SourceAdmin(admin.ModelAdmin):
|
||||
list_display = (
|
||||
"name",
|
||||
"domain",
|
||||
"source_type",
|
||||
"status",
|
||||
"policy",
|
||||
"last_success_at",
|
||||
"failure_count",
|
||||
"next_run_at",
|
||||
)
|
||||
list_filter = ("source_type", "status", "policy", "strict_mode")
|
||||
search_fields = ("name", "domain", "base_url")
|
||||
|
||||
|
||||
@admin.register(SourceRun)
|
||||
class SourceRunAdmin(admin.ModelAdmin):
|
||||
list_display = ("source", "status", "started_at", "finished_at", "extracted_count")
|
||||
list_filter = ("status", "error_category")
|
||||
readonly_fields = [field.name for field in SourceRun._meta.fields]
|
||||
|
||||
|
||||
@admin.register(SourcePolicyReview)
|
||||
class SourcePolicyReviewAdmin(admin.ModelAdmin):
|
||||
list_display = (
|
||||
"source",
|
||||
"decision",
|
||||
"scope",
|
||||
"actor",
|
||||
"expires_at",
|
||||
"created_at",
|
||||
)
|
||||
list_filter = ("decision", "scope", "expires_at")
|
||||
search_fields = ("source__name", "source__domain", "actor__username", "reason")
|
||||
readonly_fields = [field.name for field in SourcePolicyReview._meta.fields]
|
||||
|
||||
|
||||
@admin.register(SourceRobotsCache)
|
||||
class SourceRobotsCacheAdmin(admin.ModelAdmin):
|
||||
list_display = ("origin", "expires_at", "byte_length", "updated_at", "error")
|
||||
list_filter = ("error",)
|
||||
search_fields = ("origin",)
|
||||
readonly_fields = [field.name for field in SourceRobotsCache._meta.fields]
|
||||
|
||||
|
||||
@admin.register(SourceLease)
|
||||
class SourceLeaseAdmin(admin.ModelAdmin):
|
||||
list_display = ("source", "token", "worker_id", "expires_at", "updated_at")
|
||||
search_fields = ("source__name", "source__domain", "worker_id")
|
||||
readonly_fields = [field.name for field in SourceLease._meta.fields]
|
||||
|
||||
|
||||
@admin.register(SourceOriginState)
|
||||
class SourceOriginStateAdmin(admin.ModelAdmin):
|
||||
list_display = ("domain", "next_allowed_at", "updated_at")
|
||||
search_fields = ("domain",)
|
||||
readonly_fields = [field.name for field in SourceOriginState._meta.fields]
|
||||
|
||||
|
||||
@admin.register(RawDocument)
|
||||
class RawDocumentAdmin(admin.ModelAdmin):
|
||||
list_display = ("source", "kind", "http_status", "byte_length", "quarantined", "created_at")
|
||||
list_filter = ("kind", "quarantined", "http_status")
|
||||
search_fields = ("url", "final_url", "content_hash")
|
||||
readonly_fields = [field.name for field in RawDocument._meta.fields]
|
||||
|
||||
|
||||
@admin.register(EmailMessageRecord)
|
||||
class EmailMessageRecordAdmin(admin.ModelAdmin):
|
||||
list_display = ("subject", "sender", "received_at", "processed", "created_at")
|
||||
list_filter = ("processed", "mailbox")
|
||||
search_fields = ("subject", "sender", "message_id")
|
||||
Reference in New Issue
Block a user