OpenSlides/server/openslides/assignments/config_variables.py

163 lines
4.8 KiB
Python
Raw Normal View History

from django.conf import settings
from django.core.validators import MinValueValidator
2019-10-29 09:44:19 +01:00
from openslides.assignments.models import AssignmentPoll
2015-06-29 12:08:15 +02:00
from openslides.core.config import ConfigVariable
def get_config_variables():
"""
Generator which yields all config variables of this app.
They are grouped in 'Ballot and ballot papers' and 'PDF'. The generator has
to be evaluated during app loading (see apps.py).
"""
# Voting
yield ConfigVariable(
2020-02-25 10:54:29 +01:00
name="assignment_poll_method",
default_value=AssignmentPoll.POLLMETHOD_Y,
2019-01-06 16:22:33 +01:00
input_type="choice",
label="Default election method",
2019-10-29 09:44:19 +01:00
choices=tuple(
2020-02-25 10:54:29 +01:00
{"value": method[0], "display_name": method[1]}
for method in AssignmentPoll.POLLMETHODS
2019-01-06 16:22:33 +01:00
),
2019-10-29 09:44:19 +01:00
weight=400,
group="Elections",
2020-02-25 10:54:29 +01:00
subgroup="Ballot",
2019-01-06 16:22:33 +01:00
)
if getattr(settings, "ENABLE_ELECTRONIC_VOTING", False):
assignment_poll_type_choices = tuple(
{"value": type[0], "display_name": type[1]} for type in AssignmentPoll.TYPES
)
else:
assignment_poll_type_choices = (
{
"value": AssignmentPoll.TYPE_ANALOG,
"display_name": AssignmentPoll.TYPE_ANALOG,
},
)
2020-05-13 11:27:45 +02:00
yield ConfigVariable(
name="assignment_poll_default_type",
default_value=AssignmentPoll.TYPE_ANALOG,
input_type="choice",
2020-05-14 19:52:18 +02:00
label="Default voting type",
choices=assignment_poll_type_choices,
2020-05-13 11:27:45 +02:00
weight=403,
group="Elections",
subgroup="Ballot",
)
yield ConfigVariable(
2020-02-25 10:54:29 +01:00
name="assignment_poll_default_100_percent_base",
2020-05-13 11:27:45 +02:00
default_value=AssignmentPoll.PERCENT_BASE_VALID,
2019-01-06 16:22:33 +01:00
input_type="choice",
label="Default 100 % base of an election result",
2019-10-29 09:44:19 +01:00
choices=tuple(
2020-02-25 10:54:29 +01:00
{"value": base[0], "display_name": base[1]}
for base in AssignmentPoll.PERCENT_BASES
2019-10-29 09:44:19 +01:00
),
weight=405,
group="Elections",
2020-02-25 10:54:29 +01:00
subgroup="Ballot",
)
yield ConfigVariable(
name="assignment_poll_default_groups",
default_value=[],
input_type="groups",
2020-02-25 10:54:29 +01:00
label="Default groups with voting rights",
weight=410,
group="Elections",
2020-02-25 10:54:29 +01:00
subgroup="Ballot",
2019-01-06 16:22:33 +01:00
)
yield ConfigVariable(
2020-02-25 10:54:29 +01:00
name="assignment_poll_default_majority_method",
2020-05-13 11:27:45 +02:00
default_value=AssignmentPoll.MAJORITY_SIMPLE,
input_type="choice",
choices=tuple(
{"value": method[0], "display_name": method[1]}
2020-02-25 10:54:29 +01:00
for method in AssignmentPoll.MAJORITY_METHODS
),
2020-02-25 10:54:29 +01:00
label="Required majority",
help_text="Default method to check whether a candidate has reached the required majority.",
weight=415,
2020-02-25 10:54:29 +01:00
hidden=True,
group="Elections",
2020-02-25 10:54:29 +01:00
subgroup="Ballot",
)
yield ConfigVariable(
name="assignment_poll_sort_poll_result_by_votes",
default_value=True,
input_type="boolean",
label="Sort election results by amount of votes",
weight=420,
group="Elections",
subgroup="Ballot",
)
yield ConfigVariable(
2019-10-29 09:44:19 +01:00
name="assignment_poll_add_candidates_to_list_of_speakers",
default_value=True,
input_type="boolean",
label="Put all candidates on the list of speakers",
weight=425,
group="Elections",
2020-02-25 10:54:29 +01:00
subgroup="Ballot",
)
# Ballot Paper
2020-01-30 16:59:46 +01:00
yield ConfigVariable(
name="assignments_pdf_ballot_papers_selection",
default_value="CUSTOM_NUMBER",
input_type="choice",
label="Number of ballot papers",
choices=(
{"value": "NUMBER_OF_DELEGATES", "display_name": "Number of all delegates"},
{
"value": "NUMBER_OF_ALL_PARTICIPANTS",
"display_name": "Number of all participants",
},
{
"value": "CUSTOM_NUMBER",
"display_name": "Use the following custom number",
},
),
weight=430,
group="Elections",
subgroup="Ballot papers",
)
yield ConfigVariable(
name="assignments_pdf_ballot_papers_number",
default_value=8,
input_type="integer",
label="Custom number of ballot papers",
weight=435,
group="Elections",
subgroup="Ballot papers",
validators=(MinValueValidator(1),),
2020-01-30 16:59:46 +01:00
)
# PDF
yield ConfigVariable(
2019-01-06 16:22:33 +01:00
name="assignments_pdf_title",
default_value="Elections",
label="Title for PDF document (all elections)",
weight=460,
2019-01-06 16:22:33 +01:00
group="Elections",
subgroup="PDF export",
2019-01-06 16:22:33 +01:00
)
yield ConfigVariable(
2019-01-06 16:22:33 +01:00
name="assignments_pdf_preamble",
default_value="",
label="Preamble text for PDF document (all elections)",
weight=470,
2019-01-06 16:22:33 +01:00
group="Elections",
subgroup="PDF export",
2019-01-06 16:22:33 +01:00
)