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>
33 lines
1.4 KiB
HTML
33 lines
1.4 KiB
HTML
<div>
|
|
<div class="mb-3">
|
|
<input type="text" name="q" value="{{ q }}" class="form-input w-full"
|
|
placeholder="Referenz suchen (Titel, Branche)..."
|
|
hx-get="{% url 'bibliothek:referenz_zuordnen' ausschreibung_id=ausschreibung.pk %}"
|
|
hx-target="closest div"
|
|
hx-trigger="input changed delay:300ms"
|
|
hx-include="[name='q']">
|
|
</div>
|
|
|
|
{% if referenzen %}
|
|
<ul class="space-y-1 max-h-80 overflow-y-auto">
|
|
{% for ref in referenzen %}
|
|
<li class="flex items-start justify-between p-2 rounded border border-slate-100 hover:bg-slate-50">
|
|
<div>
|
|
<p class="font-medium text-sm">{{ ref.referenztitel|truncatechars:60 }}</p>
|
|
<p class="text-xs text-slate-500">{{ ref.kunde }} · {{ ref.branche|default:"" }}</p>
|
|
{% if ref.freigabestatus_verwendung == 'eingeschraenkt' %}
|
|
<p class="text-xs text-amber-700">⚠ Eingeschränkte Verwendung: {{ ref.einschraenkungen_verwendung|truncatechars:60 }}</p>
|
|
{% endif %}
|
|
</div>
|
|
<form method="post" action="{% url 'bibliothek:referenz_zuordnen' ausschreibung_id=ausschreibung.pk %}">
|
|
{% csrf_token %}
|
|
<input type="hidden" name="referenz_id" value="{{ ref.pk }}">
|
|
<button type="submit" class="btn-primary btn-sm">Zuordnen</button>
|
|
</form>
|
|
</li>
|
|
{% endfor %}
|
|
</ul>
|
|
{% else %}
|
|
<p class="text-slate-500 text-sm">Keine Referenzen gefunden.</p>
|
|
{% endif %}
|
|
</div>
|