generated from coulomb/repo-seed
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>
29 lines
1.1 KiB
HTML
29 lines
1.1 KiB
HTML
{% load vergabe_tags %}
|
|
<tr class="hover:bg-slate-50">
|
|
<td class="py-2 pr-4 text-slate-500">{{ los.losnummer }}</td>
|
|
<td class="py-2 pr-4">
|
|
<a href="{% url 'ausschreibungen:lose:detail' ausschreibung.pk los.pk %}"
|
|
class="text-brand-600 hover:underline font-medium">{{ los.lostitel }}</a>
|
|
</td>
|
|
<td class="py-2 pr-4 text-slate-600">{{ los.zustaendiger|default:"—" }}</td>
|
|
<td class="py-2 pr-4 text-slate-600 whitespace-nowrap">
|
|
{% if los.aufgaben_total %}
|
|
{{ los.aufgaben_erledigt }}/{{ los.aufgaben_total }}
|
|
({% widthratio los.aufgaben_erledigt los.aufgaben_total 100 %} %)
|
|
{% else %}—{% endif %}
|
|
</td>
|
|
<td class="py-2 pr-4">
|
|
{% if los.teilnahme is None %}
|
|
<span class="text-slate-400 text-xs">Offen</span>
|
|
{% elif los.teilnahme %}
|
|
<span class="text-green-600 text-xs font-medium">Ja</span>
|
|
{% else %}
|
|
<span class="text-red-600 text-xs font-medium">Nein</span>
|
|
{% endif %}
|
|
</td>
|
|
<td class="py-2 text-right">
|
|
<a href="{% url 'ausschreibungen:lose:bearbeiten' ausschreibung.pk los.pk %}"
|
|
class="btn-ghost text-xs">Bearbeiten</a>
|
|
</td>
|
|
</tr>
|