support for reduced fee #31
@@ -161,6 +161,12 @@
|
|||||||
<span title="{{ registration.get_info }}">
|
<span title="{{ registration.get_info }}">
|
||||||
{% bootstrap_icon 'info-sign' %}
|
{% bootstrap_icon 'info-sign' %}
|
||||||
</span>
|
</span>
|
||||||
|
{% if registration.apply_reduced_fee %}
|
||||||
|
|
||||||
|
<span class="text-info">
|
||||||
|
<strong>%</strong>{% bootstrap_icon 'piggy-bank' %} (reduzierte Gebühr)
|
||||||
|
</span>
|
||||||
|
{% endif %}
|
||||||
</form>
|
</form>
|
||||||
{% empty %}
|
{% empty %}
|
||||||
{% trans 'Keine Anmeldungen vorhanden' %}
|
{% trans 'Keine Anmeldungen vorhanden' %}
|
||||||
@@ -223,31 +229,29 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% if event.charge and participant.paid and has_permission_payment %}
|
{% if event.charge and participant.paid and has_permission_payment %}
|
||||||
|
|
||||||
<button name="action" value="revoke_payment"
|
<span class="text-success"><strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong></span><button
|
||||||
title="{% trans 'Geldeingang wurde bestätigt' %} - {% trans 'Bestätigung des Geldeingangs zurückziehen' %}"
|
name="action" value="revoke_payment"
|
||||||
class="btn btn-link no-padding">
|
title="{% trans 'Geldeingang wurde bestätigt' %} - {% trans 'Bestätigung des Geldeingangs zurückziehen' %}"
|
||||||
<span class="text-success">{% bootstrap_icon 'piggy-bank' %}</span>
|
class="btn btn-link no-padding"><span class="text-success">{% bootstrap_icon 'piggy-bank' %}</span></button>
|
||||||
</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" title="{% trans 'Geldeingang bestätigt' %}">
|
||||||
{% bootstrap_icon 'piggy-bank' %}
|
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
||||||
</span>
|
</span>
|
||||||
{% elif event.charge and has_permission_payment %}
|
{% elif event.charge and has_permission_payment %}
|
||||||
|
|
||||||
<button name="action" value="confirm_payment"
|
<span class="text-danger"><strong>{% if participant.apply_reduced_fee %}%{% elif participant.created_at|date:'U' < '1608764400' %}? {% else %} {% endif %}</strong></span><button
|
||||||
title="{% trans 'Geldeingang bestätigen' %}"
|
name="action" value="confirm_payment"
|
||||||
class="btn btn-link no-padding">
|
title="{% trans 'Geldeingang bestätigen' %}"
|
||||||
<span class="text-danger">{% bootstrap_icon 'piggy-bank' %}</span>
|
class="btn btn-link no-padding"><span class="text-danger">{% bootstrap_icon 'piggy-bank' %}</span></button>
|
||||||
</button>
|
|
||||||
{% elif event.charge %}
|
{% elif event.charge %}
|
||||||
|
|
||||||
<span class="text-danger" title="{% trans 'Geldeingang unbestätigt' %}">
|
<span class="text-danger" title="{% trans 'Geldeingang unbestätigt' %}">
|
||||||
{% bootstrap_icon 'piggy-bank' %}
|
<strong>{% if participant.apply_reduced_fee %}%{% elif participant.created_at|date:'U' < '1608764400' %}? {% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
||||||
</span>
|
</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<span class="hidden" title="{% trans 'Keine Teilnehmergebühr gefordert' %}">
|
<span class="hidden" title="{% trans 'Keine Teilnehmergebühr gefordert' %}">
|
||||||
{% bootstrap_icon 'piggy-bank' %}
|
<strong> </strong>{% bootstrap_icon 'piggy-bank' %}
|
||||||
</span>
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</form>
|
</form>
|
||||||
@@ -377,12 +381,12 @@
|
|||||||
{% 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" title="{% trans 'Geldeingang bestätigt' %}">
|
||||||
{% bootstrap_icon 'piggy-bank' %}
|
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
||||||
</span>
|
</span>
|
||||||
{% elif event.charge %}
|
{% elif event.charge %}
|
||||||
|
|
||||||
<span class="text-danger" title="{% trans 'Geldeingang unbestätigt' %}">
|
<span class="text-danger" title="{% trans 'Geldeingang unbestätigt' %}">
|
||||||
{% bootstrap_icon 'piggy-bank' %}
|
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
||||||
</span>
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@@ -28,6 +28,14 @@
|
|||||||
{% bootstrap_field form.phone_number %}
|
{% bootstrap_field form.phone_number %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-3">
|
||||||
|
{% bootstrap_field form.year_of_birth %}
|
||||||
|
</div>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
{% bootstrap_field form.apply_reduced_fee %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-3">
|
<div class="col-sm-3">
|
||||||
{% bootstrap_field form.dav_number %}
|
{% bootstrap_field form.dav_number %}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<th>{% trans 'Nachname' %}</th>
|
<th>{% trans 'Nachname' %}</th>
|
||||||
<th>{% trans 'Vorname' %}</th>
|
<th>{% trans 'Vorname' %}</th>
|
||||||
<th>{% trans 'Mitgliedsnummer' %}</th>
|
<th>{% trans 'Mitgliedsnummer' %}</th>
|
||||||
<th>{% trans 'Teilnehmergebühr' %}</th>
|
<th>{% trans 'Teilnahmegebühr' %}</th>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<th><input type="text" placeholder="{% trans 'Filter' %}" /></th>
|
<th><input type="text" placeholder="{% trans 'Filter' %}" /></th>
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
<th><input type="text" placeholder="{% trans 'Filter' %}" /></th>
|
<th><input type="text" placeholder="{% trans 'Filter' %}" /></th>
|
||||||
<th><input type="text" placeholder="{% trans 'Filter' %}" /></th>
|
<th><input type="text" placeholder="{% trans 'Filter' %}" /></th>
|
||||||
<th><input type="text" placeholder="{% trans 'Filter' %}" /></th>
|
<th><input type="text" placeholder="{% trans 'Filter' %}" /></th>
|
||||||
<th><input type="text" placeholder="{% trans 'Filter' %} ({% trans 'Grün' %}/{% trans 'Rot' %})" /></th>
|
<th><input type="text" placeholder="{% trans 'Filter' %} ({% trans 'Grün' %}/{% trans 'Rot' %}/{% trans 'Grau' %}/%)" /></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
<td data-order="{{ participant.paid }} {{ event.charge|floatformat:'-2' }}"
|
<td data-order="{{ participant.paid }} {{ event.charge|floatformat:'-2' }}"
|
||||||
data-search="{% if participant.paid %}{% trans 'Grün' %}{% else %}{% trans 'Rot' %}{% endif %} {{ event.charge|floatformat:'-2' }}">
|
data-search="{% if not event.charge %}{% trans 'Grau' %}{% elif participant.paid %}{% trans 'Grün' %}{% else %}{% trans 'Rot' %}{% endif %} {% if participant.apply_reduced_fee %}%{% endif %} {{ event.charge|floatformat:'-2' }}">
|
||||||
<div class="pull-right">
|
<div class="pull-right">
|
||||||
<a title="{{ participant.email_address}}" href="mailto:{{ participant.email_address}}">{% bootstrap_icon 'envelope' %}</a>
|
<a title="{{ participant.email_address}}" href="mailto:{{ participant.email_address}}">{% bootstrap_icon 'envelope' %}</a>
|
||||||
<span class="text-info" title="{{ participant.get_info }}
|
<span class="text-info" title="{{ participant.get_info }}
|
||||||
@@ -72,24 +72,22 @@
|
|||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<input type="hidden" name="id" value="{{ participant.id }}">
|
<input type="hidden" name="id" value="{{ participant.id }}">
|
||||||
{% if event.charge and participant.paid %}
|
{% if event.charge and participant.paid %}
|
||||||
<button name="action" value="revoke_payment"
|
<span class="text-success"><strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong></span><button
|
||||||
title="{% trans 'Geldeingang wurde bestätigt' %} - {% trans 'Bestätigung des Geldeingangs zurückziehen' %}"
|
name="action" value="revoke_payment"
|
||||||
class="btn btn-link no-padding">
|
title="{% trans 'Geldeingang wurde bestätigt' %} - {% trans 'Bestätigung des Geldeingangs zurückziehen' %}"
|
||||||
<span class="text-success">{% bootstrap_icon 'piggy-bank' %}</span>
|
class="btn btn-link no-padding"><span class="text-success">{% bootstrap_icon 'piggy-bank' %}</span></button>
|
||||||
</button>
|
|
||||||
|
|
||||||
({{ event.charge|floatformat:'-2' }} €)
|
({{ event.charge|floatformat:'-2' }}{% if participant.apply_reduced_fee %} / 2{% endif %} €)
|
||||||
{% elif event.charge %}
|
{% elif event.charge %}
|
||||||
<button name="action" value="confirm_payment"
|
<span class="text-danger"><strong>{% if participant.apply_reduced_fee %}%{% elif participant.created_at|date:'U' < '1608764400' %}? {% else %} {% endif %}</strong></span><button
|
||||||
title="{% trans 'Geldeingang bestätigen' %}"
|
name="action" value="confirm_payment"
|
||||||
class="btn btn-link no-padding">
|
title="{% trans 'Geldeingang bestätigen' %}"
|
||||||
<span class="text-danger">{% bootstrap_icon 'piggy-bank' %}</span>
|
class="btn btn-link no-padding"><span class="text-danger">{% bootstrap_icon 'piggy-bank' %}</span></button>
|
||||||
</button>
|
|
||||||
|
|
||||||
({{ event.charge|floatformat:'-2' }} €)
|
({{ 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="text-muted" title="{% trans 'Keine Teilnehmergebühr gefordert' %}">
|
||||||
{% bootstrap_icon 'piggy-bank' %}
|
<strong> </strong>{% bootstrap_icon 'piggy-bank' %}
|
||||||
</span>
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
25
dav_events/migrations/0038_auto_20201209_1542.py
Normal file
25
dav_events/migrations/0038_auto_20201209_1542.py
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.11.29 on 2020-12-09 14:42
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('dav_events', '0037_auto_20201209_1327'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='participant',
|
||||||
|
name='apply_reduced_fee',
|
||||||
|
field=models.BooleanField(default=False, verbose_name='Antrag auf reduzierte Teilnahmegebühr'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='trashedparticipant',
|
||||||
|
name='apply_reduced_fee',
|
||||||
|
field=models.BooleanField(default=False, verbose_name='Antrag auf reduzierte Teilnahmegebühr'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -28,7 +28,15 @@ class AbstractParticipant(models.Model):
|
|||||||
email_address = models.EmailField(verbose_name=_('E-Mail-Adresse'))
|
email_address = models.EmailField(verbose_name=_('E-Mail-Adresse'))
|
||||||
phone_number = models.CharField(max_length=254,
|
phone_number = models.CharField(max_length=254,
|
||||||
verbose_name=_('Telefonnummer'))
|
verbose_name=_('Telefonnummer'))
|
||||||
year_of_birth = models.IntegerField(verbose_name=_('Geburtsjahr'))
|
year_of_birth = models.IntegerField(verbose_name=_('Geburtsjahr'),
|
||||||
|
help_text=_('Vierstellige Jahreszahl'))
|
||||||
|
apply_reduced_fee = models.BooleanField(default=False,
|
||||||
|
verbose_name=_('Antrag auf reduzierte Teilnahmegebühr'),
|
||||||
|
help_text=_('Für Jugendliche und Junioren'
|
||||||
|
' (bis zum vollendeten 25. Lebensjahr),'
|
||||||
|
' sowie Mitglieder mit geringen finanziellen Mitteln'
|
||||||
|
' (Nachweis durch "Karlsruher Pass"),'
|
||||||
|
' wird die Teilnahmegebühr auf 50% ermäßigt.'))
|
||||||
dav_member = models.BooleanField(default=True,
|
dav_member = models.BooleanField(default=True,
|
||||||
verbose_name=_('DAV Mitglied'),
|
verbose_name=_('DAV Mitglied'),
|
||||||
help_text=_('In Ausnahmefällen nehmen wir auch Nichtmitglieder mit.'))
|
help_text=_('In Ausnahmefällen nehmen wir auch Nichtmitglieder mit.'))
|
||||||
@@ -69,6 +77,7 @@ class AbstractParticipant(models.Model):
|
|||||||
|
|
||||||
DAV Mitglied: {dav_info}
|
DAV Mitglied: {dav_info}
|
||||||
Jahrgang: {year_of_birth} (ungefähres Alter: {approx_age})
|
Jahrgang: {year_of_birth} (ungefähres Alter: {approx_age})
|
||||||
|
Antrag auf reduzierte Teilnehmergebühr: {apply_reduced_fee_yesno}
|
||||||
|
|
||||||
Notfallkontakt:
|
Notfallkontakt:
|
||||||
{emergency_contact}
|
{emergency_contact}
|
||||||
@@ -81,6 +90,11 @@ class AbstractParticipant(models.Model):
|
|||||||
else:
|
else:
|
||||||
dav_info = self.dav_number
|
dav_info = self.dav_number
|
||||||
|
|
||||||
|
if self.apply_reduced_fee:
|
||||||
|
apply_reduced_fee_yesno = _('Ja')
|
||||||
|
else:
|
||||||
|
apply_reduced_fee_yesno = _('Nein')
|
||||||
|
|
||||||
return text.format(
|
return text.format(
|
||||||
fullname=self.get_full_name(),
|
fullname=self.get_full_name(),
|
||||||
address=self.address,
|
address=self.address,
|
||||||
@@ -89,6 +103,7 @@ class AbstractParticipant(models.Model):
|
|||||||
dav_info=dav_info,
|
dav_info=dav_info,
|
||||||
year_of_birth=self.year_of_birth,
|
year_of_birth=self.year_of_birth,
|
||||||
approx_age=self.approx_age(),
|
approx_age=self.approx_age(),
|
||||||
|
apply_reduced_fee_yesno=apply_reduced_fee_yesno,
|
||||||
emergency_contact=self.emergency_contact,
|
emergency_contact=self.emergency_contact,
|
||||||
note=self.note,
|
note=self.note,
|
||||||
)
|
)
|
||||||
@@ -96,7 +111,8 @@ class AbstractParticipant(models.Model):
|
|||||||
def get_data_dict(self):
|
def get_data_dict(self):
|
||||||
data = {}
|
data = {}
|
||||||
for field in self._meta.fields:
|
for field in self._meta.fields:
|
||||||
data[field.name] = getattr(self, field.name)
|
if not field.primary_key:
|
||||||
|
data[field.name] = getattr(self, field.name)
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def clean(self):
|
def clean(self):
|
||||||
|
|||||||
@@ -295,6 +295,12 @@ Das musst du selbst (per E-Mail oder telefonisch) machen.
|
|||||||
<span title="{{ registration.get_info }}">
|
<span title="{{ registration.get_info }}">
|
||||||
{% bootstrap_icon 'info-sign' %}
|
{% bootstrap_icon 'info-sign' %}
|
||||||
</span>
|
</span>
|
||||||
|
{% if registration.apply_reduced_fee %}
|
||||||
|
|
||||||
|
<span class="text-info">
|
||||||
|
<strong>%</strong>{% bootstrap_icon 'piggy-bank' %} (reduzierte Gebühr)
|
||||||
|
</span>
|
||||||
|
{% endif %}
|
||||||
</form>
|
</form>
|
||||||
{% empty %}
|
{% empty %}
|
||||||
{% trans 'Keine unbearbeiteten Anmeldungen vorhanden' %}
|
{% trans 'Keine unbearbeiteten Anmeldungen vorhanden' %}
|
||||||
@@ -386,31 +392,29 @@ 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 %}
|
||||||
|
|
||||||
<button name="action" value="revoke_payment"
|
<span class="text-success"><strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong></span><button
|
||||||
title="{% trans 'Geldeingang wurde bestätigt' %} - {% trans 'Bestätigung des Geldeingangs zurückziehen' %}"
|
name="action" value="revoke_payment"
|
||||||
class="btn btn-link no-padding">
|
title="{% trans 'Geldeingang wurde bestätigt' %} - {% trans 'Bestätigung des Geldeingangs zurückziehen' %}"
|
||||||
<span class="text-success">{% bootstrap_icon 'piggy-bank' %}</span>
|
class="btn btn-link no-padding"><span class="text-success">{% bootstrap_icon 'piggy-bank' %}</span></button>
|
||||||
</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" title="{% trans 'Geldeingang bestätigt' %}">
|
||||||
{% bootstrap_icon 'piggy-bank' %}
|
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
||||||
</span>
|
</span>
|
||||||
{% elif event.charge and has_permission_payment %}
|
{% elif event.charge and has_permission_payment %}
|
||||||
|
|
||||||
<button name="action" value="confirm_payment"
|
<span class="text-danger"><strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong></span><button
|
||||||
title="{% trans 'Geldeingang bestätigen' %}"
|
name="action" value="confirm_payment"
|
||||||
class="btn btn-link no-padding">
|
title="{% trans 'Geldeingang bestätigen' %}"
|
||||||
<span class="text-danger">{% bootstrap_icon 'piggy-bank' %}</span>
|
class="btn btn-link no-padding"><span class="text-danger">{% bootstrap_icon 'piggy-bank' %}</span></button>
|
||||||
</button>
|
|
||||||
{% elif event.charge %}
|
{% elif event.charge %}
|
||||||
|
|
||||||
<span class="text-danger" title="{% trans 'Geldeingang unbestätigt' %}">
|
<span class="text-danger" title="{% trans 'Geldeingang unbestätigt' %}">
|
||||||
{% bootstrap_icon 'piggy-bank' %}
|
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
||||||
</span>
|
</span>
|
||||||
{% else %}
|
{% else %}
|
||||||
<span class="hidden" title="{% trans 'Keine Teilnehmergebühr gefordert' %}">
|
<span class="hidden" title="{% trans 'Keine Teilnehmergebühr gefordert' %}">
|
||||||
{% bootstrap_icon 'piggy-bank' %}
|
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
||||||
</span>
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</form>
|
</form>
|
||||||
@@ -577,12 +581,12 @@ von Position {{ participant.position }} der Teilnehmerliste entfernt.
|
|||||||
{% 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" title="{% trans 'Geldeingang bestätigt' %}">
|
||||||
{% bootstrap_icon 'piggy-bank' %}
|
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
||||||
</span>
|
</span>
|
||||||
{% elif event.charge %}
|
{% elif event.charge %}
|
||||||
|
|
||||||
<span class="text-danger" title="{% trans 'Geldeingang unbestätigt' %}">
|
<span class="text-danger" title="{% trans 'Geldeingang unbestätigt' %}">
|
||||||
{% bootstrap_icon 'piggy-bank' %}
|
<strong>{% if participant.apply_reduced_fee %}%{% else %} {% endif %}</strong>{% bootstrap_icon 'piggy-bank' %}
|
||||||
</span>
|
</span>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</span>
|
</span>
|
||||||
|
|||||||
@@ -21,15 +21,20 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-6">
|
||||||
{% bootstrap_field form.email_address %}
|
{% bootstrap_field form.email_address %}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-6">
|
||||||
{% bootstrap_field form.phone_number %}
|
{% bootstrap_field form.phone_number %}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-4">
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-3">
|
||||||
{% bootstrap_field form.year_of_birth %}
|
{% bootstrap_field form.year_of_birth %}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
{% bootstrap_field form.apply_reduced_fee %}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-3">
|
<div class="col-sm-3">
|
||||||
|
|||||||
@@ -285,6 +285,7 @@ class EventRegistrationsView(EventPermissionMixin, generic.DetailView):
|
|||||||
'city': registration.city,
|
'city': registration.city,
|
||||||
'email_address': registration.email_address,
|
'email_address': registration.email_address,
|
||||||
'year_of_birth': registration.year_of_birth,
|
'year_of_birth': registration.year_of_birth,
|
||||||
|
'apply_reduced_fee': registration.apply_reduced_fee,
|
||||||
'phone_number': registration.phone_number,
|
'phone_number': registration.phone_number,
|
||||||
'dav_member': registration.dav_member,
|
'dav_member': registration.dav_member,
|
||||||
'dav_number': registration.dav_number,
|
'dav_number': registration.dav_number,
|
||||||
|
|||||||
@@ -25,6 +25,9 @@ class RegistrationForm(forms.ModelForm):
|
|||||||
'experience': forms.Textarea(attrs={'rows': 5}),
|
'experience': forms.Textarea(attrs={'rows': 5}),
|
||||||
'note': forms.Textarea(attrs={'rows': 5}),
|
'note': forms.Textarea(attrs={'rows': 5}),
|
||||||
}
|
}
|
||||||
|
labels = {
|
||||||
|
'apply_reduced_fee': _('Ich bin noch keine 25 Jahre alt oder besitze einen "Karlsruher Pass".'),
|
||||||
|
}
|
||||||
|
|
||||||
def clean_year_of_birth(self):
|
def clean_year_of_birth(self):
|
||||||
now = datetime.datetime.now()
|
now = datetime.datetime.now()
|
||||||
|
|||||||
@@ -0,0 +1,20 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.11.29 on 2020-12-09 14:16
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('dav_registration', '0009_registration_year_of_birth'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='registration',
|
||||||
|
name='apply_reduced_fee',
|
||||||
|
field=models.BooleanField(default=False, help_text='Für Jugendliche und Junioren (bis zum vollendeten 25. Lebensjahr), sowie Mitglieder mit geringen finanziellen Mitteln (Nachweis durch "Karlsruher Pass"), wird die Teilnahmegebühr auf 50% ermäßigt.', verbose_name='Antrag auf reduzierte Teilnahmegebühr'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -46,6 +46,14 @@ class Registration(models.Model):
|
|||||||
' Darum brauchen wir die vierstellige Jahreszahl,'
|
' Darum brauchen wir die vierstellige Jahreszahl,'
|
||||||
' des Jahres in dem du geboren bist (zb. 1991).'))
|
' des Jahres in dem du geboren bist (zb. 1991).'))
|
||||||
|
|
||||||
|
apply_reduced_fee = models.BooleanField(default=False,
|
||||||
|
verbose_name=_('Antrag auf reduzierte Teilnahmegebühr'),
|
||||||
|
help_text=_('Für Jugendliche und Junioren'
|
||||||
|
' (bis zum vollendeten 25. Lebensjahr),'
|
||||||
|
' sowie Mitglieder mit geringen finanziellen Mitteln'
|
||||||
|
' (Nachweis durch "Karlsruher Pass"),'
|
||||||
|
' wird die Teilnahmegebühr auf 50% ermäßigt.'))
|
||||||
|
|
||||||
dav_member = models.BooleanField(default=True,
|
dav_member = models.BooleanField(default=True,
|
||||||
verbose_name=_('DAV Mitglied'))
|
verbose_name=_('DAV Mitglied'))
|
||||||
dav_number = models.CharField(max_length=62,
|
dav_number = models.CharField(max_length=62,
|
||||||
@@ -125,6 +133,7 @@ class Registration(models.Model):
|
|||||||
|
|
||||||
DAV Mitglied: {dav_info}
|
DAV Mitglied: {dav_info}
|
||||||
Jahrgang: {year_of_birth} (ungefähres Alter: {approx_age})
|
Jahrgang: {year_of_birth} (ungefähres Alter: {approx_age})
|
||||||
|
Antrag auf reduzierte Teilnehmergebühr: {apply_reduced_fee_yesno}
|
||||||
|
|
||||||
Erfahrung:
|
Erfahrung:
|
||||||
{experience}
|
{experience}
|
||||||
@@ -137,6 +146,11 @@ Anmerkung:
|
|||||||
else:
|
else:
|
||||||
dav_info = self.dav_number
|
dav_info = self.dav_number
|
||||||
|
|
||||||
|
if self.apply_reduced_fee:
|
||||||
|
apply_reduced_fee_yesno = _('Ja')
|
||||||
|
else:
|
||||||
|
apply_reduced_fee_yesno = _('Nein')
|
||||||
|
|
||||||
return text.format(
|
return text.format(
|
||||||
fullname=self.get_full_name(),
|
fullname=self.get_full_name(),
|
||||||
address=self.address,
|
address=self.address,
|
||||||
@@ -145,6 +159,7 @@ Anmerkung:
|
|||||||
dav_info=dav_info,
|
dav_info=dav_info,
|
||||||
year_of_birth=self.year_of_birth,
|
year_of_birth=self.year_of_birth,
|
||||||
approx_age=self.approx_age(),
|
approx_age=self.approx_age(),
|
||||||
|
apply_reduced_fee_yesno=apply_reduced_fee_yesno,
|
||||||
experience=self.experience,
|
experience=self.experience,
|
||||||
note=self.note,
|
note=self.note,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ Personendaten
|
|||||||
Telefon: {{ registration.phone_number }}
|
Telefon: {{ registration.phone_number }}
|
||||||
E-Mail: {{ registration.email_address }}
|
E-Mail: {{ registration.email_address }}
|
||||||
Jahrgang: {{ registration.year_of_birth }}
|
Jahrgang: {{ registration.year_of_birth }}
|
||||||
|
Antrag auf reduzierte Teilnahmegebühr: {% if registration.apply_reduced_fee %}Ja{% else %}Nein{% endif %}
|
||||||
{% if registration.dav_member %}DAV Mitgliedsnummer: {{ registration.dav_number }}{% else %}DAV Mitglied: Nein{% endif %}
|
{% if registration.dav_member %}DAV Mitgliedsnummer: {{ registration.dav_number }}{% else %}DAV Mitglied: Nein{% endif %}
|
||||||
|
|
||||||
Notfall-Kontakt
|
Notfall-Kontakt
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ Teilnehmer*in:
|
|||||||
{{ registration.phone_number }}
|
{{ registration.phone_number }}
|
||||||
{{ registration.email_address }}
|
{{ registration.email_address }}
|
||||||
{% if registration.dav_member %}{{ registration.dav_number }}{% else %}Nicht DAV Mitglied{% endif %}
|
{% if registration.dav_member %}{{ registration.dav_number }}{% else %}Nicht DAV Mitglied{% endif %}
|
||||||
|
Antrag auf reduzierte Teilnahmegebühr: {% if registration.apply_reduced_fee %}Ja{% else %}Nein{% endif %}
|
||||||
|
|
||||||
Notfall-Kontakt:
|
Notfall-Kontakt:
|
||||||
{% if registration.emergency_contact %}{{ registration.emergency_contact }}{% else %}-{% endif %}
|
{% if registration.emergency_contact %}{{ registration.emergency_contact }}{% else %}-{% endif %}
|
||||||
|
|||||||
@@ -32,8 +32,19 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function year_of_birth_handler() {
|
||||||
|
var junior_age = 25
|
||||||
|
var year_now = new Date().getFullYear()
|
||||||
|
var year_of_birth = parseInt($("#id_year_of_birth").val());
|
||||||
|
if(year_of_birth > (year_now - junior_age)) {
|
||||||
|
$("#id_apply_reduced_fee").prop('checked', true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
init_not_dav_member_handler();
|
init_not_dav_member_handler();
|
||||||
|
var e = $("#id_year_of_birth");
|
||||||
|
e.change(function(){ year_of_birth_handler(); });
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endblock head-additional %}
|
{% endblock head-additional %}
|
||||||
@@ -74,10 +85,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-3">
|
||||||
{% bootstrap_field form.postal_code %}
|
{% bootstrap_field form.postal_code %}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-9">
|
||||||
{% bootstrap_field form.city %}
|
{% bootstrap_field form.city %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -93,6 +104,12 @@
|
|||||||
<div class="col-sm-3">
|
<div class="col-sm-3">
|
||||||
{% bootstrap_field form.year_of_birth %}
|
{% bootstrap_field form.year_of_birth %}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-sm-9">
|
||||||
|
<strong>Antrag auf reduzierte Teilnahmegebühr</strong>
|
||||||
|
{% bootstrap_field form.apply_reduced_fee %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
<div class="col-sm-3">
|
<div class="col-sm-3">
|
||||||
{% bootstrap_field form.dav_number %}
|
{% bootstrap_field form.dav_number %}
|
||||||
</div>
|
</div>
|
||||||
@@ -100,11 +117,6 @@
|
|||||||
<strong>Nichtmitglieder</strong>
|
<strong>Nichtmitglieder</strong>
|
||||||
{% bootstrap_field form.not_dav_member %}
|
{% bootstrap_field form.not_dav_member %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<span class="hidden">Antrag auf reduzierten Teilnehmerbeitrag</span>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
{% bootstrap_field form.emergency_contact %}
|
{% bootstrap_field form.emergency_contact %}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user