UPD: more cool participant admin stuff.

This commit is contained in:
2019-06-04 15:54:13 +02:00
parent 9104d69dd7
commit 61605a205c
9 changed files with 258 additions and 85 deletions

View File

@@ -219,13 +219,15 @@
</div>
</div>
<hr />
<h4>Teilnehmer (Designstudie - Das funktioniert alles noch nicht!)</h4>
<div class="panel panel-default">
<h4>{% trans 'Teilnehmer' %}</h4>
{% if registrations_support %}
<div class="panel panel-info">
<div id="headingRegistrations" class="panel-heading" role="tab">
<h5 class="panel-title">
<a role="button" href="#collapseRegistrations" data-toggle="collapse" data-parent="#accordion"
<a role="button" href="#collapseRegistrations"
data-toggle="collapse" data-parent="#accordion"
aria-expanded="true" aria-controls="collapseRegistrations">
<span class="caret"></span>&nbsp;&nbsp;Anmeldungen
<span class="caret"></span>&nbsp;&nbsp;{% trans 'Anmeldungen' %}
</a>
</h5>
</div>
@@ -236,17 +238,19 @@
<form action="" method="post" class="form-inline">
{% csrf_token %}
<input type="hidden" name="registration" value="{{ registration.id }}">
{% if registration.answered %}
<span class="text-muted disabled">
{% endif %}
<button type="submit" name="action" value="accept_registration"
class="btn btn-link" title="Teilnehmer hinzufügen">
class="btn btn-link no-padding" title="Teilnehmer hinzufügen">
<span class="text-success">{% bootstrap_icon 'plus-sign' %}</span>
</button>
&nbsp;
<button type="submit" name="action" value="reject_registration"
class="btn btn-link" title="Anmeldung löschen">
class="btn btn-link no-padding" title="Anmeldung löschen">
<span class="text-danger">{% bootstrap_icon 'minus-sign' %}</span>
</button>
&nbsp;
{% if registration.answered %}
<span class="text-muted">
{% endif %}
{{ registration.get_full_name }}
(<a href="mailto:{{ registration.email_address }}">{{ registration.email_address }}</a>,
{{ registration.phone_number }})
@@ -264,93 +268,101 @@
{% endif %}
</form>
{% empty %}
Keine unbestätigten Anmeldungen vorhanden
{% trans 'Keine unbestätigten Anmeldungen vorhanden' %}
{% endfor %}
</div>
</div>
</div>
<div class="panel panel-default">
{% endif %}
<div class="panel panel-info">
<div id="headingAddParticipant" class="panel-heading" role="tab">
<h5 class="panel-title">
<a role="button" href="#collapseAddParticipant" data-toggle="collapse" data-parent="#accordion"
<a role="button" href="#collapseAddParticipant"
data-toggle="collapse" data-parent="#accordion"
aria-expanded="true" aria-controls="collapseAddParticipant">
<span class="caret"></span>&nbsp;&nbsp;weiteren Teilnehmer eintragen
<span class="caret"></span>&nbsp;&nbsp;{% trans 'weiteren Teilnehmer eintragen' %}
</a>
</h5>
</div>
<div id="collapseAddParticipant" class="panel-collapse collapse {% if create_participant_form.errors %}in{% endif %}"
<div id="collapseAddParticipant"
class="panel-collapse collapse {% if create_participant_form.errors %}in{% endif %}"
role="tabpanel" aria-labelledby="headingAddParticipant">
<div class="panel-body">
{% bootstrap_form_errors create_participant_form %}
<form action="" method="post">
{% csrf_token %}
<div class="row">
<div class="col-sm-6">
{% bootstrap_field create_participant_form.personal_names %}
</div>
<div class="col-sm-6">
{% bootstrap_field create_participant_form.family_names %}
</div>
</div>
<div class="row">
<div class="col-sm-12">
{% bootstrap_field create_participant_form.address %}
</div>
</div>
<div class="row">
<div class="col-sm-4">
{% bootstrap_field create_participant_form.postal_code %}
</div>
<div class="col-sm-8">
{% bootstrap_field create_participant_form.city %}
</div>
</div>
<div class="row">
<div class="col-sm-6">
{% bootstrap_field create_participant_form.email_address %}
</div>
<div class="col-sm-6">
{% bootstrap_field create_participant_form.phone_number %}
</div>
</div>
<div class="row">
<div class="col-sm-6">
{% bootstrap_field create_participant_form.dav_number %}
</div>
<div class="col-sm-6">
{% bootstrap_field create_participant_form.emergency_contact %}
</div>
</div>
<div class="row">
<div class="col-sm-6">
{% bootstrap_field create_participant_form.experience %}
</div>
<div class="col-sm-6">
{% bootstrap_field create_participant_form.note %}
</div>
</div>
<button class="btn btn-success">{% bootstrap_icon 'plus-sign' %} {% trans 'Teilnehmer hinzufügen' %}</button>
{% include './includes/participant_form.html' with form=create_participant_form %}
<button type="submit" name="action" value="create_participant" class="btn btn-success">
{% bootstrap_icon 'plus-sign' %} {% trans 'Teilnehmer hinzufügen' %}
</button>
</form>
</div>
</div>
</div>
{% for participant in participants %}
<div class="panel panel-default">
<div id="headingParticipant_{{ participant.id }}" class="panel-heading" role="tab">
{% for form in participant_formset %}
{% with participant_id=form.instance.id %}
{% with position=form.instance.position %}
<div class="panel {% if event.max_participants and position > event.max_participant %}panel-warning{% else %}panel-default{% endif %}">
<div id="headingParticipant_{{ participant_id }}" class="panel-heading" role="tab">
<h5 class="panel-title">
<a role="button" href="#collapseParticipant_{{ participant.id }}" data-toggle="collapse" data-parent="#accordion"
aria-expanded="true" aria-controls="collapseParticipant_{{ participant.id }}">
<span class="caret"></span>&nbsp;&nbsp;{{ participant.position }}. {{ participant.get_full_name }}
<a role="button" href="#collapseParticipant_{{ participant_id }}"
data-toggle="collapse" data-parent="#accordion"
aria-expanded="true" aria-controls="collapseParticipant_{{ participant_id }}">
<span class="caret"></span>&nbsp;&nbsp;
{{ position }}. {{ form.instance.get_full_name }}
</a>
<div class="pull-right">
<form action="" method="post" class="form-inline">
{% csrf_token %}
<input type="hidden" name="id" value="{{ participant_id }}">
<button name="action" value="moveup_participant"
title="{% trans 'Nach oben verschieben' %}"
class="btn btn-link no-padding {% if forloop.first %}invisible{% endif %}">
<span class="text-info">{% bootstrap_icon 'triangle-top' %}</span>
</button>
<button name="action" value="movedown_participant"
title="{% trans 'Nach unten verschieben' %}"
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 löschen' %}"
class="btn btn-link no-padding">
<span class="text-danger">{% bootstrap_icon 'remove-circle' %}</span>
</button>
&nbsp;
{% if form.instance.paid %}
<span class="text-success" title="Geldeingang bestätigt">
{% bootstrap_icon 'piggy-bank' %}
</span>
{% else %}
<span class="text-danger" title="Geldeingang unbestätigt">
{% bootstrap_icon 'piggy-bank' %}
</span>
{% endif %}
</form>
</div>
</h5>
</div>
<div id="collapseParticipant_{{ participant.id }}" class="panel-collapse collapse"
role="tabpanel" aria-labelledby="headingParticipant_{{ participant.id }}">
<div id="collapseParticipant_{{ participant_id }}"
class="panel-collapse collapse {% if form.errors %}in{% endif %}"
role="tabpanel" aria-labelledby="headingParticipant_{{ participant_id }}">
<div class="panel-body">
Hier tauchen dann die Teilnehmerdaten auf
{% bootstrap_form_errors form %}
<form action="" method="post">
{% csrf_token %}
<input type="hidden" name="form_prefix" value="{{ form.prefix }}">
<input type="hidden" name="{{ form.prefix }}-id" value="{{ participant_id }}">
{% include './includes/participant_form.html' %}
<button type="submit" name="action" value="update_participant" class="btn btn-success">
{% bootstrap_icon 'hdd' %} {% trans 'Speichern' %}
</button>
</form>
</div>
</div>
</div>
{% endwith %}
{% endwith %}
{% endfor %}
</div>
</div>

View File

@@ -0,0 +1,46 @@
{% load bootstrap3 %}
<div class="row">
<div class="col-sm-6">
{% bootstrap_field form.personal_names %}
</div>
<div class="col-sm-6">
{% bootstrap_field form.family_names %}
</div>
</div>
<div class="row">
<div class="col-sm-12">
{% bootstrap_field form.address %}
</div>
</div>
<div class="row">
<div class="col-sm-4">
{% bootstrap_field form.postal_code %}
</div>
<div class="col-sm-8">
{% bootstrap_field form.city %}
</div>
</div>
<div class="row">
<div class="col-sm-6">
{% bootstrap_field form.email_address %}
</div>
<div class="col-sm-6">
{% bootstrap_field form.phone_number %}
</div>
</div>
<div class="row">
<div class="col-sm-6">
{% bootstrap_field form.dav_number %}
</div>
<div class="col-sm-6">
{% bootstrap_field form.emergency_contact %}
</div>
</div>
<div class="row">
<div class="col-sm-6">
{% bootstrap_field form.experience %}
</div>
<div class="col-sm-6">
{% bootstrap_field form.note %}
</div>
</div>