Implementiert Subunternehmer-Katalog mit Suche/Filter, Zuordnung zu Losen via HTMX-Modal, Dienstleistertyp-CRUD und Präferenz-Badges. Bibliothek: Nachweis-Katalog mit Ablaufwarnung und Versionierung, Referenz-Katalog mit Ausschreibungszuordnung, Leistungsblatt-CRUD, Entscheidungsregel-CRUD mit Aktiv-Toggle. Migration für referenzen M2M auf Ausschreibung. 56 Tests grün. Tests-Discovery auf tests.py-Dateien ausgedehnt. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
67 lines
2.7 KiB
HTML
67 lines
2.7 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}{{ ref.referenztitel }}{% endblock %}
|
|
{% block content %}
|
|
<div class="flex items-start justify-between mb-5">
|
|
<div>
|
|
<h1 class="page-title">{{ ref.referenztitel }}</h1>
|
|
<p class="text-slate-500 text-sm">{{ ref.kunde }}{% if ref.branche %} · {{ ref.branche }}{% endif %}</p>
|
|
</div>
|
|
<div class="flex gap-2">
|
|
{% if ref.whitepaper %}
|
|
<a href="{{ ref.whitepaper.url }}" class="btn-secondary" download>Whitepaper</a>
|
|
{% endif %}
|
|
<a href="{% url 'bibliothek:referenz_bearbeiten' pk=ref.pk %}" class="btn-secondary">Bearbeiten</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="grid grid-cols-3 gap-4">
|
|
<div class="card col-span-2 space-y-4">
|
|
{% if ref.kurzfassung %}
|
|
<div>
|
|
<h3 class="text-sm font-semibold text-slate-700 mb-1">Kurzfassung</h3>
|
|
<p class="text-sm text-slate-700">{{ ref.kurzfassung }}</p>
|
|
</div>
|
|
{% endif %}
|
|
{% if ref.leistungsbeschreibung %}
|
|
<div>
|
|
<h3 class="text-sm font-semibold text-slate-700 mb-1">Leistungsbeschreibung</h3>
|
|
<p class="text-sm text-slate-700">{{ ref.leistungsbeschreibung }}</p>
|
|
</div>
|
|
{% endif %}
|
|
{% if ref.eingesetzte_produkte %}
|
|
<div>
|
|
<h3 class="text-sm font-semibold text-slate-700 mb-1">Eingesetzte Produkte</h3>
|
|
<p class="text-sm text-slate-700">{{ ref.eingesetzte_produkte }}</p>
|
|
</div>
|
|
{% endif %}
|
|
{% if ref.leistungsblaetter.exists %}
|
|
<div>
|
|
<h3 class="text-sm font-semibold text-slate-700 mb-1">Leistungsblätter</h3>
|
|
<div class="flex flex-wrap gap-2">
|
|
{% for lb in ref.leistungsblaetter.all %}
|
|
<span class="badge-gray">{{ lb.produktfunktion }}</span>
|
|
{% endfor %}
|
|
</div>
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<div class="card space-y-2 text-sm">
|
|
<p><span class="text-slate-500">Projektzeitraum:</span> {{ ref.projektzeitraum|default:"—" }}</p>
|
|
<p><span class="text-slate-500">Art:</span> {{ ref.oeffentlich_oder_privat|default:"—" }}</p>
|
|
{% if ref.vertragsvolumen %}
|
|
<p><span class="text-slate-500">Volumen:</span> {{ ref.vertragsvolumen|floatformat:0 }} €</p>
|
|
{% endif %}
|
|
<p><span class="text-slate-500">Freigabe:</span> {{ ref.get_freigabestatus_verwendung_display }}</p>
|
|
{% if not ref.verwendbar_fuer_ausschreibungen %}
|
|
<p class="text-red-600">Nicht für Ausschreibungen verwendbar</p>
|
|
{% endif %}
|
|
{% if ref.einschraenkungen_verwendung %}
|
|
<p class="text-amber-700 text-xs">⚠ {{ ref.einschraenkungen_verwendung }}</p>
|
|
{% endif %}
|
|
{% if ref.ansprechpartner_referenzkunde %}
|
|
<p><span class="text-slate-500">Ansprechpartner:</span> {{ ref.ansprechpartner_referenzkunde }}</p>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|