Enhance Destinataer functionality: inline editing and improved list view
- Add inline edit mode to destinataer detail view with AJAX save/cancel - Fix form validation by aligning select choices with model definitions - Update Destinataer model to make familienzweig and berufsgruppe optional - Fix StiftungsKonto integration in forms and views - Redesign destinataer list view with new column layout: * Vorname, Nachname, E-Mail, Vierteljährlicher Betrag * Letzter Studiennachweis, Unterstützung bestätigt, Aktionen - Improve form styling and user experience - Add proper field validation and error handling - Enhance UI with better badges, icons, and formatting
This commit is contained in:
@@ -88,25 +88,22 @@
|
||||
<thead class="table-light">
|
||||
<tr>
|
||||
<th>
|
||||
<a href="?sort=name&dir={% if sort == 'name' and dir != 'desc' %}desc{% else %}asc{% endif %}{% if search_query %}&search={{ search_query }}{% endif %}{% if familienzweig_filter %}&familienzweig={{ familienzweig_filter }}{% endif %}{% if berufsgruppe_filter %}&berufsgruppe={{ berufsgruppe_filter }}{% endif %}{% if aktiv_filter %}&aktiv={{ aktiv_filter }}{% endif %}">Name</a>
|
||||
<a href="?sort=vorname&dir={% if sort == 'vorname' and dir != 'desc' %}desc{% else %}asc{% endif %}{% if search_query %}&search={{ search_query }}{% endif %}{% if familienzweig_filter %}&familienzweig={{ familienzweig_filter }}{% endif %}{% if berufsgruppe_filter %}&berufsgruppe={{ berufsgruppe_filter }}{% endif %}{% if aktiv_filter %}&aktiv={{ aktiv_filter }}{% endif %}">Vorname</a>
|
||||
</th>
|
||||
<th>
|
||||
<a href="?sort=familienzweig&dir={% if sort == 'familienzweig' and dir != 'desc' %}desc{% else %}asc{% endif %}{% if search_query %}&search={{ search_query }}{% endif %}{% if familienzweig_filter %}&familienzweig={{ familienzweig_filter }}{% endif %}{% if berufsgruppe_filter %}&berufsgruppe={{ berufsgruppe_filter }}{% endif %}{% if aktiv_filter %}&aktiv={{ aktiv_filter }}{% endif %}">Familienzweig</a>
|
||||
</th>
|
||||
<th>
|
||||
<a href="?sort=berufsgruppe&dir={% if sort == 'berufsgruppe' and dir != 'desc' %}desc{% else %}asc{% endif %}{% if search_query %}&search={{ search_query }}{% endif %}{% if familienzweig_filter %}&familienzweig={{ familienzweig_filter }}{% endif %}{% if berufsgruppe_filter %}&berufsgruppe={{ berufsgruppe_filter }}{% endif %}{% if aktiv_filter %}&aktiv={{ aktiv_filter }}{% endif %}">Berufsgruppe</a>
|
||||
</th>
|
||||
<th>
|
||||
<a href="?sort=institution&dir={% if sort == 'institution' and dir != 'desc' %}desc{% else %}asc{% endif %}{% if search_query %}&search={{ search_query }}{% endif %}{% if familienzweig_filter %}&familienzweig={{ familienzweig_filter }}{% endif %}{% if berufsgruppe_filter %}&berufsgruppe={{ berufsgruppe_filter }}{% endif %}{% if aktiv_filter %}&aktiv={{ aktiv_filter }}{% endif %}">Institution</a>
|
||||
<a href="?sort=nachname&dir={% if sort == 'nachname' and dir != 'desc' %}desc{% else %}asc{% endif %}{% if search_query %}&search={{ search_query }}{% endif %}{% if familienzweig_filter %}&familienzweig={{ familienzweig_filter }}{% endif %}{% if berufsgruppe_filter %}&berufsgruppe={{ berufsgruppe_filter }}{% endif %}{% if aktiv_filter %}&aktiv={{ aktiv_filter }}{% endif %}">Nachname</a>
|
||||
</th>
|
||||
<th>
|
||||
<a href="?sort=email&dir={% if sort == 'email' and dir != 'desc' %}desc{% else %}asc{% endif %}{% if search_query %}&search={{ search_query }}{% endif %}{% if familienzweig_filter %}&familienzweig={{ familienzweig_filter }}{% endif %}{% if berufsgruppe_filter %}&berufsgruppe={{ berufsgruppe_filter }}{% endif %}{% if aktiv_filter %}&aktiv={{ aktiv_filter }}{% endif %}">E-Mail</a>
|
||||
</th>
|
||||
<th>
|
||||
<a href="?sort=foerderungen&dir={% if sort == 'foerderungen' and dir != 'desc' %}desc{% else %}asc{% endif %}{% if search_query %}&search={{ search_query }}{% endif %}{% if familienzweig_filter %}&familienzweig={{ familienzweig_filter }}{% endif %}{% if berufsgruppe_filter %}&berufsgruppe={{ berufsgruppe_filter }}{% endif %}{% if aktiv_filter %}&aktiv={{ aktiv_filter }}{% endif %}">Förderungen</a>
|
||||
<a href="?sort=vierteljaehrlicher_betrag&dir={% if sort == 'vierteljaehrlicher_betrag' and dir != 'desc' %}desc{% else %}asc{% endif %}{% if search_query %}&search={{ search_query }}{% endif %}{% if familienzweig_filter %}&familienzweig={{ familienzweig_filter }}{% endif %}{% if berufsgruppe_filter %}&berufsgruppe={{ berufsgruppe_filter }}{% endif %}{% if aktiv_filter %}&aktiv={{ aktiv_filter }}{% endif %}">Vierteljährlicher Betrag</a>
|
||||
</th>
|
||||
<th>
|
||||
<a href="?sort=status&dir={% if sort == 'status' and dir != 'desc' %}desc{% else %}asc{% endif %}{% if search_query %}&search={{ search_query }}{% endif %}{% if familienzweig_filter %}&familienzweig={{ familienzweig_filter }}{% endif %}{% if berufsgruppe_filter %}&berufsgruppe={{ berufsgruppe_filter }}{% endif %}{% if aktiv_filter %}&aktiv={{ aktiv_filter }}{% endif %}">Status</a>
|
||||
<a href="?sort=letzter_studiennachweis&dir={% if sort == 'letzter_studiennachweis' and dir != 'desc' %}desc{% else %}asc{% endif %}{% if search_query %}&search={{ search_query }}{% endif %}{% if familienzweig_filter %}&familienzweig={{ familienzweig_filter }}{% endif %}{% if berufsgruppe_filter %}&berufsgruppe={{ berufsgruppe_filter }}{% endif %}{% if aktiv_filter %}&aktiv={{ aktiv_filter }}{% endif %}">Letzter Studiennachweis</a>
|
||||
</th>
|
||||
<th>
|
||||
<a href="?sort=unterstuetzung_bestaetigt&dir={% if sort == 'unterstuetzung_bestaetigt' and dir != 'desc' %}desc{% else %}asc{% endif %}{% if search_query %}&search={{ search_query }}{% endif %}{% if familienzweig_filter %}&familienzweig={{ familienzweig_filter }}{% endif %}{% if berufsgruppe_filter %}&berufsgruppe={{ berufsgruppe_filter }}{% endif %}{% if aktiv_filter %}&aktiv={{ aktiv_filter }}{% endif %}">Unterstützung bestätigt</a>
|
||||
</th>
|
||||
<th>Aktionen</th>
|
||||
</tr>
|
||||
@@ -115,24 +112,14 @@
|
||||
{% for destinataer in page_obj %}
|
||||
<tr>
|
||||
<td>
|
||||
<strong>{{ destinataer.nachname }}, {{ destinataer.vorname }}</strong>
|
||||
<strong>{{ destinataer.vorname|default:"-" }}</strong>
|
||||
</td>
|
||||
<td>
|
||||
<strong>{{ destinataer.nachname }}</strong>
|
||||
{% if destinataer.geburtsdatum %}
|
||||
<br><small class="text-muted">{{ destinataer.geburtsdatum|date:"d.m.Y" }}</small>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
<span class="badge bg-info">{{ destinataer.get_familienzweig_display }}</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="badge bg-secondary">{{ destinataer.get_berufsgruppe_display }}</span>
|
||||
</td>
|
||||
<td>
|
||||
{% if destinataer.institution %}
|
||||
{{ destinataer.institution }}
|
||||
{% else %}
|
||||
<span class="text-muted">-</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if destinataer.email %}
|
||||
<a href="mailto:{{ destinataer.email }}">{{ destinataer.email }}</a>
|
||||
@@ -141,17 +128,24 @@
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if destinataer.total_foerderungen %}
|
||||
<span class="text-success fw-bold">€{{ destinataer.total_foerderungen|floatformat:2 }}</span>
|
||||
{% if destinataer.vierteljaehrlicher_betrag %}
|
||||
<span class="text-success fw-bold">€{{ destinataer.vierteljaehrlicher_betrag|floatformat:2 }}</span>
|
||||
{% else %}
|
||||
<span class="text-muted">€0.00</span>
|
||||
<span class="text-muted">-</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if destinataer.aktiv %}
|
||||
<span class="badge bg-success">Aktiv</span>
|
||||
{% if destinataer.letzter_studiennachweis %}
|
||||
<span class="badge bg-info">{{ destinataer.letzter_studiennachweis|date:"d.m.Y" }}</span>
|
||||
{% else %}
|
||||
<span class="badge bg-secondary">Inaktiv</span>
|
||||
<span class="text-muted">-</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if destinataer.unterstuetzung_bestaetigt %}
|
||||
<span class="badge bg-success"><i class="fas fa-check me-1"></i>Bestätigt</span>
|
||||
{% else %}
|
||||
<span class="badge bg-warning"><i class="fas fa-clock me-1"></i>Ausstehend</span>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
|
||||
Reference in New Issue
Block a user