Files
django-dav-events/dav_events/templates/dav_events/event_registrations.html

419 lines
22 KiB
HTML

{% extends 'dav_events/base.html' %}
{% load bootstrap3 %}
{% load i18n %}
{% load dav_events %}
{% block head-title %}{% trans 'Anmeldungen' %} - {{ event }} - {{ block.super }}{% endblock head-title %}
{% block modals %}
<div id="modal-close-registration-dialog" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">{% trans 'Anmeldung schließen?' %}</h4>
</div>
<div class="modal-body">
<p class="text-center">
<strong>{{ event }}</strong>
</p>
<p>
Die Redaktion wird informiert, dass die Veranstaltung im Internet als ausgebucht gekennzeichnet
bzw. nicht abgedruckt werden soll.<br />
Eine Teilnehmeranmeldung über das Touren- und Kurse-Portal wird nicht mehr möglich sein.
</p>
</div>
<div class="modal-footer">
<form action="" method="post">
{% csrf_token %}
<input type="hidden" name="action" value="close-registration">
<button type="submit" class="btn btn-success">
{% bootstrap_icon 'ok' %}&thinsp;
{% trans 'Ja, mach zu!' %}
</button>
<button type="button" class="btn btn-danger" data-dismiss="modal">
{% bootstrap_icon 'remove' %}&thinsp;
{% trans 'Abbrechen' %}
</button>
</form>
</div>
</div>
</div>
</div>
<div id="modal-open-registration-dialog" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">{% trans 'Anmeldung wieder öffnen?' %}</h4>
</div>
<div class="modal-body">
<p class="text-center">
<strong>{{ event }}</strong>
</p>
<p>
Die Anmeldung über das Touren- und Kurse-Portal wird wieder möglich
(solange der Anmeldeschluß noch nicht abgelaufen ist).<br />
Die Redaktion wird darüber aber nicht informiert.
</p>
</div>
<div class="modal-footer">
<form action="" method="post">
{% csrf_token %}
<input type="hidden" name="action" value="open-registration">
<button type="submit" class="btn btn-success">
{% bootstrap_icon 'ok' %}&thinsp;
{% trans 'Ja, super!' %}
</button>
<button type="button" class="btn btn-danger" data-dismiss="modal">
{% bootstrap_icon 'remove' %}&thinsp;
{% trans 'Abbrechen' %}
</button>
</form>
</div>
</div>
</div>
</div>
<div id="modal-kill-deadline-dialog" class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<h4 class="modal-title">{% trans 'Anmeldeschluss aufheben?' %}</h4>
</div>
<div class="modal-body">
<p class="text-center">
<strong>{{ event }}</strong>
</p>
<p>
Der bisher gesetzte Anmeldeschluss wird gelöscht.<br />
Somit wird die Anmeldung über das Touren- und Kurse-Portal wieder möglich.<br />
<strong>Die Redaktion wird darüber nicht automatisch informiert</strong>.
Wenn deine Tour bereits mit Anmeldeschluss im <i>KA Alpin</i> abgedruckt wurde,
können wir da auch nichts mehr machen.<br />
</p>
</div>
<div class="modal-footer">
<form action="" method="post">
{% csrf_token %}
<input type="hidden" name="action" value="kill-deadline">
<button type="submit" class="btn btn-success">
{% bootstrap_icon 'ok' %}&thinsp;
{% trans 'Ja, super!' %}
</button>
<button type="button" class="btn btn-danger" data-dismiss="modal">
{% bootstrap_icon 'remove' %}&thinsp;
{% trans 'Abbrechen' %}
</button>
</form>
</div>
</div>
</div>
</div>
{% endblock modals %}
{% block page-container-fluid %}
<div class="action-tabs top-most">
<ul class="nav nav-tabs" role="tablist">
<li>
<a href="{% url 'dav_events:list' %}">{% trans 'Veranstaltungsliste' %}</a>
</li>
<li>
<a href="{% url 'dav_events:detail' event.pk %}">{% trans 'Details' %}</a>
</li>
<li class="{% if not has_permission_update %}disabled{% endif %}">
<a class="{% if not has_permission_update %}disabled{% endif %}"
href="{% url 'dav_events:update' event.pk %}">{% trans 'Ändern' %}</a>
</li>
<li class="active">
<a href="{% url 'dav_events:registrations' event.pk %}">{% trans 'Anmeldungen' %}</a>
</li>
</ul>
</div>
{% if not event.registration_required %}
<div class="alert alert-danger alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
{% trans 'Für diese Veranstaltung wurde keine Anmeldung gefordert.' %}
</div>
{% endif %}
<div class="panel panel-default">
<div class="panel-heading">
<div class="pull-right">
{% render_event_status event %}
</div>
<h3 class="panel-title">{{ event }}</h3>
</div>
<div class="panel-body">
<div class="panel-group" id="form-accordion-general" role="tablist" aria-multiselectable="true">
<div class="panel panel-default">
<div id="headingFormGeneral" class="panel-heading" role="tab">
<h4 class="panel-title">
<a role="button" href="#collapseFormGeneral"
data-toggle="collapse" data-parent="#form-accordion-general"
aria-expanded="true" aria-controls="collapseFormGeneral">
{% trans 'Allgemeines' %}
</a>
</h4>
</div>
<div id="collapseFormGeneral" class="panel-collapse collapse in"
role="tabpanel" aria-labelledby="headingFormGeneral">
<div class="panel-body">
<div class="row">
<div class="col-sm-3">
<strong>{% trans 'Teilnehmerzahl' %}:</strong>
{{ event.min_participants }} -
{% if event.max_participants > 0 %}
{{ event.max_participants }}
{% else %}
&infin;
{% endif %}
</div>
<div class="col-sm-4">
<strong>{% trans 'Anmeldeschluss' %}:</strong>
{% if event.deadline %}
{{ event.deadline|date:'l, d. F Y' }}
{% else %}
-
{% endif %}
</div>
<div class="col-sm-5">
<strong>{% trans 'Anmeldestatus' %}:</strong>
{% if not event.registration_required %}
<span class="label label-success">{% trans 'Anmeldung nicht erforderlich' %}</span>
{% elif is_done %}
<span class="label label-default">{% trans 'Veranstaltung beendet' %}</span>
{% elif event.registration_closed %}
<span class="label label-danger">{% trans 'Anmeldung geschlossen' %}</span>
{% elif event.is_deadline_expired %}
<span class="label label-warning">{% trans 'Anmeldeschluss abgelaufen' %}</span>
{% elif is_published_any %}
<span class="label label-success">{% trans 'Anmeldung geöffnet' %}</span>
{% else %}
<span class="label label-info">{% trans 'Veranstaltung noch nicht veröffentlicht' %}</span>
{% endif %}
</div>
</div>
</div>
{% if has_permission_update_registration %}
<div class="panel-footer">
{% if event.is_deadline_expired %}
<a id="btn-kill-deadline" class="btn btn-danger"
data-toggle="modal" data-target="#modal-kill-deadline-dialog">
{% bootstrap_icon 'remove-circle' %}&thinsp;
{% trans 'Anmeldeschluss aufheben' %}
</a>
{% elif event.registration_closed %}
<a id="btn-open-registration" class="btn btn-warning"
data-toggle="modal" data-target="#modal-open-registration-dialog">
{% bootstrap_icon 'ok-circle' %}&thinsp;
{% trans 'Anmeldung wieder öffnen' %}
</a>
{% else %}
<a id="btn-close-registration" class="btn btn-warning"
data-toggle="modal" data-target="#modal-close-registration-dialog">
{% bootstrap_icon 'ban-circle' %}&thinsp;
{% trans 'Anmeldung schließen' %}
</a>
{% endif %}
</div>
{% endif %}
</div>
</div>
</div>
<hr />
<h4>{% trans 'Teilnehmer' %}</h4>
<div class="panel-group" id="form-accordion-participants" role="tablist" aria-multiselectable="true">
{% 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"
aria-expanded="true" aria-controls="collapseRegistrations">
<span class="caret"></span>&nbsp;&nbsp;{% trans 'Anmeldungen' %}
</a>
</h5>
</div>
<div id="collapseRegistrations" class="panel-collapse collapse {% if registrations %}in{% endif %}"
role="tabpanel" aria-labelledby="headingRegistrations">
<div class="panel-body">
{% for registration in registrations %}
<form action="" method="post" class="form-inline">
{% csrf_token %}
<input type="hidden" name="registration" value="{{ registration.id }}">
{% 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>
</button>
&nbsp;
<button type="submit" name="action" value="reject_registration"
class="btn btn-link no-padding" title="Anmeldung löschen">
<span class="text-danger">{% bootstrap_icon 'minus-sign' %}</span>
</button>
&nbsp;
{% endif %}
{% 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 }})
&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>
{% if registration.answered %}
</span>
{% endif %}
</form>
{% empty %}
{% trans 'Keine unbearbeiteten Anmeldungen vorhanden' %}
{% endfor %}
</div>
</div>
</div>
{% endif %}
{% if has_permission_update_participants %}
<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"
aria-expanded="true" aria-controls="collapseAddParticipant">
<span class="caret"></span>&nbsp;&nbsp;{% trans 'weiteren Teilnehmer hinzufügen' %}
</a>
</h5>
</div>
<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 %}
{% 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 'zur Teilnehmerliste hinzufügen' %}
</button>
</form>
</div>
</div>
</div>
{% endif %}
{% if participants %}
{% for form in participant_formset %}
{% with participant=form.instance %}
{% with position=participant.position %}
<div class="panel {% if event.max_participants and position > event.max_participants %}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"
aria-expanded="true" aria-controls="collapseParticipant_{{ participant.id }}">
<span class="caret"></span>&nbsp;&nbsp;
{{ position }}. {{ participant.get_full_name }}
</a>
<small>
(<a href="mailto:{{ participant.email_address }}">{{ participant.email_address }}</a>, {{ participant.phone_number }})
</small>
<div class="pull-right">
<form action="" method="post" class="form-inline">
{% csrf_token %}
<input type="hidden" name="id" value="{{ participant.id }}">
{% if has_permission_update_participants %}
<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 jetzt löschen' %}
({% trans 'erfolgt automatisch am' %} {{ participant.purge_at|date:'d. F Y'}})"
class="btn btn-link no-padding">
<span class="text-danger">{% bootstrap_icon 'remove-circle' %}</span>
</button>
&nbsp;
{% endif %}
{% if event.charge and participant.paid and has_permission_payment %}
<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 %}
<span class="text-success" title="{% trans 'Geldeingang bestätigt' %}">
{% bootstrap_icon 'piggy-bank' %}
</span>
{% elif event.charge and has_permission_payment %}
<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 %}
<span class="text-danger" title="{% trans 'Geldeingang unbestätigt' %}">
{% bootstrap_icon 'piggy-bank' %}
</span>
{% else %}
<span class="hidden" title="{% trans 'Keine Teilnehmergebühr gefordert' %}">
{% bootstrap_icon 'piggy-bank' %}
</span>
{% endif %}
</form>
</div>
</h5>
</div>
<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">
{% 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' %}
{% if has_permission_update_participants %}
<button type="submit" name="action" value="update_participant" class="btn btn-success">
{% bootstrap_icon 'hdd' %} {% trans 'Speichern' %}
</button>
{% endif %}
</form>
</div>
</div>
</div>
{% endwith %}
{% endwith %}
{% endfor %}
{% else %}
<div class="panel panel-info">
<div class="panel-body">
<span class="text-info">{% trans 'Es wurden noch keine Teilnehmer hinzugefügt.' %}</span>
</div>
</div>
{% endif %}
{% if participant_emails %}
<div class="panel panel-default">
<div class="panel-body">
<strong>{% trans 'E-Mail-Adressen' %}</strong> <small>({% trans 'für Copy-Paste' %})</small><br />
<div class="well well-sm">{{ participant_emails }}</div>
</div>
</div>
{% endif %}
</div>
</div>
</div>
{% endblock page-container-fluid %}