Merge pull request #685 from normanjaeckel/Issue_677

Validator for agenda_start_time aded.
This commit is contained in:
Oskar Hahn 2013-05-31 05:19:16 -07:00
commit 36ff05f977
2 changed files with 20 additions and 0 deletions

View File

@ -10,10 +10,13 @@
:license: GNU GPL, see LICENSE for more details.
"""
from datetime import datetime
from django.dispatch import receiver
from django import forms
from django.utils.translation import ugettext_lazy, ugettext_noop, ugettext as _
from django.template.loader import render_to_string
from django.core.exceptions import ValidationError
from openslides.config.signals import config_signal
from openslides.config.api import config, ConfigVariable, ConfigPage
@ -26,6 +29,13 @@ from openslides.projector.api import (get_active_slide, get_slide_from_sid,
from .models import Speaker, Item
def validate_start_time(value):
try:
datetime.strptime(value, '%d.%m.%Y %H:%M')
except ValueError:
raise ValidationError(_('Invalid input.'))
# TODO: Reinsert the datepicker scripts in the template
@receiver(config_signal, dispatch_uid='setup_agenda_config_page')
@ -38,6 +48,7 @@ def setup_agenda_config_page(sender, **kwargs):
name='agenda_start_event_date_time',
default_value='',
form_field=forms.CharField(
validators=[validate_start_time, ],
widget=forms.DateTimeInput(format='%d.%m.%Y %H:%M'),
required=False,
label=_('Begin of event'),

View File

@ -216,3 +216,12 @@ class ConfigTest(TestCase):
response = self.client.get('/config/agenda/')
self.assertContains(response, 'timepicker.css', status_code=200)
self.assertContains(response, 'jquery-ui-timepicker-addon.min.js', status_code=200)
def test_wrong_input(self):
response = self.client.post(
'/config/agenda/',
{'agenda_start_event_date_time': 'wrong_format',
'agenda_show_last_speakers': '3'})
self.assertFormError(response, form='form',
field='agenda_start_event_date_time',
errors='Invalid input.')