MIGRATION: dav_registration: try to incoorporate feedback from trainers
This commit is contained in:
@@ -310,6 +310,10 @@ class Event(models.Model):
|
|||||||
logger.info('Event updated: %s', self)
|
logger.info('Event updated: %s', self)
|
||||||
signals.event_updated.send(sender=self.__class__, event=self, diff=diff_lines, user=self.editor)
|
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):
|
def get_number(self):
|
||||||
return self.workflow.get_number()
|
return self.workflow.get_number()
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import logging
|
import logging
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.utils.translation import ugettext, ugettext_lazy as _
|
from django.utils.translation import ugettext
|
||||||
|
|
||||||
from .models import Registration
|
from .models import Registration
|
||||||
|
|
||||||
@@ -37,7 +37,7 @@ class RegistrationForm(forms.ModelForm):
|
|||||||
if not val and self.instance.privacy_policy:
|
if not val and self.instance.privacy_policy:
|
||||||
raise forms.ValidationError(
|
raise forms.ValidationError(
|
||||||
ugettext(u'Wir müssen deine Daten leider speichern können,'
|
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',
|
code='privacy_policy_not_accepted',
|
||||||
)
|
)
|
||||||
return val
|
return val
|
||||||
|
|||||||
27
dav_registration/migrations/0002_auto_20190401_1310.py
Normal file
27
dav_registration/migrations/0002_auto_20190401_1310.py
Normal file
@@ -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.<br /> Beispiel: <tt>131/00/012345</tt> (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),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
import datetime
|
import datetime
|
||||||
import logging
|
import logging
|
||||||
|
import uuid
|
||||||
from django.db import models
|
from django.db import models
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
@@ -21,6 +22,7 @@ one_day = datetime.timedelta(1)
|
|||||||
|
|
||||||
@python_2_unicode_compatible
|
@python_2_unicode_compatible
|
||||||
class Registration(models.Model):
|
class Registration(models.Model):
|
||||||
|
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
||||||
event = models.ForeignKey(Event, related_name='registrations')
|
event = models.ForeignKey(Event, related_name='registrations')
|
||||||
created_at = models.DateTimeField(auto_now_add=True)
|
created_at = models.DateTimeField(auto_now_add=True)
|
||||||
|
|
||||||
@@ -108,7 +110,7 @@ class Registration(models.Model):
|
|||||||
elif event.last_day:
|
elif event.last_day:
|
||||||
last_day = event.last_day
|
last_day = event.last_day
|
||||||
elif event.alt_first_day:
|
elif event.alt_first_day:
|
||||||
last_day = event.alt_fisrt_day
|
last_day = event.alt_first_day
|
||||||
else:
|
else:
|
||||||
last_day = event.first_day
|
last_day = event.first_day
|
||||||
return timezone.make_aware(datetime.datetime.combine(last_day + one_day * 7, midnight))
|
return timezone.make_aware(datetime.datetime.combine(last_day + one_day * 7, midnight))
|
||||||
|
|||||||
@@ -98,7 +98,11 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
<br />
|
<br />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if event.registration_required and event.deadline %}<strong>{% trans 'Anmeldeschluss' %}:</strong> {{ event.deadline|date:'l, d. F Y' }}<br />{% endif %}
|
{% if event.registration_required and event.deadline %}
|
||||||
|
{% if event.is_deadline_expired %}<span class="text-danger">{% endif %}
|
||||||
|
<strong>{% trans 'Anmeldeschluss' %}:</strong> {{ event.deadline|date:'l, d. F Y' }}<br />
|
||||||
|
{% if event.is_deadline_expired %}</span>{% endif %}
|
||||||
|
{% endif %}
|
||||||
{% if event.trainer_2_fullname %}
|
{% if event.trainer_2_fullname %}
|
||||||
{% if event.mode == 'training' %}
|
{% if event.mode == 'training' %}
|
||||||
<strong>{% trans 'Ausbildungsteam' %}:</strong>
|
<strong>{% trans 'Ausbildungsteam' %}:</strong>
|
||||||
|
|||||||
@@ -4,6 +4,17 @@
|
|||||||
|
|
||||||
{% block head-title %}{{ event.number }} - {{ block.super }}{% endblock head-title %}
|
{% block head-title %}{{ event.number }} - {{ block.super }}{% endblock head-title %}
|
||||||
|
|
||||||
|
{% block messages %}
|
||||||
|
{% if event.is_deadline_expired %}
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="alert alert-danger">
|
||||||
|
Der Anmeldeschluss ist bereits abgelaufen!<br />
|
||||||
|
Eine Anmeldung ist nicht mehr möglich.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% endblock messages %}
|
||||||
|
|
||||||
{% block page-container-fluid %}
|
{% block page-container-fluid %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
@@ -26,7 +37,17 @@
|
|||||||
{% render_event_facts event %}
|
{% render_event_facts event %}
|
||||||
</li>
|
</li>
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
<a class="btn btn-primary" href="{% url 'dav_registration:register' event.pk %}">{% trans 'Anmelden' %}</a>
|
{% if not event.registration_required %}
|
||||||
|
<div class="alert alert-info">
|
||||||
|
{% blocktrans %}
|
||||||
|
Zu dieser Veranstaltung ist keine Anmeldung notwendig.<br />
|
||||||
|
Du kannst das Anmeldeformular natürlich trotzdem ausfüllen.
|
||||||
|
{% endblocktrans %}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% if not event.is_deadline_expired %}
|
||||||
|
<a class="btn btn-primary" href="{% url 'dav_registration:register' event.pk %}">{% trans 'Anmeldung' %}</a>
|
||||||
|
{% endif %}
|
||||||
<a class="btn btn-danger" href="{% url 'dav_registration:events' %}">{% trans 'Zurück' %}</a>
|
<a class="btn btn-danger" href="{% url 'dav_registration:events' %}">{% trans 'Zurück' %}</a>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{% block page-container-fluid %}
|
{% block page-container-fluid %}
|
||||||
<div>
|
<div>
|
||||||
<h3 class="top-most">Touren & Kurse</h3>
|
<h3 class="top-most">{% trans 'Touren & Kurse' %}</h3>
|
||||||
<table id="objects_table" class="table table-bordered table-hover">
|
<table id="objects_table" class="table table-bordered table-hover">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@@ -24,7 +24,12 @@
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="pull-right" style="margin-left: 1em;">
|
<div class="pull-right" style="margin-left: 1em;">
|
||||||
<a class="btn btn-primary" href="{% url 'dav_registration:event' event.pk %}">Details & Anmeldung</a>
|
{% if event.is_deadline_expired %}
|
||||||
|
<span class="text-danger"><span class="glyphicon glyphicon-exclamation-sign"></span></span>
|
||||||
|
<span class="text-danger">{% trans 'Anmeldeschluss abgelaufen' %}</span>
|
||||||
|
{% else %}
|
||||||
|
<a class="btn btn-primary" href="{% url 'dav_registration:event' event.pk %}">{% trans 'Details & Anmeldung' %}</a>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="pull-left" style="margin-right: 12px;">
|
<div class="pull-left" style="margin-right: 12px;">
|
||||||
{% with event.sport as sport %}
|
{% with event.sport as sport %}
|
||||||
@@ -53,9 +58,11 @@
|
|||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
{% render_event_facts event %}
|
{% render_event_facts event %}
|
||||||
</li>
|
</li>
|
||||||
|
{% if not event.is_deadline_expired %}
|
||||||
<li class="list-group-item">
|
<li class="list-group-item">
|
||||||
<a class="btn btn-primary" href="{% url 'dav_registration:event' event.pk %}">zur Anmeldung</a>
|
<a class="btn btn-primary" href="{% url 'dav_registration:event' event.pk %}">{% trans 'zur Anmeldung' %}</a>
|
||||||
</li>
|
</li>
|
||||||
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ class EventListView(generic.ListView):
|
|||||||
'published', 'published_web', 'published_facebook'))
|
'published', 'published_web', 'published_facebook'))
|
||||||
filter &= Q(planned_publication_date__isnull=True) | Q(planned_publication_date__lte=today)
|
filter &= Q(planned_publication_date__isnull=True) | Q(planned_publication_date__lte=today)
|
||||||
filter &= Q(first_day__gte=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()
|
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'))
|
'published', 'published_web', 'published_facebook'))
|
||||||
filter &= Q(planned_publication_date__isnull=True) | Q(planned_publication_date__lte=today)
|
filter &= Q(planned_publication_date__isnull=True) | Q(planned_publication_date__lte=today)
|
||||||
filter &= Q(first_day__gte=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()
|
qs = self.model.objects.filter(filter).distinct()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user