Files
workdock-platform/backend/workflows/form_builder_config.py

118 lines
7.1 KiB
Python

from django.utils.translation import gettext_lazy as _
DEFAULT_FIELD_ORDER = {
'onboarding': [
'first_name', 'last_name', 'full_name', 'gender', 'job_title', 'department', 'work_email',
'order_business_cards', 'business_card_name', 'business_card_title', 'business_card_email', 'business_card_phone',
'contract_start', 'employment_type', 'employment_end_date', 'handover_date',
'group_mailboxes_required_choice', 'group_mailboxes', 'needed_devices_multi',
'additional_hardware_needed_choice', 'additional_hardware_multi', 'additional_hardware_other',
'needed_software_multi', 'additional_software_needed_choice', 'additional_software_multi', 'additional_software',
'needed_accesses_multi', 'additional_access_needed_choice', 'additional_access_text',
'needed_workspace_groups_multi', 'needed_resources_multi', 'successor_required_choice', 'successor_name',
'inherit_phone_number_choice', 'phone_number_choice', 'additional_notes', 'signature_url', 'signature_image',
'onboarded_by_email', 'agreement_confirm',
],
'offboarding': ['full_name', 'work_email', 'department', 'job_title', 'last_working_day', 'notes'],
}
ONBOARDING_PAGE_ORDER = ['stammdaten', 'vertrag', 'itsetup', 'abschluss']
OFFBOARDING_PAGE_ORDER = ['mitarbeitende', 'austritt', 'abschluss']
ONBOARDING_PAGE_LABELS = {
'stammdaten': _('1. Stammdaten'),
'vertrag': _('2. Vertrag'),
'itsetup': _('3. IT-Setup'),
'abschluss': _('4. Abschluss'),
}
OFFBOARDING_PAGE_LABELS = {
'mitarbeitende': _('1. Mitarbeitende'),
'austritt': _('2. Austritt'),
'abschluss': _('3. Abschluss'),
}
CORE_SECTION_LABELS = {'onboarding': ONBOARDING_PAGE_LABELS, 'offboarding': OFFBOARDING_PAGE_LABELS}
LOCKED_FIELD_RULES = {
'onboarding': {'full_name', 'work_email', 'contract_start', 'agreement_confirm'},
'offboarding': {'full_name', 'work_email', 'last_working_day'},
}
LOCKED_SECTION_RULES = {
'onboarding': {'stammdaten', 'vertrag', 'abschluss'},
'offboarding': {'mitarbeitende', 'austritt'},
}
ONBOARDING_DEFAULT_PAGE = {
'first_name': 'stammdaten', 'last_name': 'stammdaten', 'full_name': 'stammdaten', 'gender': 'stammdaten',
'job_title': 'stammdaten', 'department': 'stammdaten', 'work_email': 'stammdaten', 'order_business_cards': 'stammdaten',
'business_card_name': 'stammdaten', 'business_card_title': 'stammdaten', 'business_card_email': 'stammdaten', 'business_card_phone': 'stammdaten',
'contract_start': 'vertrag', 'employment_type': 'vertrag', 'employment_end_date': 'vertrag', 'handover_date': 'vertrag',
'group_mailboxes_required_choice': 'vertrag', 'group_mailboxes': 'vertrag', 'needed_devices_multi': 'itsetup',
'additional_hardware_needed_choice': 'itsetup', 'additional_hardware_multi': 'itsetup', 'additional_hardware_other': 'itsetup',
'needed_software_multi': 'itsetup', 'additional_software_needed_choice': 'itsetup', 'additional_software_multi': 'itsetup', 'additional_software': 'itsetup',
'needed_accesses_multi': 'itsetup', 'additional_access_needed_choice': 'itsetup', 'additional_access_text': 'itsetup',
'needed_workspace_groups_multi': 'itsetup', 'needed_resources_multi': 'itsetup', 'successor_required_choice': 'itsetup',
'successor_name': 'itsetup', 'inherit_phone_number_choice': 'itsetup', 'phone_number_choice': 'itsetup',
'additional_notes': 'abschluss', 'signature_url': 'abschluss', 'signature_image': 'abschluss', 'onboarded_by_email': 'abschluss', 'agreement_confirm': 'abschluss',
}
OFFBOARDING_DEFAULT_PAGE = {
'full_name': 'mitarbeitende', 'work_email': 'mitarbeitende', 'department': 'mitarbeitende', 'job_title': 'mitarbeitende',
'last_working_day': 'austritt', 'notes': 'abschluss',
}
DEFAULT_CONDITIONAL_RULES = {
'onboarding': {
'business-card-box': {'clauses': [{'field': 'order_business_cards', 'operator': 'checked', 'value': True}]},
'employment-end-box': {'clauses': [{'field': 'employment_type', 'operator': 'equals', 'value': 'befristet'}]},
'group-mailboxes-box': {'clauses': [{'field': 'group_mailboxes_required_choice', 'operator': 'equals', 'value': 'ja'}]},
'extra-hardware-box': {'clauses': [{'field': 'additional_hardware_needed_choice', 'operator': 'equals', 'value': 'ja'}]},
'extra-software-box': {'clauses': [{'field': 'additional_software_needed_choice', 'operator': 'equals', 'value': 'ja'}]},
'extra-access-box': {'clauses': [{'field': 'additional_access_needed_choice', 'operator': 'equals', 'value': 'ja'}]},
'successor-box': {'clauses': [{'field': 'successor_required_choice', 'operator': 'equals', 'value': 'ja'}]},
},
}
FORM_PRESETS = {
'onboarding': {
'standard': {'label': _('Standard'), 'sections': {'stammdaten': True, 'vertrag': True, 'itsetup': True, 'abschluss': True}, 'fields': {}},
'lean': {
'label': _('Lean'),
'sections': {'stammdaten': True, 'vertrag': True, 'itsetup': False, 'abschluss': True},
'fields': {
'gender': {'is_visible': False}, 'order_business_cards': {'is_visible': False}, 'business_card_name': {'is_visible': False},
'business_card_title': {'is_visible': False}, 'business_card_email': {'is_visible': False}, 'business_card_phone': {'is_visible': False},
'employment_end_date': {'is_visible': False}, 'group_mailboxes_required_choice': {'is_visible': False}, 'group_mailboxes': {'is_visible': False},
'additional_notes': {'is_required': False},
},
},
'it_heavy': {
'label': _('IT-heavy'),
'sections': {'stammdaten': True, 'vertrag': True, 'itsetup': True, 'abschluss': True},
'fields': {
'needed_devices_multi': {'is_required': True}, 'needed_software_multi': {'is_required': True}, 'needed_accesses_multi': {'is_required': True},
'needed_workspace_groups_multi': {'is_required': True}, 'needed_resources_multi': {'is_required': True},
'additional_hardware_needed_choice': {'is_visible': True}, 'additional_software_needed_choice': {'is_visible': True},
'additional_access_needed_choice': {'is_visible': True}, 'successor_required_choice': {'is_visible': True},
},
},
},
'offboarding': {
'standard': {'label': _('Standard'), 'sections': {'mitarbeitende': True, 'austritt': True, 'abschluss': True}, 'fields': {}},
'lean': {
'label': _('Lean'),
'sections': {'mitarbeitende': True, 'austritt': True, 'abschluss': False},
'fields': {'department': {'is_visible': False}, 'job_title': {'is_visible': False}, 'notes': {'is_visible': False}},
},
'hr_heavy': {
'label': _('HR-heavy'),
'sections': {'mitarbeitende': True, 'austritt': True, 'abschluss': True},
'fields': {
'department': {'is_visible': True, 'is_required': True},
'job_title': {'is_visible': True, 'is_required': True},
'notes': {'is_visible': True, 'is_required': True},
},
},
},
}
CUSTOM_FIELD_PREFIX = 'custom__'