initial commit

This commit is contained in:
Pirmin Hinderling (fedora)
2026-07-07 13:02:49 +02:00
commit 2c7fb7d030
30 changed files with 1666 additions and 0 deletions
+84
View File
@@ -0,0 +1,84 @@
from django.contrib import admin
from .models import Category, Claim, CounterArgument, EvidenceFile, Source, Tag
class EvidenceFileInline(admin.TabularInline):
model = EvidenceFile
extra = 1
fields = ('title', 'file', 'caption', 'order')
class SourceInline(admin.TabularInline):
model = Source
extra = 1
class CounterArgumentInline(admin.StackedInline):
model = CounterArgument
extra = 1
@admin.register(Tag)
class TagAdmin(admin.ModelAdmin):
list_display = ('name', 'slug')
prepopulated_fields = {'slug': ('name',)}
search_fields = ('name',)
@admin.register(Category)
class CategoryAdmin(admin.ModelAdmin):
list_display = ('name', 'slug', 'claim_count', 'created_at')
prepopulated_fields = {'slug': ('name',)}
search_fields = ('name', 'description')
@admin.display(description='Anzahl Behauptungen')
def claim_count(self, obj):
return obj.claims.count()
@admin.register(Claim)
class ClaimAdmin(admin.ModelAdmin):
list_display = ('title', 'category', 'status', 'evidence_level', 'updated_at')
list_filter = ('category', 'status', 'evidence_level', 'tags')
search_fields = ('title', 'short_answer', 'detailed_explanation')
prepopulated_fields = {'slug': ('title',)}
filter_horizontal = ('tags',)
inlines = [EvidenceFileInline, SourceInline, CounterArgumentInline]
fieldsets = (
(None, {
'fields': ('category', 'title', 'slug', 'status', 'evidence_level', 'tags'),
}),
('Inhalt', {
'fields': ('short_answer', 'detailed_explanation'),
}),
)
@admin.register(EvidenceFile)
class EvidenceFileAdmin(admin.ModelAdmin):
list_display = ('display_title', 'claim', 'file_extension_display', 'order', 'created_at')
list_filter = ('claim__category',)
search_fields = ('title', 'caption', 'claim__title')
@admin.display(description='Typ')
def file_extension_display(self, obj):
return obj.file_extension.upper()
@admin.register(Source)
class SourceAdmin(admin.ModelAdmin):
list_display = ('title', 'organization', 'claim')
list_filter = ('claim__category',)
search_fields = ('title', 'organization', 'description')
@admin.register(CounterArgument)
class CounterArgumentAdmin(admin.ModelAdmin):
list_display = ('argument_preview', 'claim')
list_filter = ('claim__category',)
search_fields = ('argument', 'response')
@admin.display(description='Gegenargument')
def argument_preview(self, obj):
return obj.argument[:80]