OpenSlides/openslides/core/signals.py
Norman Jäckel 3a19218bd5 Refactored parts of users app.
Refactored user creation and update via REST API. Used new serializer.
Cleaned up management commands, signals and imports. Moved code from 'api.py' to 'models.py'.
Changed usage of group 'Registered'. Now the users don't have to be members to gain its permissions. Used customized auth backend for this.
Added and changed some tests.
2015-02-14 02:29:53 +01:00

152 lines
5.7 KiB
Python

from django import forms
from django.dispatch import Signal
from django.utils.translation import ugettext as _
from django.utils.translation import ugettext_lazy, ugettext_noop
from openslides.config.api import ConfigGroup, ConfigGroupedCollection, ConfigVariable
# This signal is sent when the migrate command is done. That means it is sent
# after post_migrate sending and creating all Permission objects. Don't use it
# for other things than dealing with Permission objects.
post_permission_creation = Signal()
def setup_general_config(sender, **kwargs):
"""
Receiver function to setup general config variables for OpenSlides.
They are grouped in 'Event', 'Welcome Widget' and 'System'. The
function is connected to the signal
openslides.config.signals.config_signal during app loading.
"""
event_name = ConfigVariable(
name='event_name',
default_value='OpenSlides',
form_field=forms.CharField(
widget=forms.TextInput(),
label=ugettext_lazy('Event name'),
max_length=50))
event_description = ConfigVariable(
name='event_description',
default_value=_('Presentation and assembly system'),
translatable=True,
form_field=forms.CharField(
widget=forms.TextInput(),
label=ugettext_lazy('Short description of event'),
required=False,
max_length=100))
event_date = ConfigVariable(
name='event_date',
default_value='',
form_field=forms.CharField(
widget=forms.TextInput(),
label=ugettext_lazy('Event date'),
required=False))
event_location = ConfigVariable(
name='event_location',
default_value='',
form_field=forms.CharField(
widget=forms.TextInput(),
label=ugettext_lazy('Event location'),
required=False))
event_organizer = ConfigVariable(
name='event_organizer',
default_value='',
form_field=forms.CharField(
widget=forms.TextInput(),
label=ugettext_lazy('Event organizer'),
required=False))
projector_enable_logo = ConfigVariable(
name='projector_enable_logo',
default_value=True,
form_field=forms.BooleanField(
label=ugettext_lazy('Show logo on projector'),
help_text=ugettext_lazy('You can find and replace the logo under "openslides/projector/static/img/logo-projector.png".'),
required=False))
projector_enable_title = ConfigVariable(
name='projector_enable_title',
default_value=True,
form_field=forms.BooleanField(
label=ugettext_lazy('Show title and description of event on projector'),
required=False))
projector_backgroundcolor1 = ConfigVariable(
name='projector_backgroundcolor1',
default_value='#444444',
form_field=forms.CharField(
widget=forms.TextInput(),
label=ugettext_lazy('Background color of projector header'),
help_text=ugettext_lazy('Use web color names like "red" or hex numbers like "#ff0000".'),
required=True))
projector_backgroundcolor2 = ConfigVariable(
name='projector_backgroundcolor2',
default_value='#222222',
form_field=forms.CharField(
widget=forms.TextInput(),
label=ugettext_lazy('Second (optional) background color for linear color gradient'),
help_text=ugettext_lazy('Use web color names like "red" or hex numbers like "#ff0000".'),
required=False))
projector_fontcolor = ConfigVariable(
name='projector_fontcolor',
default_value='#F5F5F5',
form_field=forms.CharField(
widget=forms.TextInput(),
label=ugettext_lazy('Font color of projector header'),
help_text=ugettext_lazy('Use web color names like "red" or hex numbers like "#ff0000".'),
required=True))
welcome_title = ConfigVariable(
name='welcome_title',
default_value=_('Welcome to OpenSlides'),
translatable=True,
form_field=forms.CharField(
widget=forms.TextInput(),
label=ugettext_lazy('Title'),
help_text=ugettext_lazy('Also used for the default welcome slide.'),
required=False))
welcome_text = ConfigVariable(
name='welcome_text',
default_value=_('[Place for your welcome text.]'),
translatable=True,
form_field=forms.CharField(
widget=forms.Textarea(),
label=ugettext_lazy('Welcome text'),
required=False))
system_enable_anonymous = ConfigVariable(
name='system_enable_anonymous',
default_value=False,
form_field=forms.BooleanField(
label=ugettext_lazy('Allow access for anonymous guest users'),
required=False))
group_event = ConfigGroup(
title=ugettext_lazy('Event'),
variables=(event_name, event_description, event_date, event_location, event_organizer))
group_projector = ConfigGroup(
title=ugettext_lazy('Projector'),
variables=(projector_enable_logo, projector_enable_title, projector_backgroundcolor1, projector_backgroundcolor2, projector_fontcolor))
group_welcome_widget = ConfigGroup(
title=ugettext_lazy('Welcome Widget'),
variables=(welcome_title, welcome_text))
group_system = ConfigGroup(
title=ugettext_lazy('System'),
variables=(system_enable_anonymous,))
return ConfigGroupedCollection(
title=ugettext_noop('General'),
url='general',
weight=10,
groups=(group_event, group_projector, group_welcome_widget, group_system))