from django.contrib.auth import get_user_model from django.test import TestCase from workflows.models import FormCustomFieldConfig, OffboardingRequest, OnboardingRequest from workflows.roles import ROLE_ADMIN, assign_user_role class RequestTimelineCustomFieldTests(TestCase): def setUp(self): user_model = get_user_model() self.user = user_model.objects.create_user( username='timeline_admin', email='timeline-admin@example.com', password='secret123', ) assign_user_role(self.user, ROLE_ADMIN) self.client.force_login(self.user) def test_onboarding_timeline_renders_custom_field_values(self): FormCustomFieldConfig.objects.create( form_type='onboarding', field_key='office_location', section_key='stammdaten', sort_order=0, field_type='text', is_active=True, label='Bürostandort', ) obj = OnboardingRequest.objects.create( full_name='Max Mustermann', gender='herr', job_title='Consultant', department='IT-Service', work_email='max.mustermann@workdock.de', contract_start='2026-11-01', employment_type='unbefristet', agreement='accepted', custom_field_values={'office_location': 'Berlin Mitte'}, ) response = self.client.get(f'/requests/timeline/onboarding/{obj.id}/', HTTP_HOST='localhost') self.assertEqual(response.status_code, 200) self.assertContains(response, 'Benutzerdefinierte Felder') self.assertContains(response, 'Bürostandort') self.assertContains(response, 'Berlin Mitte') def test_offboarding_timeline_renders_custom_field_values(self): FormCustomFieldConfig.objects.create( form_type='offboarding', field_key='return_comment', section_key='abschluss', sort_order=0, field_type='textarea', is_active=True, label='Rückgabehinweis', ) obj = OffboardingRequest.objects.create( full_name='Lara Beispiel', work_email='lara.beispiel@workdock.de', department='IT-Service', job_title='Engineer', last_working_day='2026-12-31', requested_by_email='admin@workdock.de', custom_field_values={'return_comment': 'Abholung durch IT am Freitag.'}, ) response = self.client.get(f'/requests/timeline/offboarding/{obj.id}/', HTTP_HOST='localhost') self.assertEqual(response.status_code, 200) self.assertContains(response, 'Benutzerdefinierte Felder') self.assertContains(response, 'Rückgabehinweis') self.assertContains(response, 'Abholung durch IT am Freitag.')