feat(WP-0014): Aufgaben-Phasenzuordnung und Fertigstellungs-Scores

Aufgabe bekommt ein phase-Feld (1–8). aufgaben_score()-Helper in
core/services.py berechnet abgeschlossen/total/score_pct für jedes
QuerySet. Score-Spalten in Ausschreibungen-Liste, Lose-Liste und
Ausschreibungs-Detail; per-Phase-Scores in der Seitenleisten-Navigation.
Phasenfilter in Aufgaben-Liste. 68 Tests grün.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
tegwick 2026-05-14 01:47:05 +02:00
parent f5950b6cbc
commit e4eb5bc368
14 changed files with 343 additions and 5 deletions

View file

@ -10,6 +10,7 @@
<p class="text-sm text-slate-500 mt-0.5">{{ ausschreibung.ausschreiber }}</p>
</div>
<div class="flex items-center gap-2 shrink-0">
{% with s=aufgaben_score %}{% if s.total %}<span class="text-xs text-slate-500">Aufgaben: {{ s.abgeschlossen }}/{{ s.total }} ({{ s.score_pct }}&nbsp;%)</span>{% endif %}{% endwith %}
{% include "ausschreibungen/partials/status_widget.html" %}
<a href="{% url 'ausschreibungen:bearbeiten' ausschreibung.pk %}" class="btn-ghost text-xs">Bearbeiten</a>
<a href="{% url 'ausschreibungen:archivieren' ausschreibung.pk %}" class="btn-ghost text-xs text-slate-400">Archivieren</a>
@ -60,6 +61,7 @@
{% render_field ausschreibung "ausschreiber" "Ausschreiber" %}
{% render_field ausschreibung "vergabeart" "Vergabeart" %}
{% render_field ausschreibung "rechtsgrundlage" "Rechtsgrundlage" %}
{% render_field ausschreibung "rechtsgrundlage_details" "Rechtsgrundlage Details" %}
{% render_field ausschreibung "vergabenummer" "Vergabenummer" %}
{% render_field ausschreibung "vergabeplattform" "Plattform" %}
{% render_field ausschreibung "branche" "Branche" %}