OpenSlides/openslides/motions/signals.py

105 lines
5.8 KiB
Python
Raw Normal View History

from django.utils.translation import ugettext_noop
from .models import State, Workflow
2013-01-26 16:33:55 +01:00
def create_builtin_workflows(sender, **kwargs):
"""
Receiver function to create a simple and a complex workflow. It is
connected to the signal django.db.models.signals.post_migrate during
app loading.
"""
2015-01-16 14:18:34 +01:00
if Workflow.objects.exists():
# If there is at least one workflow, then do nothing.
return
workflow_1 = Workflow.objects.create(name='Simple Workflow')
state_1_1 = State.objects.create(name=ugettext_noop('submitted'),
2015-01-16 14:18:34 +01:00
workflow=workflow_1,
allow_create_poll=True,
allow_support=True,
allow_submitter_edit=True)
state_1_2 = State.objects.create(name=ugettext_noop('accepted'),
2015-01-16 14:18:34 +01:00
workflow=workflow_1,
action_word='Accept',
recommendation_label='Acceptance',
css_class='success')
state_1_3 = State.objects.create(name=ugettext_noop('rejected'),
2015-01-16 14:18:34 +01:00
workflow=workflow_1,
action_word='Reject',
recommendation_label='Rejection',
css_class='danger')
state_1_4 = State.objects.create(name=ugettext_noop('not decided'),
2015-01-16 14:18:34 +01:00
workflow=workflow_1,
action_word='Do not decide',
recommendation_label='No decision',
css_class='default')
2015-01-16 14:18:34 +01:00
state_1_1.next_states.add(state_1_2, state_1_3, state_1_4)
workflow_1.first_state = state_1_1
workflow_1.save()
workflow_2 = Workflow.objects.create(name='Complex Workflow')
state_2_1 = State.objects.create(name=ugettext_noop('published'),
2015-01-16 14:18:34 +01:00
workflow=workflow_2,
allow_support=True,
allow_submitter_edit=True,
dont_set_identifier=True)
state_2_2 = State.objects.create(name=ugettext_noop('permitted'),
2015-01-16 14:18:34 +01:00
workflow=workflow_2,
action_word='Permit',
recommendation_label='Permission',
2015-01-16 14:18:34 +01:00
allow_create_poll=True,
allow_submitter_edit=True,
versioning=True,
leave_old_version_active=True)
state_2_3 = State.objects.create(name=ugettext_noop('accepted'),
2015-01-16 14:18:34 +01:00
workflow=workflow_2,
action_word='Accept',
recommendation_label='Acceptance',
versioning=True,
css_class='success')
state_2_4 = State.objects.create(name=ugettext_noop('rejected'),
2015-01-16 14:18:34 +01:00
workflow=workflow_2,
action_word='Reject',
recommendation_label='Rejection',
versioning=True,
css_class='danger')
state_2_5 = State.objects.create(name=ugettext_noop('withdrawed'),
2015-01-16 14:18:34 +01:00
workflow=workflow_2,
action_word='Withdraw',
versioning=True,
css_class='default')
state_2_6 = State.objects.create(name=ugettext_noop('adjourned'),
2015-01-16 14:18:34 +01:00
workflow=workflow_2,
action_word='Adjourn',
recommendation_label='Adjournment',
versioning=True,
css_class='default')
state_2_7 = State.objects.create(name=ugettext_noop('not concerned'),
2015-01-16 14:18:34 +01:00
workflow=workflow_2,
action_word='Do not concern',
recommendation_label='No concernment',
versioning=True,
css_class='default')
state_2_8 = State.objects.create(name=ugettext_noop('refered to committee'),
2015-01-16 14:18:34 +01:00
workflow=workflow_2,
action_word='Refer to committee',
recommendation_label='Referral to committee',
versioning=True,
css_class='default')
state_2_9 = State.objects.create(name=ugettext_noop('needs review'),
2015-01-16 14:18:34 +01:00
workflow=workflow_2,
action_word='Needs review',
versioning=True,
css_class='default')
state_2_10 = State.objects.create(name=ugettext_noop('rejected (not authorized)'),
2015-01-16 14:18:34 +01:00
workflow=workflow_2,
action_word='Reject (not authorized)',
recommendation_label='Rejection (not authorized)',
versioning=True,
css_class='default')
2015-01-16 14:18:34 +01:00
state_2_1.next_states.add(state_2_2, state_2_5, state_2_10)
state_2_2.next_states.add(state_2_3, state_2_4, state_2_5, state_2_6, state_2_7, state_2_8, state_2_9)
workflow_2.first_state = state_2_1
workflow_2.save()