Faktenkompass: UI-Rebrand, Admin-Assistent und Produktions-Setup.

Modernisiert die öffentliche Oberfläche mit Inter, Dark Mode und Live-Suche, ergänzt KI-gestützte Entwürfe im Admin mit Nachweis-Uploads und dokumentiert Daphne/Nginx für den Serverbetrieb.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
Pirmin Hinderling (fedora)
2026-07-07 15:33:58 +02:00
parent 2c7fb7d030
commit db3558872e
43 changed files with 3014 additions and 208 deletions
@@ -0,0 +1,27 @@
{% if query and not categories %}
<p class="text-muted small mb-3">Keine Kategorien für „{{ query }}".</p>
{% endif %}
<div class="row g-2 g-sm-3">
{% for category in categories %}
<div class="col-6 col-md-4 col-lg-3">
<a href="{{ category.get_absolute_url }}" class="text-decoration-none d-block h-100">
<div class="category-tile h-100 text-center">
<div class="card-body d-flex flex-column align-items-center justify-content-center py-3 py-sm-4">
<div class="category-tile-icon mb-2">
<i class="bi {{ category.icon|default:'bi-book' }}"></i>
</div>
<h2 class="h6 card-title mb-0">{{ category.name }}</h2>
<span class="small text-muted mt-1">{{ category.claim_count }}</span>
</div>
</div>
</a>
</div>
{% empty %}
{% if not query %}
<div class="col-12">
<p class="text-muted text-center py-5 mb-0">Noch keine Kategorien vorhanden.</p>
</div>
{% endif %}
{% endfor %}
</div>
+20
View File
@@ -0,0 +1,20 @@
{% load claims_extras %}
<div class="d-flex flex-column gap-2">
{% for claim in claims %}
<a href="{{ claim.get_absolute_url }}" class="text-decoration-none">
<div class="claim-card">
<div class="card-body">
{% if show_category %}
<div class="mb-1">
<span class="fk-topic">{{ claim.category.name }}</span>
</div>
{% endif %}
<div class="mb-1">{% status_badge claim %}</div>
<span class="claim-title d-block">{{ claim.title }}</span>
</div>
</div>
</a>
{% empty %}
<p class="text-muted text-center py-4 mb-0">{{ empty_message|default:"Keine Behauptungen gefunden." }}</p>
{% endfor %}
</div>
@@ -0,0 +1,4 @@
<span class="fk-evidence">
<i class="bi bi-bar-chart" aria-hidden="true"></i>
Evidenz: {{ claim.get_evidence_level_display }}
</span>
@@ -0,0 +1,12 @@
{% if claims is not None %}
<div class="d-flex justify-content-between align-items-center mb-2">
<span class="small text-muted">{{ result_count }} Ergebnis{% if result_count != 1 %}se{% endif %}</span>
{% if query or category_slug or status %}
<a href="{% url 'claims:search' %}" class="small text-muted text-decoration-none">Zurücksetzen</a>
{% endif %}
</div>
{% include "claims/partials/claim_list.html" with claims=claims show_category=True empty_message="Keine Ergebnisse." %}
{% else %}
<p class="text-muted text-center py-4 mb-0 small">Suchbegriff oder Filter eingeben…</p>
{% endif %}
@@ -0,0 +1,4 @@
<span class="fk-status fk-status--{{ claim.status }}">
<span class="fk-status-dot" aria-hidden="true"></span>
{{ claim.get_status_display }}
</span>