fix: render branded welcome subject placeholders
Some checks failed
CI / python-validation (push) Has been cancelled
CI / docker-release-gate (push) Has been cancelled
i18n / compile-translations (push) Has been cancelled

This commit is contained in:
Md Bayazid Bostame
2026-04-01 13:13:14 +02:00
parent 53629d963d
commit 13be9bb461
2 changed files with 33 additions and 2 deletions

View File

@@ -268,8 +268,8 @@ def get_default_notification_templates() -> dict[str, dict[str, str]]:
support_email = company_contact['it_contact_email'] or branding_copy['support_email'] or f"it@{branding_copy['company_domain']}" support_email = company_contact['it_contact_email'] or branding_copy['support_email'] or f"it@{branding_copy['company_domain']}"
welcome = templates.get('onboarding_welcome') welcome = templates.get('onboarding_welcome')
if welcome: if welcome:
welcome['subject'] = f'Willkommen bei {company_name}, {{ VORNAME }}' welcome['subject'] = f'Willkommen bei {company_name}, {{{{ VORNAME }}}}'
welcome['subject_en'] = f'Welcome to {company_name}, {{ VORNAME }}' welcome['subject_en'] = f'Welcome to {company_name}, {{{{ VORNAME }}}}'
welcome['body'] = ( welcome['body'] = (
'Hallo {{ FULL_NAME }},\n\n' 'Hallo {{ FULL_NAME }},\n\n'
f'herzlich willkommen bei {company_name}.\n' f'herzlich willkommen bei {company_name}.\n'

View File

@@ -6,6 +6,8 @@ from django.contrib.auth import get_user_model
from django.test import TestCase, override_settings from django.test import TestCase, override_settings
from django.utils import timezone from django.utils import timezone
from workflows.branding import get_default_notification_templates
from workflows.email_workflows import render_notification_template
from workflows.models import NotificationTemplate, OnboardingRequest, ScheduledWelcomeEmail, WorkflowConfig from workflows.models import NotificationTemplate, OnboardingRequest, ScheduledWelcomeEmail, WorkflowConfig
from workflows.tasks import process_onboarding_request, send_scheduled_welcome_email from workflows.tasks import process_onboarding_request, send_scheduled_welcome_email
@@ -160,3 +162,32 @@ class WelcomeEmailScheduleTests(TestCase):
kwargs = mock_send_templated.call_args.kwargs kwargs = mock_send_templated.call_args.kwargs
self.assertEqual(kwargs.get('attachments'), []) self.assertEqual(kwargs.get('attachments'), [])
self.assertEqual(kwargs.get('from_email'), 'admin.sender@tub.co') self.assertEqual(kwargs.get('from_email'), 'admin.sender@tub.co')
def test_branded_default_welcome_subject_renders_first_name(self):
default_templates = get_default_notification_templates()
self.assertIn('{{ VORNAME }}', default_templates['onboarding_welcome']['subject'])
self.assertIn('{{ VORNAME }}', default_templates['onboarding_welcome']['subject_en'])
context = {
'VORNAME': 'Anika',
'FULL_NAME': 'Anika Anan',
'DEPARTMENT': 'IT',
'CONTRACT_START': '2026-04-01',
'EMAIL': 'anika@tub.co',
}
subject_de, _body_de = render_notification_template(
'onboarding_welcome',
context,
language_code='de',
)
subject_en, _body_en = render_notification_template(
'onboarding_welcome',
context,
language_code='en',
)
self.assertIn('Anika', subject_de)
self.assertNotIn('{ VORNAME }', subject_de)
self.assertIn('Anika', subject_en)
self.assertNotIn('{ VORNAME }', subject_en)