88 lines
3.5 KiB
Python
88 lines
3.5 KiB
Python
|
#!/usr/bin/env python
|
|||
|
# -*- coding: utf-8 -*-
|
|||
|
"""
|
|||
|
openslides.assignment.signals
|
|||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|||
|
|
|||
|
Signals for the assignment app.
|
|||
|
|
|||
|
:copyright: (c) 2011–2013 by the OpenSlides team, see AUTHORS.
|
|||
|
:license: GNU GPL, see LICENSE for more details.
|
|||
|
"""
|
|||
|
|
|||
|
from django.dispatch import receiver
|
|||
|
from django import forms
|
|||
|
from django.utils.translation import ugettext_lazy, ugettext_noop, ugettext as _
|
|||
|
|
|||
|
from openslides.config.signals import config_signal
|
|||
|
from openslides.config.api import ConfigVariable, ConfigPage
|
|||
|
|
|||
|
|
|||
|
@receiver(config_signal, dispatch_uid='setup_assignment_config_page')
|
|||
|
def setup_assignment_config_page(sender, **kwargs):
|
|||
|
"""
|
|||
|
Assignment config variables.
|
|||
|
"""
|
|||
|
assignment_publish_winner_results_only = ConfigVariable(
|
|||
|
name='assignment_publish_winner_results_only',
|
|||
|
default_value=False,
|
|||
|
form_field=forms.BooleanField(
|
|||
|
required=False,
|
|||
|
label=_('Only publish voting results for selected winners '
|
|||
|
'(Projector view only)')))
|
|||
|
assignment_pdf_ballot_papers_selection = ConfigVariable(
|
|||
|
name='assignment_pdf_ballot_papers_selection',
|
|||
|
default_value='CUSTOM_NUMBER',
|
|||
|
form_field=forms.ChoiceField(
|
|||
|
widget=forms.Select(),
|
|||
|
required=False,
|
|||
|
label=_('Number of ballot papers (selection)'),
|
|||
|
choices=(
|
|||
|
('NUMBER_OF_DELEGATES', _('Number of all delegates')),
|
|||
|
('NUMBER_OF_ALL_PARTICIPANTS', _('Number of all participants')),
|
|||
|
('CUSTOM_NUMBER', _('Use the following custom number')))))
|
|||
|
assignment_pdf_ballot_papers_number = ConfigVariable(
|
|||
|
name='assignment_pdf_ballot_papers_number',
|
|||
|
default_value=8,
|
|||
|
form_field=forms.IntegerField(
|
|||
|
widget=forms.TextInput(attrs={'class': 'small-input'}),
|
|||
|
required=False,
|
|||
|
min_value=1,
|
|||
|
label=_('Custom number of ballot papers')))
|
|||
|
assignment_pdf_title = ConfigVariable(
|
|||
|
name='assignment_pdf_title',
|
|||
|
default_value=_('Elections'),
|
|||
|
form_field=forms.CharField(
|
|||
|
widget=forms.TextInput(),
|
|||
|
required=False,
|
|||
|
label=_('Title for PDF document (all elections)')))
|
|||
|
assignment_pdf_preamble = ConfigVariable(
|
|||
|
name='assignment_pdf_preamble',
|
|||
|
default_value='',
|
|||
|
form_field=forms.CharField(
|
|||
|
widget=forms.Textarea(),
|
|||
|
required=False,
|
|||
|
label=_('Preamble text for PDF document (all elections)')))
|
|||
|
assignment_poll_vote_values = ConfigVariable(
|
|||
|
name='assignment_poll_vote_values',
|
|||
|
default_value='auto',
|
|||
|
form_field=forms.ChoiceField(
|
|||
|
widget=forms.Select(),
|
|||
|
required=False,
|
|||
|
label=_('Election method'),
|
|||
|
choices=(
|
|||
|
('auto', _('Automatic assign of method.')),
|
|||
|
('votes', _('Always one option per candidate.')),
|
|||
|
('yesnoabstain', _('Always Yes-No-Abstain per candidate.')))))
|
|||
|
|
|||
|
return ConfigPage(title=ugettext_noop('Elections'),
|
|||
|
url='assignment',
|
|||
|
required_permission='config.can_manage',
|
|||
|
weight=40,
|
|||
|
variables=(assignment_publish_winner_results_only,
|
|||
|
assignment_pdf_ballot_papers_selection,
|
|||
|
assignment_pdf_ballot_papers_number,
|
|||
|
assignment_pdf_title,
|
|||
|
assignment_pdf_preamble,
|
|||
|
assignment_poll_vote_values))
|