Ejemplo n.º 1
0
def set_simple_config_collection_disabled_view(sender, **kwargs):
    return ConfigCollection(
        title='Ho5iengaoon5Hoht',
        url='testsimplepage3',
        required_permission='No permission required',
        variables=(ConfigVariable(name='hidden_config_var_2',
                                  default_value=''), ))
Ejemplo n.º 2
0
def setup_projector_config(sender, **kwargs):
    """
    Receiver function to setup all projector config variables. They are not
    shown on a config view. The function is connected to the signal
    openslides.config.signals.config_signal during app loading.
    """
    # The active slide. The config-value is a dictonary with at least the entry
    # 'callback'.
    projector = ConfigVariable(
        name='projector_active_slide',
        default_value={'callback': None})

    projector_message = ConfigVariable(
        name='projector_message',
        default_value='')

    countdown_time = ConfigVariable(
        name='countdown_time',
        default_value=60)

    countdown_start_stamp = ConfigVariable(
        name='countdown_start_stamp',
        default_value=0)

    countdown_pause_stamp = ConfigVariable(
        name='countdown_pause_stamp',
        default_value=0)

    countdown_state = ConfigVariable(
        name='countdown_state',
        default_value='inactive')

    projector_scale = ConfigVariable(
        name='projector_scale',
        default_value=0)

    projector_scroll = ConfigVariable(
        name='projector_scroll',
        default_value=0)

    projector_js_cache = ConfigVariable(
        name='projector_js_cache',
        default_value={})

    projector_active_overlays = ConfigVariable(
        name='projector_active_overlays',
        default_value=[])

    projector_pdf_fullscreen = ConfigVariable(
        name='pdf_fullscreen',
        default_value=False)

    return ConfigCollection(
        variables=(
            projector, projector_message,
            countdown_time, countdown_start_stamp, countdown_pause_stamp,
            countdown_state, projector_scale, projector_scroll,
            projector_active_overlays, projector_js_cache,
            projector_pdf_fullscreen))
Ejemplo n.º 3
0
def set_simple_config_view_multiple_vars(sender, **kwargs):
    """
    Sets a bad config view with some multiple config vars.
    """
    return ConfigCollection(
        title='Config vars for testing 3',
        url='testsimplepage2',
        variables=(ConfigVariable(name='multiple_config_var', default_value='foobar1'),
                   ConfigVariable(name='multiple_config_var', default_value='foobar2')))
Ejemplo n.º 4
0
def set_simple_config_collection_with_callback(sender, **kwargs):
    def callback():
        raise Exception('Change callback dhcnfg34dlg06kdg successfully called.')
    return ConfigCollection(
        title='Hvndfhsbgkridfgdfg',
        url='testsimplepage4',
        variables=(ConfigVariable(
            name='var_with_callback_ghvnfjd5768gdfkwg0hm2',
            default_value='',
            on_change=callback),))
Ejemplo n.º 5
0
def set_simple_config_view(sender, **kwargs):
    """
    Sets a simple config view with some config variables but without
    grouping.
    """
    return ConfigCollection(
        title='Config vars for testing 2',
        url='testsimplepage1',
        variables=(ConfigVariable(name='additional_config_var', default_value='BaeB0ahcMae3feem'),
                   ConfigVariable(name='additional_config_var_2', default_value='', form_field=forms.CharField()),
                   ConfigVariable(name='none_config_var', default_value=None)))
