OpenSlides/openslides/assignments/signals.py
Norman Jäckel c5fbe2e9ee Refactored config API.
Removed form_field attributes.
Added extra fields for HTML rendering like label and help text.
Added fields for sorting and grouping. Removed old collection system.
Added config groups to config view via OPTIONS requests.
Regrouped all variables.
Added validation. Changed internal handling.
2015-06-18 21:13:30 +02:00

92 lines
3.5 KiB
Python

from django.core.validators import MinValueValidator
from django.utils.translation import ugettext as _
from django.utils.translation import ugettext_lazy
from openslides.config.api import ConfigVariable
from openslides.poll.models import PERCENT_BASE_CHOICES
def setup_assignment_config(sender, **kwargs):
"""
Receiver function to setup all assignment config variables. They are
grouped in 'Ballot and ballot papers' and 'PDF'. This function is
connected to the signal openslides.config.signals.config_signal during
app loading.
"""
# Ballot and ballot papers
yield ConfigVariable(
name='assignments_poll_vote_values',
default_value='auto',
input_type='choice',
label=ugettext_lazy('Election method'),
choices=(
{'value': 'auto', 'display_name': ugettext_lazy('Automatic assign of method')},
{'value': 'votes', 'display_name': ugettext_lazy('Always one option per candidate')},
{'value': 'yesnoabstain', 'display_name': ugettext_lazy('Always Yes-No-Abstain per candidate')}),
weight=410,
group=ugettext_lazy('Elections'),
subgroup=ugettext_lazy('Ballot and ballot papers'))
yield ConfigVariable(
name='assignments_poll_100_percent_base',
default_value='WITHOUT_INVALID',
input_type='choice',
label=ugettext_lazy('The 100 % base of an election result consists of'),
choices=PERCENT_BASE_CHOICES,
weight=420,
group=ugettext_lazy('Elections'),
subgroup=ugettext_lazy('Ballot and ballot papers'))
yield ConfigVariable(
name='assignments_pdf_ballot_papers_selection',
default_value='CUSTOM_NUMBER',
input_type='choice',
label=ugettext_lazy('Number of ballot papers (selection)'),
choices=(
{'value': 'NUMBER_OF_DELEGATES', 'display_name': ugettext_lazy('Number of all delegates')},
{'value': 'NUMBER_OF_ALL_PARTICIPANTS', 'display_name': ugettext_lazy('Number of all participants')},
{'value': 'CUSTOM_NUMBER', 'display_name': ugettext_lazy('Use the following custom number')}),
weight=430,
group=ugettext_lazy('Elections'),
subgroup=ugettext_lazy('Ballot and ballot papers'))
yield ConfigVariable(
name='assignments_pdf_ballot_papers_number',
default_value=8,
input_type='integer',
label=ugettext_lazy('Custom number of ballot papers'),
weight=440,
group=ugettext_lazy('Elections'),
subgroup=ugettext_lazy('Ballot and ballot papers'),
validators=(MinValueValidator(1),))
yield ConfigVariable(
name='assignments_publish_winner_results_only',
default_value=False,
input_type='boolean',
label=ugettext_lazy('Publish election result for elected candidates only '
'(projector view)'),
weight=450,
group=ugettext_lazy('Elections'),
subgroup=ugettext_lazy('Ballot and ballot papers'))
# PDF
yield ConfigVariable(
name='assignments_pdf_title',
default_value=_('Elections'),
label=ugettext_lazy('Title for PDF document (all elections)'),
weight=460,
group=ugettext_lazy('Elections'),
subgroup=ugettext_lazy('PDF'),
translatable=True)
yield ConfigVariable(
name='assignments_pdf_preamble',
default_value='',
label=ugettext_lazy('Preamble text for PDF document (all elections)'),
weight=470,
group=ugettext_lazy('Elections'),
subgroup=ugettext_lazy('PDF'))