UPD: dav_events: improved registrations page.
This commit is contained in:
@@ -146,18 +146,19 @@
|
|||||||
<h3 class="panel-title">{{ event }}</h3>
|
<h3 class="panel-title">{{ event }}</h3>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-body">
|
<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 class="panel panel-default">
|
||||||
<div id="headingForm1" class="panel-heading" role="tab">
|
<div id="headingFormGeneral" class="panel-heading" role="tab">
|
||||||
<h4 class="panel-title">
|
<h4 class="panel-title">
|
||||||
<a role="button" href="#collapseForm1" data-toggle="collapse" data-parent="#accordion"
|
<a role="button" href="#collapseFormGeneral"
|
||||||
aria-expanded="true" aria-controls="collapseForm1">
|
data-toggle="collapse" data-parent="#form-accordion-general"
|
||||||
|
aria-expanded="true" aria-controls="collapseFormGeneral">
|
||||||
{% trans 'Allgemeines' %}
|
{% trans 'Allgemeines' %}
|
||||||
</a>
|
</a>
|
||||||
</h4>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
<div id="collapseForm1" class="panel-collapse collapse in"
|
<div id="collapseFormGeneral" class="panel-collapse collapse in"
|
||||||
role="tabpanel" aria-labelledby="headingForm1">
|
role="tabpanel" aria-labelledby="headingFormGeneral">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-3">
|
<div class="col-sm-3">
|
||||||
@@ -218,20 +219,22 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<hr />
|
</div>
|
||||||
<h4>{% trans 'Teilnehmer' %}</h4>
|
<hr />
|
||||||
|
<h4>{% trans 'Teilnehmer' %}</h4>
|
||||||
|
<div class="panel-group" id="form-accordion-participants" role="tablist" aria-multiselectable="true">
|
||||||
{% if registrations_support %}
|
{% if registrations_support %}
|
||||||
<div class="panel panel-info">
|
<div class="panel panel-info">
|
||||||
<div id="headingRegistrations" class="panel-heading" role="tab">
|
<div id="headingRegistrations" class="panel-heading" role="tab">
|
||||||
<h5 class="panel-title">
|
<h5 class="panel-title">
|
||||||
<a role="button" href="#collapseRegistrations"
|
<a role="button" href="#collapseRegistrations"
|
||||||
data-toggle="collapse" data-parent="#accordion"
|
data-toggle="collapse"
|
||||||
aria-expanded="true" aria-controls="collapseRegistrations">
|
aria-expanded="true" aria-controls="collapseRegistrations">
|
||||||
<span class="caret"></span> {% trans 'Anmeldungen' %}
|
<span class="caret"></span> {% trans 'Anmeldungen' %}
|
||||||
</a>
|
</a>
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
<div id="collapseRegistrations" class="panel-collapse collapse"
|
<div id="collapseRegistrations" class="panel-collapse collapse {% if registrations %}in{% endif %}"
|
||||||
role="tabpanel" aria-labelledby="headingRegistrations">
|
role="tabpanel" aria-labelledby="headingRegistrations">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
{% for registration in registrations %}
|
{% for registration in registrations %}
|
||||||
@@ -278,7 +281,7 @@
|
|||||||
<div id="headingAddParticipant" class="panel-heading" role="tab">
|
<div id="headingAddParticipant" class="panel-heading" role="tab">
|
||||||
<h5 class="panel-title">
|
<h5 class="panel-title">
|
||||||
<a role="button" href="#collapseAddParticipant"
|
<a role="button" href="#collapseAddParticipant"
|
||||||
data-toggle="collapse" data-parent="#accordion"
|
data-toggle="collapse"
|
||||||
aria-expanded="true" aria-controls="collapseAddParticipant">
|
aria-expanded="true" aria-controls="collapseAddParticipant">
|
||||||
<span class="caret"></span> {% trans 'weiteren Teilnehmer eintragen' %}
|
<span class="caret"></span> {% trans 'weiteren Teilnehmer eintragen' %}
|
||||||
</a>
|
</a>
|
||||||
@@ -300,21 +303,24 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% for form in participant_formset %}
|
{% for form in participant_formset %}
|
||||||
{% with participant_id=form.instance.id %}
|
{% with participant=form.instance %}
|
||||||
{% with position=form.instance.position %}
|
{% with position=participant.position %}
|
||||||
<div class="panel {% if event.max_participants and position > event.max_participant %}panel-warning{% else %}panel-default{% endif %}">
|
<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">
|
<h5 class="panel-title">
|
||||||
<a role="button" href="#collapseParticipant_{{ participant_id }}"
|
<a role="button" href="#collapseParticipant_{{ participant.id }}"
|
||||||
data-toggle="collapse" data-parent="#accordion"
|
data-toggle="collapse"
|
||||||
aria-expanded="true" aria-controls="collapseParticipant_{{ participant_id }}">
|
aria-expanded="true" aria-controls="collapseParticipant_{{ participant.id }}">
|
||||||
<span class="caret"></span>
|
<span class="caret"></span>
|
||||||
{{ position }}. {{ form.instance.get_full_name }}
|
{{ position }}. {{ participant.get_full_name }}
|
||||||
</a>
|
</a>
|
||||||
|
<small>
|
||||||
|
(<a href="mailto:{{ participant.email_address }}">{{ participant.email_address }}</a>, {{ participant.phone_number }})
|
||||||
|
</small>
|
||||||
<div class="pull-right">
|
<div class="pull-right">
|
||||||
<form action="" method="post" class="form-inline">
|
<form action="" method="post" class="form-inline">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<input type="hidden" name="id" value="{{ participant_id }}">
|
<input type="hidden" name="id" value="{{ participant.id }}">
|
||||||
<button name="action" value="moveup_participant"
|
<button name="action" value="moveup_participant"
|
||||||
title="{% trans 'Nach oben verschieben' %}"
|
title="{% trans 'Nach oben verschieben' %}"
|
||||||
class="btn btn-link no-padding {% if forloop.first %}invisible{% endif %}">
|
class="btn btn-link no-padding {% if forloop.first %}invisible{% endif %}">
|
||||||
@@ -326,12 +332,12 @@
|
|||||||
<span class="text-info">{% bootstrap_icon 'triangle-bottom' %}</span>
|
<span class="text-info">{% bootstrap_icon 'triangle-bottom' %}</span>
|
||||||
</button>
|
</button>
|
||||||
<button name="action" value="remove_participant"
|
<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">
|
class="btn btn-link no-padding">
|
||||||
<span class="text-danger">{% bootstrap_icon 'remove-circle' %}</span>
|
<span class="text-danger">{% bootstrap_icon 'remove-circle' %}</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
{% if form.instance.paid %}
|
{% if participant.paid %}
|
||||||
<span class="text-success" title="Geldeingang bestätigt">
|
<span class="text-success" title="Geldeingang bestätigt">
|
||||||
{% bootstrap_icon 'piggy-bank' %}
|
{% bootstrap_icon 'piggy-bank' %}
|
||||||
</span>
|
</span>
|
||||||
@@ -344,15 +350,15 @@
|
|||||||
</div>
|
</div>
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
<div id="collapseParticipant_{{ participant_id }}"
|
<div id="collapseParticipant_{{ participant.id }}"
|
||||||
class="panel-collapse collapse {% if form.errors %}in{% endif %}"
|
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">
|
<div class="panel-body">
|
||||||
{% bootstrap_form_errors form %}
|
{% bootstrap_form_errors form %}
|
||||||
<form action="" method="post">
|
<form action="" method="post">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<input type="hidden" name="form_prefix" value="{{ form.prefix }}">
|
<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' %}
|
{% include './includes/participant_form.html' %}
|
||||||
<button type="submit" name="action" value="update_participant" class="btn btn-success">
|
<button type="submit" name="action" value="update_participant" class="btn btn-success">
|
||||||
{% bootstrap_icon 'hdd' %} {% trans 'Speichern' %}
|
{% bootstrap_icon 'hdd' %} {% trans 'Speichern' %}
|
||||||
@@ -364,6 +370,14 @@
|
|||||||
{% endwith %}
|
{% endwith %}
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
{% endfor %}
|
{% 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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -214,6 +214,11 @@ class EventRegistrationsView(EventPermissionMixin, generic.DetailView):
|
|||||||
participants = event.participants.all()
|
participants = event.participants.all()
|
||||||
context['participants'] = participants
|
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:
|
if 'participant_formset' not in context:
|
||||||
context['participant_formset'] = self.get_participant_formset()
|
context['participant_formset'] = self.get_participant_formset()
|
||||||
|
|
||||||
@@ -223,8 +228,7 @@ class EventRegistrationsView(EventPermissionMixin, generic.DetailView):
|
|||||||
registrations_support = hasattr(event, 'registrations')
|
registrations_support = hasattr(event, 'registrations')
|
||||||
context['registrations_support'] = registrations_support
|
context['registrations_support'] = registrations_support
|
||||||
if registrations_support:
|
if registrations_support:
|
||||||
# registrations = event.registrations.filter(answered=False)
|
registrations = event.registrations.filter(answered=False)
|
||||||
registrations = event.registrations.all()
|
|
||||||
context['registrations'] = registrations
|
context['registrations'] = registrations
|
||||||
|
|
||||||
return context
|
return context
|
||||||
|
|||||||
Reference in New Issue
Block a user