Ejemplo n.º 6
0
def setup_agenda_config(sender, **kwargs):
    """
    Agenda config variables.
    """
    # TODO: Insert validator for the format or use other field carefully.
    agenda_start_event_date_time = ConfigVariable(
        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=ugettext_lazy('Begin of event'),
            help_text=ugettext_lazy('Input format: DD.MM.YYYY HH:MM')))

    agenda_show_last_speakers = ConfigVariable(
        name='agenda_show_last_speakers',
        default_value=1,
        form_field=forms.IntegerField(
            min_value=0,
            label=ugettext_lazy(
                'Number of last speakers to be shown on the projector')))

    agenda_couple_countdown_and_speakers = ConfigVariable(
        name='agenda_couple_countdown_and_speakers',
        default_value=False,
        form_field=forms.BooleanField(
            label=ugettext_lazy('Couple countdown with the list of speakers'),
            help_text=ugettext_lazy(
                '[Begin speach] starts the countdown, [End speach] stops the countdown.'
            ),
            required=False))

    extra_stylefiles = ['css/jquery-ui-timepicker.css']
    extra_javascript = [
        'js/jquery/jquery-ui-timepicker-addon.min.js',
        'js/jquery/jquery-ui-sliderAccess.min.js',
        'js/jquery/datepicker-config.js'
    ]

    return ConfigCollection(title=ugettext_noop('Agenda'),
                            url='agenda',
                            required_permission='config.can_manage',
                            weight=20,
                            variables=(agenda_start_event_date_time,
                                       agenda_show_last_speakers,
                                       agenda_couple_countdown_and_speakers),
                            extra_context={
                                'extra_stylefiles': extra_stylefiles,
                                'extra_javascript': extra_javascript
                            })
Ejemplo n.º 7
0
    def test_improperly_configured_config_view_two(self):
        """
        Tests that a ConfigCollection object without a title raises ConfigError
        when is_shown() is called.
        """
        collection = ConfigCollection(
            url='only_url_ureiraeY1Oochuad7xei',
            variables=(ConfigVariable(name='some_var_vuuC6eiXeiyae3ik4gie',
                                      default_value='',
                                      form_field=forms.CharField()),))

        self.assertRaisesMessage(
            ConfigError,
            'The config collection %s must have a title and an url attribute.' % repr(collection),
            collection.is_shown)
Ejemplo n.º 8
0
    def test_improperly_configured_config_view(self):
        """
        Tests that a ConfigCollection object without an url raises ConfigError
        when is_shown() is called.
        """
        collection = ConfigCollection(
            title='Only a small title but no url ci6xahb8Chula0Thesho',
            variables=(ConfigVariable(name='some_var_paiji9theiW8ooXivae6',
                                      default_value='',
                                      form_field=forms.CharField()),))

        self.assertRaisesMessage(
            ConfigError,
            'The config collection %s must have a title and an url attribute.' % repr(collection),
            collection.is_shown)
Ejemplo n.º 9
0
def setup_projector_config(sender, **kwargs):
    """
    Projector config variables for OpenSlides. They are not shown on a
    config view.
    """
    # The active slide. The config-value is a dictonary with at least the entry
    # 'callback'.
    projector = ConfigVariable(name='projector_active_slide',
                               default_value={'callback': None})

    projector_message = ConfigVariable(name='projector_message',
                                       default_value='')

    countdown_time = ConfigVariable(name='countdown_time', default_value=60)

    countdown_start_stamp = ConfigVariable(name='countdown_start_stamp',
                                           default_value=0)

    countdown_pause_stamp = ConfigVariable(name='countdown_pause_stamp',
                                           default_value=0)

    countdown_state = ConfigVariable(name='countdown_state',
                                     default_value='inactive')

    projector_scale = ConfigVariable(name='projector_scale', default_value=0)

    projector_scroll = ConfigVariable(name='projector_scroll', default_value=0)

    projector_js_cache = ConfigVariable(name='projector_js_cache',
                                        default_value={})

    projector_active_overlays = ConfigVariable(
        name='projector_active_overlays', default_value=[])

    projector_pdf_fullscreen = ConfigVariable(name='pdf_fullscreen',
                                              default_value=False)

    return ConfigCollection(
        required_permission=None,
        variables=(projector, projector_message, countdown_time,
                   countdown_start_stamp, countdown_pause_stamp,
                   countdown_state, projector_scale, projector_scroll,
                   projector_active_overlays, projector_js_cache,
                   projector_pdf_fullscreen))
