UPD: dav_events: improved registrations page.
This commit is contained in:
@@ -146,18 +146,19 @@
|
||||
<h3 class="panel-title">{{ event }}</h3>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div class="panel-group" id="form-accordion" role="tablist" aria-multiselectable="true">
|
||||
<div class="panel-group" id="form-accordion-general" role="tablist" aria-multiselectable="true">
|
||||
<div class="panel panel-default">
|
||||
<div id="headingForm1" class="panel-heading" role="tab">
|
||||
<div id="headingFormGeneral" class="panel-heading" role="tab">
|
||||
<h4 class="panel-title">
|
||||
<a role="button" href="#collapseForm1" data-toggle="collapse" data-parent="#accordion"
|
||||
aria-expanded="true" aria-controls="collapseForm1">
|
||||
<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="collapseForm1" class="panel-collapse collapse in"
|
||||
role="tabpanel" aria-labelledby="headingForm1">
|
||||
<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">
|
||||
@@ -218,20 +219,22 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<hr />
|
||||
<h4>{% trans 'Teilnehmer' %}</h4>
|
||||
</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" data-parent="#accordion"
|
||||
data-toggle="collapse"
|
||||
aria-expanded="true" aria-controls="collapseRegistrations">
|
||||
<span class="caret"></span> {% trans 'Anmeldungen' %}
|
||||
</a>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="collapseRegistrations" class="panel-collapse collapse"
|
||||
<div id="collapseRegistrations" class="panel-collapse collapse {% if registrations %}in{% endif %}"
|
||||
role="tabpanel" aria-labelledby="headingRegistrations">
|
||||
<div class="panel-body">
|
||||
{% for registration in registrations %}
|
||||
@@ -278,7 +281,7 @@
|
||||
<div id="headingAddParticipant" class="panel-heading" role="tab">
|
||||
<h5 class="panel-title">
|
||||
<a role="button" href="#collapseAddParticipant"
|
||||
data-toggle="collapse" data-parent="#accordion"
|
||||
data-toggle="collapse"
|
||||
aria-expanded="true" aria-controls="collapseAddParticipant">
|
||||
<span class="caret"></span> {% trans 'weiteren Teilnehmer eintragen' %}
|
||||
</a>
|
||||
@@ -300,21 +303,24 @@
|
||||
</div>
|
||||
</div>
|
||||
{% for form in participant_formset %}
|
||||
{% with participant_id=form.instance.id %}
|
||||
{% with position=form.instance.position %}
|
||||
{% with participant=form.instance %}
|
||||
{% with position=participant.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">
|
||||
<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 }}">
|
||||
<a role="button" href="#collapseParticipant_{{ participant.id }}"
|
||||
data-toggle="collapse"
|
||||
aria-expanded="true" aria-controls="collapseParticipant_{{ participant.id }}">
|
||||
<span class="caret"></span>
|
||||
{{ position }}. {{ form.instance.get_full_name }}
|
||||
{{ 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 }}">
|
||||
<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 %}">
|
||||
@@ -326,12 +332,12 @@
|
||||
<span class="text-info">{% bootstrap_icon 'triangle-bottom' %}</span>
|
||||
</button>
|
||||
<button name="action" value="remove_participant"
|
||||
title="{% trans 'Teilnehmer löschen' %}"
|
||||
title="{% trans 'Teilnehmer löschen' %} ({% trans 'Spätestens am' %} {{ participant.purge_at|date:'d. F Y'}})"
|
||||
class="btn btn-link no-padding">
|
||||
<span class="text-danger">{% bootstrap_icon 'remove-circle' %}</span>
|
||||
</button>
|
||||
|
||||
{% if form.instance.paid %}
|
||||
{% if participant.paid %}
|
||||
<span class="text-success" title="Geldeingang bestätigt">
|
||||
{% bootstrap_icon 'piggy-bank' %}
|
||||
</span>
|
||||
@@ -344,15 +350,15 @@
|
||||
</div>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="collapseParticipant_{{ participant_id }}"
|
||||
<div id="collapseParticipant_{{ participant.id }}"
|
||||
class="panel-collapse collapse {% if form.errors %}in{% endif %}"
|
||||
role="tabpanel" aria-labelledby="headingParticipant_{{ participant_id }}">
|
||||
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 }}">
|
||||
<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' %}
|
||||
@@ -364,6 +370,14 @@
|
||||
{% endwith %}
|
||||
{% endwith %}
|
||||
{% endfor %}
|
||||
{% if participant_emails %}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<strong>{% trans 'E-Mail-Adressen' %}</strong> <small>(für Copy-Paste)</small><br />
|
||||
<div class="well well-sm">{{ participant_emails }}</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -214,6 +214,11 @@ class EventRegistrationsView(EventPermissionMixin, generic.DetailView):
|
||||
participants = event.participants.all()
|
||||
context['participants'] = participants
|
||||
|
||||
if participants.count() > 1:
|
||||
email_list = ['"{}" <{}>'.format(p.get_full_name(), p.email_address) for p in participants]
|
||||
email_list.sort()
|
||||
context['participant_emails'] = ', '.join(email_list)
|
||||
|
||||
if 'participant_formset' not in context:
|
||||
context['participant_formset'] = self.get_participant_formset()
|
||||
|
||||
@@ -223,8 +228,7 @@ class EventRegistrationsView(EventPermissionMixin, generic.DetailView):
|
||||
registrations_support = hasattr(event, 'registrations')
|
||||
context['registrations_support'] = registrations_support
|
||||
if registrations_support:
|
||||
# registrations = event.registrations.filter(answered=False)
|
||||
registrations = event.registrations.all()
|
||||
registrations = event.registrations.filter(answered=False)
|
||||
context['registrations'] = registrations
|
||||
|
||||
return context
|
||||
|
||||
Reference in New Issue
Block a user