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">
|
<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 }}">
|
||||||
|
{% 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 %}
|
{% if has_permission_update_participants %}
|
||||||
<button name="action" value="moveup_participant"
|
<button name="action" value="moveup_participant"
|
||||||
title="{% trans 'Nach oben verschieben' %}"
|
title="{% trans 'Nach oben verschieben' %}"
|
||||||
@@ -229,30 +240,35 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% if event.charge and participant.paid and has_permission_payment %}
|
{% 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"
|
name="action" value="revoke_payment"
|
||||||
title="{% trans 'Geldeingang wurde bestätigt' %} - {% trans 'Bestätigung des Geldeingangs zurückziehen' %}"
|
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>
|
class="btn btn-link no-padding"><span class="text-success">{% bootstrap_icon 'piggy-bank' %}</span></button>
|
||||||
{% elif event.charge and participant.paid %}
|
{% elif event.charge and participant.paid %}
|
||||||
|
|
||||||
<span class="text-success" title="{% trans 'Geldeingang bestätigt' %}">
|
<span class="text-success {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||||
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||||
</span>
|
class="text-success"
|
||||||
|
title="{% trans 'Geldeingang bestätigt' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||||
{% elif event.charge and has_permission_payment %}
|
{% 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"
|
name="action" value="confirm_payment"
|
||||||
title="{% trans 'Geldeingang bestätigen' %}"
|
title="{% trans 'Geldeingang bestätigen' %}"
|
||||||
class="btn btn-link no-padding"><span class="text-danger">{% bootstrap_icon 'piggy-bank' %}</span></button>
|
class="btn btn-link no-padding"><span class="text-danger">{% bootstrap_icon 'piggy-bank' %}</span></button>
|
||||||
{% elif event.charge %}
|
{% elif event.charge %}
|
||||||
|
|
||||||
<span class="text-danger" title="{% trans 'Geldeingang unbestätigt' %}">
|
<span class="text-danger {% if not participant.apply_reduced_fee and participant.created_at|date:'U' > '1608764400' %}invisible{% endif %}"
|
||||||
<strong>{% if participant.apply_reduced_fee %}%{% elif participant.created_at|date:'U' < '1608764400' %}? {% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>{% if participant.apply_reduced_fee %}%{% else %}? {% endif %}</strong></span><span
|
||||||
</span>
|
class="text-danger"
|
||||||
|
title="{% trans 'Geldeingang unbestätigt' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<span class="hidden" title="{% trans 'Keine Teilnehmergebühr gefordert' %}">
|
<span class="hidden {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||||
<strong> </strong>{% bootstrap_icon 'piggy-bank' %}
|
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||||
</span>
|
class="hidden"
|
||||||
|
title="{% trans 'Keine Teilnehmergebühr gefordert' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
@@ -287,6 +303,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% 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 %}
|
{% if participant_emails %}
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
@@ -380,14 +401,16 @@
|
|||||||
</span>
|
</span>
|
||||||
{% if event.charge and participant.paid %}
|
{% if event.charge and participant.paid %}
|
||||||
|
|
||||||
<span class="text-success" title="{% trans 'Geldeingang bestätigt' %}">
|
<span class="text-success {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||||
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||||
</span>
|
class="text-success"
|
||||||
|
title="{% trans 'Geldeingang bestätigt' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||||
{% elif event.charge %}
|
{% elif event.charge %}
|
||||||
|
|
||||||
<span class="text-danger" title="{% trans 'Geldeingang unbestätigt' %}">
|
<span class="text-danger {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||||
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||||
</span>
|
class="text-danger"
|
||||||
|
title="{% trans 'Geldeingang unbestätigt' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -71,24 +71,37 @@
|
|||||||
<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 }}">
|
||||||
|
{% 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 %}
|
{% 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"
|
name="action" value="revoke_payment"
|
||||||
title="{% trans 'Geldeingang wurde bestätigt' %} - {% trans 'Bestätigung des Geldeingangs zurückziehen' %}"
|
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>
|
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 %} €)
|
({{ event.charge|floatformat:'-2' }}{% if participant.apply_reduced_fee %} / 2{% endif %} €)
|
||||||
{% elif event.charge %}
|
{% 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"
|
name="action" value="confirm_payment"
|
||||||
title="{% trans 'Geldeingang bestätigen' %}"
|
title="{% trans 'Geldeingang bestätigen' %}"
|
||||||
class="btn btn-link no-padding"><span class="text-danger">{% bootstrap_icon 'piggy-bank' %}</span></button>
|
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 %} €)
|
({{ event.charge|floatformat:'-2' }}{% if participant.apply_reduced_fee %} / 2{% endif %} €)
|
||||||
{% else %}
|
{% else %}
|
||||||
<span class="text-muted" title="{% trans 'Keine Teilnehmergebühr gefordert' %}">
|
<span class="hidden {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||||
<strong> </strong>{% bootstrap_icon 'piggy-bank' %}
|
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||||
</span>
|
class="hidden"
|
||||||
|
title="{% trans 'Keine Teilnehmergebühr gefordert' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</form>
|
</form>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -53,6 +53,11 @@ class ParticipantListView(generic.ListView):
|
|||||||
participant = get_object_or_404(Participant, pk=participant_id)
|
participant = get_object_or_404(Participant, pk=participant_id)
|
||||||
participant.paid = False
|
participant.paid = False
|
||||||
participant.save()
|
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:
|
else:
|
||||||
messages.error(request, 'unsupported action: {}'.format(action))
|
messages.error(request, 'unsupported action: {}'.format(action))
|
||||||
return HttpResponseRedirect(reverse('dav_event_office:participant-list'))
|
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 %}
|
{% if registration.apply_reduced_fee %}
|
||||||
|
|
||||||
<span class="text-info">
|
<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>
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</form>
|
</form>
|
||||||
@@ -399,30 +399,35 @@ Wichtig: das System verschickt keine Bestätigung an dich oder den neuen Teilneh
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% if event.charge and participant.paid and has_permission_payment %}
|
{% 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"
|
name="action" value="revoke_payment"
|
||||||
title="{% trans 'Geldeingang wurde bestätigt' %} - {% trans 'Bestätigung des Geldeingangs zurückziehen' %}"
|
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>
|
class="btn btn-link no-padding"><span class="text-success">{% bootstrap_icon 'piggy-bank' %}</span></button>
|
||||||
{% elif event.charge and participant.paid %}
|
{% elif event.charge and participant.paid %}
|
||||||
|
|
||||||
<span class="text-success" title="{% trans 'Geldeingang bestätigt' %}">
|
<span class="text-success {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||||
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||||
</span>
|
class="text-success"
|
||||||
|
title="{% trans 'Geldeingang bestätigt' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||||
{% elif event.charge and has_permission_payment %}
|
{% 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"
|
name="action" value="confirm_payment"
|
||||||
title="{% trans 'Geldeingang bestätigen' %}"
|
title="{% trans 'Geldeingang bestätigen' %}"
|
||||||
class="btn btn-link no-padding"><span class="text-danger">{% bootstrap_icon 'piggy-bank' %}</span></button>
|
class="btn btn-link no-padding"><span class="text-danger">{% bootstrap_icon 'piggy-bank' %}</span></button>
|
||||||
{% elif event.charge %}
|
{% elif event.charge %}
|
||||||
|
|
||||||
<span class="text-danger" title="{% trans 'Geldeingang unbestätigt' %}">
|
<span class="text-danger {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||||
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||||
</span>
|
class="text-danger"
|
||||||
|
title="{% trans 'Geldeingang unbestätigt' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<span class="hidden" title="{% trans 'Keine Teilnehmergebühr gefordert' %}">
|
<span class="hidden {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||||
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||||
</span>
|
class="hidden"
|
||||||
|
title="{% trans 'Keine Teilnehmergebühr gefordert' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
@@ -587,14 +592,16 @@ von Position {{ participant.position }} der Teilnehmerliste entfernt.
|
|||||||
</span>
|
</span>
|
||||||
{% if event.charge and participant.paid %}
|
{% if event.charge and participant.paid %}
|
||||||
|
|
||||||
<span class="text-success" title="{% trans 'Geldeingang bestätigt' %}">
|
<span class="text-success {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||||
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||||
</span>
|
class="text-success"
|
||||||
|
title="{% trans 'Geldeingang bestätigt' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||||
{% elif event.charge %}
|
{% elif event.charge %}
|
||||||
|
|
||||||
<span class="text-danger" title="{% trans 'Geldeingang unbestätigt' %}">
|
<span class="text-danger {% if not participant.apply_reduced_fee %}invisible{% endif %}"
|
||||||
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
title="{% trans 'Reduzierte Teilnahmegebühr' %}"><strong>%</strong></span><span
|
||||||
</span>
|
class="text-danger"
|
||||||
|
title="{% trans 'Geldeingang unbestätigt' %}">{% bootstrap_icon 'piggy-bank' %}</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
|
|||||||
@@ -219,6 +219,16 @@ class EventRegistrationsView(EventPermissionMixin, generic.DetailView):
|
|||||||
participants_trash = event.trashed_participants.all()
|
participants_trash = event.trashed_participants.all()
|
||||||
context['participants_trash'] = participants_trash
|
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:
|
if participants.count() > 1:
|
||||||
email_list = [u'"{}" <{}>'.format(p.get_full_name(), p.email_address) for p in participants]
|
email_list = [u'"{}" <{}>'.format(p.get_full_name(), p.email_address) for p in participants]
|
||||||
email_list.sort()
|
email_list.sort()
|
||||||
@@ -344,6 +354,12 @@ class EventRegistrationsView(EventPermissionMixin, generic.DetailView):
|
|||||||
self._reset_registration(registration)
|
self._reset_registration(registration)
|
||||||
else:
|
else:
|
||||||
raise FieldDoesNotExist('Event has no registrations')
|
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':
|
elif action == 'confirm_payment':
|
||||||
self.enforce_permission(event, permission='payment')
|
self.enforce_permission(event, permission='payment')
|
||||||
participant_id = request.POST.get('id')
|
participant_id = request.POST.get('id')
|
||||||
|
|||||||
Reference in New Issue
Block a user