Ejemplo n.º 10
0
    def test_improperly_configured_config_view_two(self):
        from openslides.config import urls
        collection = ConfigCollection(url='only_url_ureiraeY1Oochuad7xei',
                                      variables=(ConfigVariable(
                                          name='some_var_vuuC6eiXeiyae3ik4gie',
                                          default_value='',
                                          form_field=forms.CharField()), ))

        def setup_bad_config_view_two(sender, **kwargs):
            return collection

        config_signal.connect(
            setup_bad_config_view_two,
            dispatch_uid='setup_bad_config_view_twoe_for_testing')
        self.assertRaisesMessage(
            ConfigError,
            'The config collection %s must have a title and an url attribute.'
            % repr(collection), reload, urls)
        config_signal.disconnect(
            setup_bad_config_view_two,
            dispatch_uid='setup_bad_config_view_twoe_for_testing')
Ejemplo n.º 11
0
    def test_improperly_configured_config_view(self):
        from openslides.config import urls
        collection = ConfigCollection(
            title='Only a small title but no url ci6xahb8Chula0Thesho',
            variables=(ConfigVariable(name='some_var_paiji9theiW8ooXivae6',
                                      default_value='',
                                      form_field=forms.CharField()), ))

        def setup_bad_config_view_one(sender, **kwargs):
            return collection

        config_signal.connect(
            setup_bad_config_view_one,
            dispatch_uid='setup_bad_config_view_one_for_testing')
        self.assertRaisesMessage(
            ConfigError,
            'The config collection %s must have a title and an url attribute.'
            % repr(collection), reload, urls)
        config_signal.disconnect(
            setup_bad_config_view_one,
            dispatch_uid='setup_bad_config_view_one_for_testing')
Ejemplo n.º 12
0
def setup_agenda_config(sender, **kwargs):
    """
    Receiver function to setup all agenda config variables. It is connected to
    the signal openslides.config.signals.config_signal during app loading.
    """
    # TODO: Insert validator for the format or use other field carefully.
    agenda_start_event_date_time = ConfigVariable(
        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=ugettext_lazy('Begin of event'),
            help_text=ugettext_lazy('Input format: DD.MM.YYYY HH:MM')))

    agenda_show_last_speakers = ConfigVariable(
        name='agenda_show_last_speakers',
        default_value=1,
        form_field=forms.IntegerField(
            min_value=0,
            label=ugettext_lazy('Number of last speakers to be shown on the projector')))

    agenda_couple_countdown_and_speakers = ConfigVariable(
        name='agenda_couple_countdown_and_speakers',
        default_value=False,
        form_field=forms.BooleanField(
            label=ugettext_lazy('Couple countdown with the list of speakers'),
            help_text=ugettext_lazy('[Begin speach] starts the countdown, [End speach] stops the countdown.'),
            required=False))

    agenda_number_prefix = ConfigVariable(
        name='agenda_number_prefix',
        default_value='',
        form_field=forms.CharField(
            label=ugettext_lazy('Numbering prefix for agenda items'),
            max_length=20,
            required=False))

    agenda_numeral_system = ConfigVariable(
        name='agenda_numeral_system',
        default_value='arabic',
        form_field=forms.ChoiceField(
            label=ugettext_lazy('Numeral system for agenda items'),
            widget=forms.Select(),
            choices=(
                ('arabic', ugettext_lazy('Arabic')),
                ('roman', ugettext_lazy('Roman'))),
            required=False))

    extra_stylefiles = ['css/jquery-ui-timepicker.css']
    extra_javascript = ['js/jquery/jquery-ui-timepicker-addon.min.js',
                        'js/jquery/jquery-ui-sliderAccess.min.js',
                        'js/jquery/datepicker-config.js']

    return ConfigCollection(title=ugettext_noop('Agenda'),
                            url='agenda',
                            weight=20,
                            variables=(agenda_start_event_date_time,
                                       agenda_show_last_speakers,
                                       agenda_couple_countdown_and_speakers,
                                       agenda_number_prefix,
                                       agenda_numeral_system),
                            extra_context={'extra_stylefiles': extra_stylefiles,
                                           'extra_javascript': extra_javascript})