UPD: try to make trainers happy. registration is is now hex coded. made
clear, that attendance is not guaranteed.
This commit is contained in:
@@ -71,16 +71,33 @@ class Registration(models.Model):
|
||||
verbose_name=_('Einwilligung zur Datenspeicherung'))
|
||||
purge_at = models.DateTimeField()
|
||||
|
||||
@staticmethod
|
||||
def pk2hexstr(pk):
|
||||
return hex(pk * 113)[2:] # 113 has no meaning, but it produce nice looking hex codes.
|
||||
|
||||
@staticmethod
|
||||
def hexstr2pk(hexstr):
|
||||
return int('0x' + hexstr, 0) // 113
|
||||
|
||||
@property
|
||||
def hexstr(self):
|
||||
if not self.pk:
|
||||
return None
|
||||
return self.pk2hexstr(self.pk)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _('Anmeldung')
|
||||
verbose_name_plural = _('Anmeldungen')
|
||||
ordering = ['created_at']
|
||||
|
||||
def __str__(self):
|
||||
return '{number} - {name} ({created} - {purge})'.format(number=self.event.get_number(),
|
||||
name=self.get_full_name(),
|
||||
created=self.created_at.strftime('%d.%m.%Y %H:%M'),
|
||||
purge=self.purge_at.strftime('%d.%m.%Y %H:%M'))
|
||||
return '{eventnumber} - {name} ({registration_id} - {created} - {purge})'.format(
|
||||
eventnumber=self.event.get_number(),
|
||||
name=self.get_full_name(),
|
||||
registration_id=self.hexstr,
|
||||
created=self.created_at.strftime('%d.%m.%Y %H:%M'),
|
||||
purge=self.purge_at.strftime('%d.%m.%Y %H:%M')
|
||||
)
|
||||
|
||||
def get_absolute_url(self):
|
||||
return reverse('dav_registration:registered')
|
||||
|
||||
@@ -3,15 +3,17 @@ Hallo {{ registration.get_full_name }},
|
||||
wir haben deine Anmeldung zur Veranstaltung
|
||||
{{ event.number }} - {{ event.title }}
|
||||
an den/die Tourenleiter/in {{ event.get_trainer_full_name }} weitergegeben.
|
||||
{{ event.trainer_firstname }} wird sich bei dir melden und dir mitteilen,
|
||||
ob du teilnehmen kannst oder nicht.
|
||||
|
||||
!!! Diese E-Mail ist noch keine Zusage zur Teilnahme !!!
|
||||
|
||||
{{ event.trainer_firstname }} wird sich bei dir melden und dir zu- oder absagen.
|
||||
|
||||
========================================================================
|
||||
Veranstaltung: {{ event.number }} - {{ event.title }}
|
||||
Datum: {{ event.get_formated_date }}
|
||||
Tourenleitung: {{ event.get_trainer_full_name }}
|
||||
Anmeldezeitpunkt: {{ registration.created_at|date:'l, d. F Y, G:i' }}
|
||||
Referenz-Nr: {{ registration.id }}
|
||||
Vorgang: {{ registration.hexstr }} (wird nur gebraucht, wenn irgendwas schief geht)
|
||||
|
||||
Personendaten
|
||||
-------------
|
||||
|
||||
@@ -4,7 +4,7 @@ Anmeldung zu deiner Veranstaltung
|
||||
{{ event.number }} - {{ event.title }}
|
||||
========================================================================
|
||||
Anmeldezeitpunkt: {{ registration.created_at|date:'l, d. F Y, G:i' }}
|
||||
Referenz-Nr: {{ registration.id }}
|
||||
Vorgang: {{ registration.hexstr }}
|
||||
|
||||
Teilnehmer*in:
|
||||
{{ registration.get_full_name }}
|
||||
|
||||
@@ -10,11 +10,13 @@
|
||||
<p>
|
||||
Du solltest in Kürze eine E-Mail von uns mit deinen Anmeldedaten erhalten.
|
||||
</p>
|
||||
<p>
|
||||
Diese E-Mail gilt <strong>noch nicht als Zusage</strong> zur Teilnahme.
|
||||
<p class="lead">
|
||||
Diese Nachricht gilt <strong>noch nicht als Zusage</strong> zur Teilnahme.
|
||||
</p>
|
||||
<p>
|
||||
Die Tourenleitung wurde über deine Anmeldung informiert und wird sich bei dir melden.
|
||||
Ob du teilnehmen kannst, muss die Tourenleitung entscheiden.
|
||||
Möglicherweise sind bereits alle Teilnehmerplätze vergeben.
|
||||
Der/die Tourenleiter/in wurde über deine Anmeldung informiert und wird sich bei dir melden.
|
||||
</p>
|
||||
</div>
|
||||
{% if object %}
|
||||
@@ -26,9 +28,9 @@
|
||||
<li class="list-group-item">Datum: {{ object.event.get_formated_date }}</li>
|
||||
<li class="list-group-item">Tourenleitung: {{ object.event.get_trainer_full_name }} (<a href="{{ object.event.trainer_email }}">{{ object.event.trainer_email }}</a>)</li>
|
||||
<li class="list-group-item">Anmeldezeitpunkt: {{ object.created_at|date:'l, d. F Y, G:i' }}</li>
|
||||
<li class="list-group-item">Anmeldenummer: {{ object.pk }}</li>
|
||||
<li class="list-group-item">Speicherung bis: {{ object.purge_at|date:'l, d. F Y' }}</li>
|
||||
<li class="list-group-item">Teilnehmer*in: {{ object.get_full_name }} ({{ object.email_address }})</li>
|
||||
<li class="list-group-item">Vorgang: {{ object.hexstr }} <small>(wird nur gebraucht, wenn irgendwas schief geht)</small></li>
|
||||
</ul>
|
||||
</div>
|
||||
{% else %}
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
{% endif %}
|
||||
<div class="checkbox">
|
||||
<label>
|
||||
<input type="checkbox" name="privacy_policy_accepted" {% if form.privacy_policy_accepted.value %}checked="checked"{% endif %}">
|
||||
<input type="checkbox" name="privacy_policy_accepted" {% if form.privacy_policy_accepted.value %}checked="checked"{% endif %}>
|
||||
{% trans 'Ich willige in die oben erläuterte Datenspeicherung ein.' %}
|
||||
</label>
|
||||
</div>
|
||||
@@ -104,6 +104,28 @@
|
||||
</div>
|
||||
{% endblock form-fields-visible %}
|
||||
{% endblock form-fields %}
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<h5>Teilnahmevorbehalt</h5>
|
||||
<div class="well well-sm">
|
||||
<p><small>
|
||||
<strong>
|
||||
Die erfolgreiche Anmeldung bedeutet nicht, dass du auf jeden Fall
|
||||
an der Tour oder dem Kurs teilnehmen kannst.
|
||||
</strong>
|
||||
<br />
|
||||
Bei vielen Veranstaltungen wollen mehr Mitglieder teilnehmen,
|
||||
als der oder die Tourenleiter/innen mitnehmen können.
|
||||
Zudem muss die Tourenleitung erst noch entscheiden, ob du
|
||||
die erforderlichen Anforderungen zur Teilnahme erfüllst
|
||||
(evtl. wird er/sie sich dafür bei dir melden).
|
||||
Die Plätze werden daher nicht unbedingt nach dem first-come-first-serve-Prinzip vergeben.
|
||||
<br/>
|
||||
Der/die Tourenleiter/in wird dir also persönlich per E-Mail zu- oder absagen.
|
||||
</small></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row"> </div>
|
||||
{% block form-buttons %}
|
||||
{% buttons %}
|
||||
|
||||
@@ -16,15 +16,17 @@ MAIL_SELF_TEMPLATE = """Hallo {participant_full_name},
|
||||
wir haben deine Anmeldung zur Veranstaltung
|
||||
{event_number} - {event_title}
|
||||
an den/die Tourenleiter/in {trainer_full_name} weitergegeben.
|
||||
{trainer_first_name} wird sich bei dir melden und dir mitteilen,
|
||||
ob du teilnehmen kannst oder nicht.
|
||||
|
||||
!!! Diese E-Mail ist noch keine Zusage zur Teilnahme !!!
|
||||
|
||||
{trainer_first_name} wird sich bei dir melden und dir zu- oder absagen.
|
||||
|
||||
========================================================================
|
||||
Veranstaltung: {event_number} - {event_title}
|
||||
Datum: {event_formated_date}
|
||||
Tourenleitung: {trainer_full_name}
|
||||
Anmeldezeitpunkt: {registration_at}
|
||||
Referenz-Nr: {registration_id}
|
||||
Vorgang: {registration_hexstr} (wird nur gebraucht, wenn irgendwas schief geht)
|
||||
|
||||
Personendaten
|
||||
-------------
|
||||
@@ -59,7 +61,7 @@ Anmeldung zu deiner Veranstaltung
|
||||
{event_number} - {event_title}
|
||||
========================================================================
|
||||
Anmeldezeitpunkt: {registration_at}
|
||||
Referenz-Nr: {registration_id}
|
||||
Vorgang: {registration_hexstr}
|
||||
|
||||
Teilnehmer*in:
|
||||
{participant_full_name}
|
||||
@@ -128,7 +130,7 @@ class EmailsTestCase(EmailTestMixin, EventMixin, RegistrationMixin, TestCase):
|
||||
event_formated_date=event.get_formated_date(),
|
||||
trainer_full_name=trainer.get_full_name(),
|
||||
trainer_first_name=trainer.first_name,
|
||||
registration_id=registration.id,
|
||||
registration_hexstr=registration.hexstr,
|
||||
registration_at=format_datetime(registration.created_at, 'EEEE, dd. MMMM yyyy, H:mm', locale=locale),
|
||||
purge_at=format_datetime(registration.purge_at, 'EEEE, dd. MMMM yyyy', locale=locale),
|
||||
)
|
||||
@@ -223,7 +225,7 @@ class EmailsTestCase(EmailTestMixin, EventMixin, RegistrationMixin, TestCase):
|
||||
event_title=event.title,
|
||||
event_formated_date=event.get_formated_date(),
|
||||
trainer_first_name=trainer.first_name,
|
||||
registration_id=registration.id,
|
||||
registration_hexstr=registration.hexstr,
|
||||
registration_at=format_datetime(registration.created_at, 'EEEE, dd. MMMM yyyy, H:mm', locale=locale),
|
||||
purge_at=format_datetime(registration.purge_at, 'EEEE, dd. MMMM yyyy', locale=locale),
|
||||
)
|
||||
|
||||
@@ -66,16 +66,7 @@ class RegistrationView(generic.CreateView):
|
||||
model = Registration
|
||||
form_class = RegistrationForm
|
||||
initial = {
|
||||
# 'personal_names': u'Jens',
|
||||
# 'family_names': u'Kleineheismann',
|
||||
# 'address': u'Am Fächerbad 2',
|
||||
# 'postal_code': u'76131',
|
||||
# 'city': u'Karlsruhe',
|
||||
# 'email_address': 'heinzel@alpenverein-karlsruhe.de',
|
||||
# 'note': u'Nur ein Test.',
|
||||
'dav_number': '131/00/',
|
||||
# 'experience': u'Ich kann alles.',
|
||||
# 'privacy_policy_accepted': True,
|
||||
}
|
||||
|
||||
def get_queryset(self):
|
||||
|
||||
Reference in New Issue
Block a user