Add a kind of trashbin for registrations and participants
All checks were successful
buildbot/tox Build done.

This commit is contained in:
2020-12-03 11:47:41 +01:00
parent f2f0df3ab3
commit 94595f4785
13 changed files with 484 additions and 93 deletions

View File

@@ -114,7 +114,9 @@
</div>
</div>
</div>
<hr />
<h4>{% trans 'Teilnehmer' %}</h4>
<div class="panel-group" id="form-accordion-participants" role="tablist" aria-multiselectable="true">
{% if registrations_support %}
@@ -131,22 +133,11 @@
<div id="collapseRegistrations" class="panel-collapse collapse"
role="tabpanel" aria-labelledby="headingRegistrations">
<div class="panel-body">
{% for registration in registrations_all %}
{% for registration in registrations_pending %}
<form action="" method="post" class="form-inline">
{% csrf_token %}
<input type="hidden" name="registration" value="{{ registration.id }}">
{% if registration.answered %}
<button disabled="disabled"
class="btn btn-link no-padding" title="Anmeldung wurde bereits bearbeitet">
<span class="text-muted">{% bootstrap_icon 'plus-sign' %}</span>
</button>
&nbsp;
<button disabled="disabled"
class="btn btn-link no-padding" title="Anmeldung wurde bereits bearbeitet">
<span class="text-muted">{% bootstrap_icon 'minus-sign' %}</span>
</button>
&nbsp;
{% elif has_permission_update_participants %}
{% if has_permission_update_participants %}
<button type="submit" name="action" value="accept_registration"
class="btn btn-link no-padding" title="zur Teilnehmerliste hinzufügen">
<span class="text-success">{% bootstrap_icon 'plus-sign' %}</span>
@@ -158,9 +149,6 @@
</button>
&nbsp;
{% endif %}
{% if registration.answered %}
<s class="text-muted">
{% endif %}
{{ registration.get_full_name }}
(<a href="mailto:{{ registration.email_address }}">{{ registration.email_address }}</a>,
{{ registration.phone_number }})
@@ -173,10 +161,6 @@
<span title="{{ registration.get_info }}">
{% bootstrap_icon 'info-sign' %}
</span>
&nbsp;
{% if registration.answered %}
</s>
{% endif %}
</form>
{% empty %}
{% trans 'Keine Anmeldungen vorhanden' %}
@@ -207,6 +191,12 @@
{% else %}
{% trans 'Nicht Mitglied' %}
{% endif %}
&nbsp;
<span class="text-info"
title="{{ participant.get_info }}
{% trans 'Zeitpunkt der automatischen Löschung' %}: {{ participant.purge_at|date:'d. F Y' }}">
{% bootstrap_icon 'info-sign' %}
</span>
<div class="pull-right">
<form action="" method="post" class="form-inline">
{% csrf_token %}
@@ -222,31 +212,33 @@
class="btn btn-link no-padding {% if forloop.last %}invisible{% endif %}">
<span class="text-info">{% bootstrap_icon 'triangle-bottom' %}</span>
</button>
<button name="action" value="remove_participant"
title="{% trans 'Teilnehmer jetzt löschen' %}
({% trans 'erfolgt automatisch am' %} {{ participant.purge_at|date:'d. F Y' }})"
<button name="action" value="trash_participant"
title="{% trans 'Eintrag in Papierkorb verschieben' %}"
class="btn btn-link no-padding">
<span class="text-danger">{% bootstrap_icon 'remove-circle' %}</span>
<span class="text-danger">{% bootstrap_icon 'trash' %}</span>
</button>
&nbsp;
{% endif %}
{% if event.charge and participant.paid and has_permission_payment %}
&nbsp;
<button name="action" value="revoke_payment"
title="{% trans 'Geldeingang wurde bestätigt' %} - {% trans 'Bestätigung des Geldeingangs zurückziehen' %}"
class="btn btn-link no-padding">
<span class="text-success">{% bootstrap_icon 'piggy-bank' %}</span>
</button>
{% elif event.charge and participant.paid %}
&nbsp;
<span class="text-success" title="{% trans 'Geldeingang bestätigt' %}">
{% bootstrap_icon 'piggy-bank' %}
</span>
{% elif event.charge and has_permission_payment %}
&nbsp;
<button name="action" value="confirm_payment"
title="{% trans 'Geldeingang bestätigen' %}"
class="btn btn-link no-padding">
<span class="text-danger">{% bootstrap_icon 'piggy-bank' %}</span>
</button>
{% elif event.charge %}
&nbsp;
<span class="text-danger" title="{% trans 'Geldeingang unbestätigt' %}">
{% bootstrap_icon 'piggy-bank' %}
</span>
@@ -297,6 +289,110 @@
</div>
{% endif %}
</div>
<hr />
<h4>{% trans 'Papierkorb' %}</h4>
<div class="panel-group" id="form-accordion-trash" role="tablist" aria-multiselectable="true">
{% if registrations_support and registrations_answered %}
<div class="panel panel-info">
<div id="headingAnsweredRegistrations" class="panel-heading" role="tab">
<h5 class="panel-title">
<a role="button" href="#collapseAnsweredRegistrations"
data-toggle="collapse"
aria-expanded="true" aria-controls="collapseAnsweredRegistrations">
<span class="caret"></span>&nbsp;&nbsp;{% trans 'Bearbeitete Anmeldungen' %}
</a>
</h5>
</div>
<div id="collapseAnsweredRegistrations" class="panel-collapse collapse"
role="tabpanel" aria-labelledby="headingAnsweredRegistrations">
<div class="panel-body">
{% for registration in registrations_answered %}
<div>
<button disabled="disabled"
class="btn btn-link no-padding" title="Anmeldung wurde bereits bearbeitet">
<span class="{% if registration.status.accepted %}text-success{% else %}text-muted{% endif %}">{% bootstrap_icon 'plus-sign' %}</span>
</button>
&nbsp;
<button disabled="disabled"
class="btn btn-link no-padding" title="Anmeldung wurde bereits bearbeitet">
<span class="{% if not registration.status.accepted %}text-danger{% else %}text-muted{% endif %}">{% bootstrap_icon 'minus-sign' %}</span>
</button>
&nbsp;
<span class="text-muted">
{{ registration.get_full_name }}
(<a href="mailto:{{ registration.email_address }}">{{ registration.email_address }}</a>,
{{ registration.phone_number }})
&nbsp;
<span title="Anmeldezeitpunkt">
{% bootstrap_icon 'time' %}
{{ registration.created_at|date:'d. F Y, G:i' }}
</span>
&nbsp;
<span title="{{ registration.get_info }}">
{% bootstrap_icon 'info-sign' %}
</span>
</span>
</div>
{% endfor %}
</div>
</div>
</div>
{% endif %}
{% if participants_trash %}
<div class="panel panel-info">
<div id="headingTrashedParticipants" class="panel-heading" role="tab">
<h5 class="panel-title">
<a role="button" href="#collapseTrashedParticipants"
data-toggle="collapse"
aria-expanded="true" aria-controls="collapseTrashedParticipants">
<span class="caret"></span>&nbsp;&nbsp;{% trans 'Gelöschte Teilnehmer' %}
</a>
</h5>
</div>
<div id="collapseTrashedParticipants" class="panel-collapse collapse"
role="tabpanel" aria-labelledby="headingTrashedParticipants">
<div class="panel-body">
{% for participant in participants_trash %}
<div>
<span class="text-muted">
{{ participant.get_full_name }}
(<a href="mailto:{{ participant.email_address }}">{{ participant.email_address }}</a>,
{{ participant.phone_number }})
&nbsp;
{% if participant.dav_member %}
{{ participant.dav_number|default:'Fehler! heinzel Bescheid geben!' }}
{% else %}
{% trans 'Nicht Mitglied' %}
{% endif %}
&nbsp;
<span title="{{ participant.get_info }}
{% trans 'Zeitpunkt der automatischen Löschung' %}: {{ participant.purge_at|date:'d. F Y' }}">
{% bootstrap_icon 'info-sign' %}
</span>
{% if event.charge and participant.paid %}
&nbsp;
<span class="text-success" title="{% trans 'Geldeingang bestätigt' %}">
{% bootstrap_icon 'piggy-bank' %}
</span>
{% elif event.charge %}
&nbsp;
<span class="text-danger" title="{% trans 'Geldeingang unbestätigt' %}">
{% bootstrap_icon 'piggy-bank' %}
</span>
{% endif %}
</span>
</div>
{% endfor %}
</div>
</div>
</div>
{% endif %}
{% if not registrations_answered and not participants_trash %}
<span class="text-muted small">{% trans 'Der Papierkorb ist leer.' %}</span>
{% endif %}
</div>
</div>
</div>
{% endblock page-container-fluid %}