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__'