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
+145
View File
@@ -0,0 +1,145 @@
{% extends "base.html" %}
{% block title %}{{ claim.title }} Faktenkompass{% endblock %}
{% block meta_description %}{{ claim.short_answer|truncatewords:30 }}{% endblock %}
{% block content %}
<nav aria-label="Brotkrumen">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{% url 'claims:home' %}">Themen</a></li>
<li class="breadcrumb-item"><a href="{{ claim.category.get_absolute_url }}">{{ claim.category.name }}</a></li>
<li class="breadcrumb-item active text-truncate" style="max-width: 10rem;">Behauptung</li>
</ol>
</nav>
<article>
<div class="d-flex flex-wrap gap-1 mb-2">
<span class="badge text-bg-{{ claim.get_status_badge_class }}">{{ claim.get_status_display }}</span>
<span class="badge text-bg-light border text-dark">Evidenz: {{ claim.get_evidence_level_display }}</span>
</div>
<h1 class="h5 fw-semibold mb-3">{{ claim.title }}</h1>
<div class="card mb-3 border-start border-3 border-primary">
<div class="card-body py-3">
<p class="small text-muted text-uppercase fw-semibold mb-1">Kurzantwort</p>
<p class="mb-0">{{ claim.short_answer }}</p>
</div>
</div>
{% if claim.evidence_files.all %}
<section class="mb-3">
<p class="small text-muted text-uppercase fw-semibold mb-2">Nachweise</p>
<div class="d-flex flex-column gap-2">
{% for evidence in claim.evidence_files.all %}
{% if evidence.is_image %}
<figure class="card mb-0 evidence-card">
<img src="{{ evidence.file.url }}" alt="{{ evidence.caption|default:evidence.display_title }}"
class="evidence-img w-100" loading="lazy">
{% if evidence.title or evidence.caption %}
<figcaption class="card-body py-2 px-3 small">
{% if evidence.title %}<strong class="d-block">{{ evidence.title }}</strong>{% endif %}
{% if evidence.caption %}<span class="text-muted">{{ evidence.caption }}</span>{% endif %}
</figcaption>
{% endif %}
</figure>
{% elif evidence.is_pdf %}
<a href="{{ evidence.file.url }}" target="_blank" rel="noopener noreferrer" class="text-decoration-none">
<div class="card evidence-card">
<div class="card-body py-2 px-3 d-flex align-items-center gap-3">
<i class="bi bi-file-earmark-pdf text-danger fs-3 flex-shrink-0"></i>
<div class="min-w-0">
<span class="small fw-medium text-dark d-block">{{ evidence.display_title }}</span>
{% if evidence.caption %}<span class="small text-muted">{{ evidence.caption }}</span>{% endif %}
<span class="small text-primary">PDF öffnen</span>
</div>
</div>
</div>
</a>
{% endif %}
{% endfor %}
</div>
</section>
{% endif %}
{% if claim.detailed_explanation %}
<section class="card mb-3">
<div class="card-body py-3">
<p class="small text-muted text-uppercase fw-semibold mb-1">Erklärung</p>
<div class="small">{{ claim.detailed_explanation|linebreaks }}</div>
</div>
</section>
{% endif %}
{% if claim.sources.all %}
<section class="mb-3">
<p class="small text-muted text-uppercase fw-semibold mb-2">Quellen</p>
<div class="d-flex flex-column gap-2">
{% for source in claim.sources.all %}
<div class="card">
<div class="card-body py-2 px-3">
<a href="{{ source.url }}" target="_blank" rel="noopener noreferrer" class="text-decoration-none fw-medium small">
{{ source.title }} <i class="bi bi-box-arrow-up-right"></i>
</a>
<p class="text-muted small mb-0">{{ source.organization }}</p>
{% if source.description %}
<p class="small mb-0 mt-1">{{ source.description }}</p>
{% endif %}
</div>
</div>
{% endfor %}
</div>
</section>
{% endif %}
{% if claim.counter_arguments.all %}
<section class="mb-3">
<p class="small text-muted text-uppercase fw-semibold mb-2">Gegenargumente</p>
<div class="accordion accordion-flush" id="counterArgs">
{% for ca in claim.counter_arguments.all %}
<div class="accordion-item border mb-1 rounded">
<h2 class="accordion-header">
<button class="accordion-button collapsed py-2 small" type="button"
data-bs-toggle="collapse" data-bs-target="#collapse{{ forloop.counter }}">
{{ ca.argument }}
</button>
</h2>
<div id="collapse{{ forloop.counter }}" class="accordion-collapse collapse"
data-bs-parent="#counterArgs">
<div class="accordion-body py-2 small text-muted">
{{ ca.response|linebreaks }}
</div>
</div>
</div>
{% endfor %}
</div>
</section>
{% endif %}
{% if claim.tags.all %}
<div class="d-flex flex-wrap gap-1">
{% for tag in claim.tags.all %}
<span class="badge text-bg-light border text-secondary">#{{ tag.name }}</span>
{% endfor %}
</div>
{% endif %}
</article>
{% if related_claims %}
<aside class="mt-4 pt-3 border-top">
<p class="small text-muted text-uppercase fw-semibold mb-2">Mehr zu {{ claim.category.name }}</p>
<div class="d-flex flex-column gap-2">
{% for related in related_claims %}
<a href="{{ related.get_absolute_url }}" class="text-decoration-none">
<div class="card claim-card">
<div class="card-body py-2 d-flex align-items-start gap-2">
<span class="badge text-bg-{{ related.get_status_badge_class }} flex-shrink-0">{{ related.get_status_display }}</span>
<span class="small text-dark">{{ related.title }}</span>
</div>
</div>
</a>
{% endfor %}
</div>
</aside>
{% endif %}
{% endblock %}