diff --git a/dav_events/models/event.py b/dav_events/models/event.py index c958885..7467e5f 100644 --- a/dav_events/models/event.py +++ b/dav_events/models/event.py @@ -310,6 +310,10 @@ class Event(models.Model): logger.info('Event updated: %s', self) signals.event_updated.send(sender=self.__class__, event=self, diff=diff_lines, user=self.editor) + def is_deadline_expired(self): + today = datetime.date.today() + return self.deadline and self.deadline < today + def get_number(self): return self.workflow.get_number() diff --git a/dav_registration/forms.py b/dav_registration/forms.py index e890d3b..202e02c 100644 --- a/dav_registration/forms.py +++ b/dav_registration/forms.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- import logging from django import forms -from django.utils.translation import ugettext, ugettext_lazy as _ +from django.utils.translation import ugettext from .models import Registration @@ -37,7 +37,7 @@ class RegistrationForm(forms.ModelForm): if not val and self.instance.privacy_policy: raise forms.ValidationError( ugettext(u'Wir müssen deine Daten leider speichern können,' - u' damit wir wissen, dass du dich angemeldet hast.'), + u' damit wir wissen, dass du teilnehmen möchtest.'), code='privacy_policy_not_accepted', ) return val diff --git a/dav_registration/migrations/0002_auto_20190401_1310.py b/dav_registration/migrations/0002_auto_20190401_1310.py new file mode 100644 index 0000000..25a1263 --- /dev/null +++ b/dav_registration/migrations/0002_auto_20190401_1310.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.20 on 2019-04-01 13:10 +from __future__ import unicode_literals + +import django.core.validators +from django.db import migrations, models +import uuid + + +class Migration(migrations.Migration): + + dependencies = [ + ('dav_registration', '0001_initial'), + ] + + operations = [ + migrations.AlterField( + model_name='registration', + name='dav_number', + field=models.CharField(help_text='Deine Mitgliedsnummer findest du unter dem Strichcode auf deinem DAV Ausweis.
Beispiel: 131/00/012345 (der Teil bis zum ersten * genügt)', max_length=62, validators=[django.core.validators.RegexValidator('^([0-9]{1,10}/[0-9]{2,10}/)?[0-9]{1,10}(\\*[0-9]{1,10})?(\\*[0-9]{4}\\*[0-9]{4})?([* ][0-9]{8})?$', 'Ungültiges Format.')], verbose_name='DAV Mitgliednummer'), + ), + migrations.AlterField( + model_name='registration', + name='id', + field=models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False), + ), + ] diff --git a/dav_registration/models.py b/dav_registration/models.py index 3ba98bf..a4149e2 100644 --- a/dav_registration/models.py +++ b/dav_registration/models.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals import datetime import logging +import uuid from django.db import models from django.urls import reverse from django.utils import timezone @@ -21,6 +22,7 @@ one_day = datetime.timedelta(1) @python_2_unicode_compatible class Registration(models.Model): + id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False) event = models.ForeignKey(Event, related_name='registrations') created_at = models.DateTimeField(auto_now_add=True) @@ -108,7 +110,7 @@ class Registration(models.Model): elif event.last_day: last_day = event.last_day elif event.alt_first_day: - last_day = event.alt_fisrt_day + last_day = event.alt_first_day else: last_day = event.first_day return timezone.make_aware(datetime.datetime.combine(last_day + one_day * 7, midnight)) diff --git a/dav_registration/templates/dav_registration/event/facts.html b/dav_registration/templates/dav_registration/event/facts.html index 2e0bd6a..791fd07 100644 --- a/dav_registration/templates/dav_registration/event/facts.html +++ b/dav_registration/templates/dav_registration/event/facts.html @@ -98,7 +98,11 @@ {% endif %}
{% endif %} -{% if event.registration_required and event.deadline %}{% trans 'Anmeldeschluss' %}: {{ event.deadline|date:'l, d. F Y' }}
{% endif %} +{% if event.registration_required and event.deadline %} +{% if event.is_deadline_expired %}{% endif %} +{% trans 'Anmeldeschluss' %}: {{ event.deadline|date:'l, d. F Y' }}
+{% if event.is_deadline_expired %}
{% endif %} +{% endif %} {% if event.trainer_2_fullname %} {% if event.mode == 'training' %} {% trans 'Ausbildungsteam' %}: diff --git a/dav_registration/templates/dav_registration/event_detail.html b/dav_registration/templates/dav_registration/event_detail.html index fd8f9b6..0787136 100644 --- a/dav_registration/templates/dav_registration/event_detail.html +++ b/dav_registration/templates/dav_registration/event_detail.html @@ -4,6 +4,17 @@ {% block head-title %}{{ event.number }} - {{ block.super }}{% endblock head-title %} +{% block messages %} +{% if event.is_deadline_expired %} +
+
+ Der Anmeldeschluss ist bereits abgelaufen!
+ Eine Anmeldung ist nicht mehr möglich. +
+
+{% endif %} +{% endblock messages %} + {% block page-container-fluid %}
@@ -26,7 +37,17 @@ {% render_event_facts event %}
  • - {% trans 'Anmelden' %} + {% if not event.registration_required %} +
    + {% blocktrans %} + Zu dieser Veranstaltung ist keine Anmeldung notwendig.
    + Du kannst das Anmeldeformular natürlich trotzdem ausfüllen. + {% endblocktrans %} +
    + {% endif %} + {% if not event.is_deadline_expired %} + {% trans 'Anmeldung' %} + {% endif %} {% trans 'Zurück' %}
  • diff --git a/dav_registration/templates/dav_registration/event_list.html b/dav_registration/templates/dav_registration/event_list.html index f49367a..9634d5d 100644 --- a/dav_registration/templates/dav_registration/event_list.html +++ b/dav_registration/templates/dav_registration/event_list.html @@ -5,7 +5,7 @@ {% block page-container-fluid %}
    -

    Touren & Kurse

    +

    {% trans 'Touren & Kurse' %}

    @@ -24,7 +24,12 @@
    - Details & Anmeldung + {% if event.is_deadline_expired %} + + {% trans 'Anmeldeschluss abgelaufen' %} + {% else %} + {% trans 'Details & Anmeldung' %} + {% endif %}
    {% with event.sport as sport %} @@ -53,9 +58,11 @@
  • {% render_event_facts event %}
  • + {% if not event.is_deadline_expired %}
  • - zur Anmeldung + {% trans 'zur Anmeldung' %}
  • + {% endif %}
    diff --git a/dav_registration/views.py b/dav_registration/views.py index d7c4317..a958cd0 100644 --- a/dav_registration/views.py +++ b/dav_registration/views.py @@ -37,7 +37,7 @@ class EventListView(generic.ListView): 'published', 'published_web', 'published_facebook')) filter &= Q(planned_publication_date__isnull=True) | Q(planned_publication_date__lte=today) filter &= Q(first_day__gte=today) - filter &= Q(deadline__isnull=True) | Q(deadline__gte=today) + # filter &= Q(deadline__isnull=True) | Q(deadline__gte=today) qs = self.model.objects.filter(filter).order_by('first_day', 'number').distinct() @@ -55,7 +55,7 @@ class EventDetailView(generic.DetailView): 'published', 'published_web', 'published_facebook')) filter &= Q(planned_publication_date__isnull=True) | Q(planned_publication_date__lte=today) filter &= Q(first_day__gte=today) - filter &= Q(deadline__isnull=True) | Q(deadline__gte=today) + # filter &= Q(deadline__isnull=True) | Q(deadline__gte=today) qs = self.model.objects.filter(filter).distinct()