Reduced participant fee: added toggle buttons within office views and
All checks were successful
buildbot/tox Build done.
All checks were successful
buildbot/tox Build done.
improved html
This commit is contained in:
@@ -210,6 +210,17 @@
|
||||
<form action="" method="post" class="form-inline">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="id" value="{{ participant.id }}">
|
||||
{% if event.charge and has_permission_payment %}
|
||||
<button name="action" value="toggle_reduced_fee"
|
||||
title="{% trans 'Hier klicken, um zwischen voller und reduzierter Teilnahmegebühr umzuschalten' %}"
|
||||
class="btn btn-link no-padding">
|
||||
<span class="text-primary">
|
||||
{% if participant.apply_reduced_fee %}{% bootstrap_icon 'check' %}{% else %}{% bootstrap_icon 'unchecked' %}{% endif %}
|
||||
Reduzierte Teilnamegebühr
|
||||
</span>
|
||||
</button>
|
||||
|
||||
{% endif %}
|
||||
{% if has_permission_update_participants %}
|
||||
<button name="action" value="moveup_participant"
|
||||
title="{% trans 'Nach oben verschieben' %}"
|
||||
@@ -229,30 +240,35 @@
|
||||
{% endif %}
|
||||
{% if event.charge and participant.paid and has_permission_payment %}
|
||||
|
||||
<span class="text-success"><strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong></span><button
|
||||
<span class="text-success {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><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' %}">
|
||||
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
||||
</span>
|
||||
<span class="text-success {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||
class="text-success"
|
||||
title="{% trans 'Geldeingang bestätigt' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||
{% elif event.charge and has_permission_payment %}
|
||||
|
||||
<span class="text-danger"><strong>{% if participant.apply_reduced_fee %}%{% elif participant.created_at|date:'U' < '1608764400' %}? {% else %} {% endif %}</strong></span><button
|
||||
<span class="text-danger {% if not participant.apply_reduced_fee and participant.created_at|date:'U' > '1608764400' %}invisible{% endif %}"
|
||||
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>{% if participant.apply_reduced_fee %}%{% else %}? {% endif %}</strong></span><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' %}">
|
||||
<strong>{% if participant.apply_reduced_fee %}%{% elif participant.created_at|date:'U' < '1608764400' %}? {% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
||||
</span>
|
||||
<span class="text-danger {% if not participant.apply_reduced_fee and participant.created_at|date:'U' > '1608764400' %}invisible{% endif %}"
|
||||
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>{% if participant.apply_reduced_fee %}%{% else %}? {% endif %}</strong></span><span
|
||||
class="text-danger"
|
||||
title="{% trans 'Geldeingang unbestätigt' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||
{% else %}
|
||||
<span class="hidden" title="{% trans 'Keine Teilnehmergebühr gefordert' %}">
|
||||
<strong> </strong>{% bootstrap_icon 'piggy-bank' %}
|
||||
</span>
|
||||
<span class="hidden {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||
class="hidden"
|
||||
title="{% trans 'Keine Teilnehmergebühr gefordert' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||
{% endif %}
|
||||
</form>
|
||||
</div>
|
||||
@@ -287,6 +303,11 @@
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<strong title="Summe der bestätigten Geldeingänge (theoretisch!, da wir hier nur die Gebühren, aber nicht die tatsächlich überwiesenen Beträge kennen)">{% trans 'Gebuchte Teilnahmegebühren' %}:</strong> {{ earnings|floatformat:2 }} €
|
||||
</div>
|
||||
</div>
|
||||
{% if participant_emails %}
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
@@ -380,14 +401,16 @@
|
||||
</span>
|
||||
{% if event.charge and participant.paid %}
|
||||
|
||||
<span class="text-success" title="{% trans 'Geldeingang bestätigt' %}">
|
||||
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
||||
</span>
|
||||
<span class="text-success {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||
class="text-success"
|
||||
title="{% trans 'Geldeingang bestätigt' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||
{% elif event.charge %}
|
||||
|
||||
<span class="text-danger" title="{% trans 'Geldeingang unbestätigt' %}">
|
||||
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
||||
</span>
|
||||
<span class="text-danger {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||
class="text-danger"
|
||||
title="{% trans 'Geldeingang unbestätigt' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||
{% endif %}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -71,24 +71,37 @@
|
||||
<form action="" method="post" class="form-inline">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="id" value="{{ participant.id }}">
|
||||
{% if event.charge %}
|
||||
<button name="action" value="toggle_reduced_fee"
|
||||
title="{% trans 'Hier klicken, um zwischen voller und reduzierter Teilnahmegebühr umzuschalten' %}"
|
||||
class="btn btn-link no-padding">
|
||||
<span class="text-primary">
|
||||
{% if participant.apply_reduced_fee %}{% bootstrap_icon 'check' %}{% else %}{% bootstrap_icon 'unchecked' %}{% endif %}
|
||||
</span>
|
||||
</button>
|
||||
|
||||
{% endif %}
|
||||
{% if event.charge and participant.paid %}
|
||||
<span class="text-success"><strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong></span><button
|
||||
<span class="text-success {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><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>
|
||||
|
||||
({{ event.charge|floatformat:'-2' }}{% if participant.apply_reduced_fee %} / 2{% endif %} €)
|
||||
{% elif event.charge %}
|
||||
<span class="text-danger"><strong>{% if participant.apply_reduced_fee %}%{% elif participant.created_at|date:'U' < '1608764400' %}? {% else %} {% endif %}</strong></span><button
|
||||
<span class="text-danger {% if not participant.apply_reduced_fee and participant.created_at|date:'U' > '1608764400' %}invisible{% endif %}"
|
||||
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>{% if participant.apply_reduced_fee %}%{% else %}? {% endif %}</strong></span><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>
|
||||
|
||||
({{ event.charge|floatformat:'-2' }}{% if participant.apply_reduced_fee %} / 2{% endif %} €)
|
||||
{% else %}
|
||||
<span class="text-muted" title="{% trans 'Keine Teilnehmergebühr gefordert' %}">
|
||||
<strong> </strong>{% bootstrap_icon 'piggy-bank' %}
|
||||
</span>
|
||||
<span class="hidden {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||
class="hidden"
|
||||
title="{% trans 'Keine Teilnehmergebühr gefordert' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||
{% endif %}
|
||||
</form>
|
||||
</td>
|
||||
|
||||
@@ -53,6 +53,11 @@ class ParticipantListView(generic.ListView):
|
||||
participant = get_object_or_404(Participant, pk=participant_id)
|
||||
participant.paid = False
|
||||
participant.save()
|
||||
elif action == 'toggle_reduced_fee':
|
||||
participant_id = request.POST.get('id')
|
||||
participant = get_object_or_404(Participant, pk=participant_id)
|
||||
participant.apply_reduced_fee = not participant.apply_reduced_fee
|
||||
participant.save()
|
||||
else:
|
||||
messages.error(request, 'unsupported action: {}'.format(action))
|
||||
return HttpResponseRedirect(reverse('dav_event_office:participant-list'))
|
||||
|
||||
@@ -305,7 +305,7 @@ Das musst du selbst (per E-Mail oder telefonisch) machen.
|
||||
{% if registration.apply_reduced_fee %}
|
||||
|
||||
<span class="text-info">
|
||||
<strong>%</strong>{% bootstrap_icon 'piggy-bank' %} (reduzierte Gebühr)
|
||||
<strong title="{% trans 'reduzierte Teilnahmegebühr' %}">%</strong>{% bootstrap_icon 'piggy-bank' %} (reduzierte Gebühr)
|
||||
</span>
|
||||
{% endif %}
|
||||
</form>
|
||||
@@ -399,30 +399,35 @@ Wichtig: das System verschickt keine Bestätigung an dich oder den neuen Teilneh
|
||||
{% endif %}
|
||||
{% if event.charge and participant.paid and has_permission_payment %}
|
||||
|
||||
<span class="text-success"><strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong></span><button
|
||||
<span class="text-success {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><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' %}">
|
||||
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
||||
</span>
|
||||
<span class="text-success {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||
class="text-success"
|
||||
title="{% trans 'Geldeingang bestätigt' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||
{% elif event.charge and has_permission_payment %}
|
||||
|
||||
<span class="text-danger"><strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong></span><button
|
||||
<span class="text-danger {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><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' %}">
|
||||
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
||||
</span>
|
||||
<span class="text-danger {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||
class="text-danger"
|
||||
title="{% trans 'Geldeingang unbestätigt' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||
{% else %}
|
||||
<span class="hidden" title="{% trans 'Keine Teilnehmergebühr gefordert' %}">
|
||||
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
||||
</span>
|
||||
<span class="hidden {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||
class="hidden"
|
||||
title="{% trans 'Keine Teilnehmergebühr gefordert' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||
{% endif %}
|
||||
</form>
|
||||
</div>
|
||||
@@ -587,14 +592,16 @@ von Position {{ participant.position }} der Teilnehmerliste entfernt.
|
||||
</span>
|
||||
{% if event.charge and participant.paid %}
|
||||
|
||||
<span class="text-success" title="{% trans 'Geldeingang bestätigt' %}">
|
||||
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
||||
</span>
|
||||
<span class="text-success {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||
class="text-success"
|
||||
title="{% trans 'Geldeingang bestätigt' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||
{% elif event.charge %}
|
||||
|
||||
<span class="text-danger" title="{% trans 'Geldeingang unbestätigt' %}">
|
||||
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
||||
</span>
|
||||
<span class="text-danger {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||
class="text-danger"
|
||||
title="{% trans 'Geldeingang unbestätigt' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||
{% endif %}
|
||||
</span>
|
||||
|
||||
|
||||
@@ -219,6 +219,16 @@ class EventRegistrationsView(EventPermissionMixin, generic.DetailView):
|
||||
participants_trash = event.trashed_participants.all()
|
||||
context['participants_trash'] = participants_trash
|
||||
|
||||
earnings = 0
|
||||
if event.charge:
|
||||
for participant in participants:
|
||||
if participant.paid:
|
||||
if participant.apply_reduced_fee:
|
||||
earnings += event.charge / 2
|
||||
else:
|
||||
earnings += event.charge
|
||||
context['earnings'] = earnings
|
||||
|
||||
if participants.count() > 1:
|
||||
email_list = [u'"{}" <{}>'.format(p.get_full_name(), p.email_address) for p in participants]
|
||||
email_list.sort()
|
||||
@@ -344,6 +354,12 @@ class EventRegistrationsView(EventPermissionMixin, generic.DetailView):
|
||||
self._reset_registration(registration)
|
||||
else:
|
||||
raise FieldDoesNotExist('Event has no registrations')
|
||||
elif action == 'toggle_reduced_fee':
|
||||
self.enforce_permission(event, permission='payment')
|
||||
participant_id = request.POST.get('id')
|
||||
participant = event.participants.get(id=participant_id)
|
||||
participant.apply_reduced_fee = not participant.apply_reduced_fee
|
||||
participant.save()
|
||||
elif action == 'confirm_payment':
|
||||
self.enforce_permission(event, permission='payment')
|
||||
participant_id = request.POST.get('id')
|
||||
|
||||
Reference in New Issue
Block a user