2221b23447
Removed the config cache and created files for each app in which the config variables are defined.
89 lines
3.2 KiB
Python
89 lines
3.2 KiB
Python
from datetime import datetime
|
|
|
|
from django.core.exceptions import ValidationError as DjangoValidationError
|
|
from django.core.validators import MaxLengthValidator, MinValueValidator
|
|
from django.utils.translation import ugettext as _
|
|
from django.utils.translation import ugettext_lazy
|
|
|
|
from openslides.core.config import ConfigVariable
|
|
|
|
|
|
def validate_start_time(value):
|
|
try:
|
|
datetime.strptime(value, '%d.%m.%Y %H:%M')
|
|
except ValueError:
|
|
raise DjangoValidationError(_('Invalid input.'))
|
|
|
|
|
|
def get_config_variables():
|
|
"""
|
|
Generator which yields all config variables of this app.
|
|
|
|
It has to be evaluated during app loading (see apps.py).
|
|
"""
|
|
yield ConfigVariable(
|
|
name='agenda_number_prefix',
|
|
default_value='',
|
|
label=ugettext_lazy('Numbering prefix for agenda items'),
|
|
help_text=ugettext_lazy('This prefix will be set if you run the automatic agenda numbering.'),
|
|
weight=210,
|
|
group=ugettext_lazy('Agenda'),
|
|
subgroup=ugettext_lazy('General'),
|
|
validators=(MaxLengthValidator(20),))
|
|
|
|
yield ConfigVariable(
|
|
name='agenda_numeral_system',
|
|
default_value='arabic',
|
|
input_type='choice',
|
|
label=ugettext_lazy('Numeral system for agenda items'),
|
|
choices=(
|
|
{'value': 'arabic', 'display_name': ugettext_lazy('Arabic')},
|
|
{'value': 'roman', 'display_name': ugettext_lazy('Roman')}),
|
|
weight=215,
|
|
group=ugettext_lazy('Agenda'),
|
|
subgroup=ugettext_lazy('General'))
|
|
|
|
# TODO: Use an input type with generic datetime support.
|
|
yield ConfigVariable(
|
|
name='agenda_start_event_date_time',
|
|
default_value='',
|
|
label=ugettext_lazy('Begin of event'),
|
|
help_text=ugettext_lazy('Input format: DD.MM.YYYY HH:MM'),
|
|
weight=220,
|
|
group=ugettext_lazy('Agenda'),
|
|
subgroup=ugettext_lazy('General'),
|
|
validators=(validate_start_time,))
|
|
|
|
# List of speakers
|
|
|
|
yield ConfigVariable(
|
|
name='agenda_show_last_speakers',
|
|
default_value=1,
|
|
input_type='integer',
|
|
label=ugettext_lazy('Number of last speakers to be shown on the projector'),
|
|
weight=230,
|
|
group=ugettext_lazy('Agenda'),
|
|
subgroup=ugettext_lazy('List of speakers'),
|
|
validators=(MinValueValidator(0),))
|
|
|
|
yield ConfigVariable(
|
|
name='agenda_countdown_warning_time',
|
|
default_value=0,
|
|
input_type='integer',
|
|
label=ugettext_lazy('Show orange countdown in the last x seconds of speaking time'),
|
|
help_text=ugettext_lazy('Enter duration in seconds. Choose 0 to disable warning color.'),
|
|
weight=235,
|
|
group=ugettext_lazy('Agenda'),
|
|
subgroup=ugettext_lazy('List of speakers'),
|
|
validators=(MinValueValidator(0),))
|
|
|
|
yield ConfigVariable(
|
|
name='agenda_couple_countdown_and_speakers',
|
|
default_value=False,
|
|
input_type='boolean',
|
|
label=ugettext_lazy('Couple countdown with the list of speakers'),
|
|
help_text=ugettext_lazy('[Begin speech] starts the countdown, [End speech] stops the countdown.'),
|
|
weight=240,
|
|
group=ugettext_lazy('Agenda'),
|
|
subgroup=ugettext_lazy('List of speakers'))
|