snapshot: preserve bilingual email template phase
This commit is contained in:
@@ -393,7 +393,8 @@ def onboarding_create(request):
|
||||
if form.is_valid():
|
||||
obj = form.save()
|
||||
obj.onboarded_by_name = _display_user_name(request.user)
|
||||
obj.save(update_fields=['onboarded_by_name'])
|
||||
obj.preferred_language = (get_language() or 'de').split('-')[0]
|
||||
obj.save(update_fields=['onboarded_by_name', 'preferred_language'])
|
||||
process_onboarding_request.delay(obj.id)
|
||||
return redirect(f"/onboarding/new/?saved=1&id={obj.id}")
|
||||
else:
|
||||
@@ -565,6 +566,7 @@ def offboarding_create(request):
|
||||
else:
|
||||
obj.requested_by_email = settings.DEFAULT_FROM_EMAIL
|
||||
obj.requested_by_name = _display_user_name(request.user)
|
||||
obj.preferred_language = (get_language() or 'de').split('-')[0]
|
||||
obj.save()
|
||||
process_offboarding_request.delay(obj.id)
|
||||
return redirect(f"/offboarding/new/?saved=1&id={obj.id}")
|
||||
@@ -895,8 +897,12 @@ def welcome_emails_page(request):
|
||||
default_welcome = DEFAULT_NOTIFICATION_TEMPLATES.get('onboarding_welcome', {})
|
||||
default_subject = (default_welcome.get('subject') or 'Willkommen bei TUB/CO, {{ FULL_NAME }}').strip()
|
||||
default_body = (default_welcome.get('body') or 'Hallo {{ FULL_NAME }}, willkommen bei TUB/CO.').strip()
|
||||
default_subject_en = (default_welcome.get('subject_en') or 'Welcome to TUB/CO, {{ FULL_NAME }}').strip()
|
||||
default_body_en = (default_welcome.get('body_en') or 'Hello {{ FULL_NAME }}, welcome to TUB/CO.').strip()
|
||||
subject_value = (welcome_template.subject_template if welcome_template else '').strip() or default_subject
|
||||
body_value = (welcome_template.body_template if welcome_template else '').strip() or default_body
|
||||
subject_value_en = (welcome_template.subject_template_en if welcome_template else '').strip() or default_subject_en
|
||||
body_value_en = (welcome_template.body_template_en if welcome_template else '').strip() or default_body_en
|
||||
return render(
|
||||
request,
|
||||
'workflows/welcome_emails.html',
|
||||
@@ -906,6 +912,8 @@ def welcome_emails_page(request):
|
||||
'welcome_template': welcome_template,
|
||||
'welcome_subject_value': subject_value,
|
||||
'welcome_body_value': body_value,
|
||||
'welcome_subject_value_en': subject_value_en,
|
||||
'welcome_body_value_en': body_value_en,
|
||||
'welcome_keywords': ['{{ FULL_NAME }}', '{{ VORNAME }}', '{{ NACHNAME }}', '{{ DEPARTMENT }}', '{{ CONTRACT_START }}', '{{ EMAIL }}', '{{ REQUESTED_BY }}'],
|
||||
},
|
||||
)
|
||||
@@ -950,17 +958,25 @@ def save_welcome_email_settings(request):
|
||||
|
||||
subject = request.POST.get('welcome_subject')
|
||||
body = request.POST.get('welcome_body')
|
||||
if subject is not None or body is not None:
|
||||
subject_en = request.POST.get('welcome_subject_en')
|
||||
body_en = request.POST.get('welcome_body_en')
|
||||
if subject is not None or body is not None or subject_en is not None or body_en is not None:
|
||||
default_welcome = DEFAULT_NOTIFICATION_TEMPLATES.get('onboarding_welcome', {})
|
||||
default_subject = (default_welcome.get('subject') or 'Willkommen bei TUB/CO, {{ FULL_NAME }}').strip()
|
||||
default_body = (default_welcome.get('body') or 'Hallo {{ FULL_NAME }}, willkommen bei TUB/CO.').strip()
|
||||
default_subject_en = (default_welcome.get('subject_en') or 'Welcome to TUB/CO, {{ FULL_NAME }}').strip()
|
||||
default_body_en = (default_welcome.get('body_en') or 'Hello {{ FULL_NAME }}, welcome to TUB/CO.').strip()
|
||||
subject_clean = (subject or '').strip() or default_subject
|
||||
body_clean = (body or '').strip() or default_body
|
||||
subject_clean_en = (subject_en or '').strip() or default_subject_en
|
||||
body_clean_en = (body_en or '').strip() or default_body_en
|
||||
template, _ = NotificationTemplate.objects.get_or_create(
|
||||
key='onboarding_welcome',
|
||||
defaults={
|
||||
'subject_template': subject_clean,
|
||||
'body_template': body_clean,
|
||||
'subject_template_en': subject_clean_en,
|
||||
'body_template_en': body_clean_en,
|
||||
'is_active': True,
|
||||
},
|
||||
)
|
||||
@@ -971,6 +987,12 @@ def save_welcome_email_settings(request):
|
||||
if template.body_template != body_clean:
|
||||
template.body_template = body_clean
|
||||
changes.append('body_template')
|
||||
if template.subject_template_en != subject_clean_en:
|
||||
template.subject_template_en = subject_clean_en
|
||||
changes.append('subject_template_en')
|
||||
if template.body_template_en != body_clean_en:
|
||||
template.body_template_en = body_clean_en
|
||||
changes.append('body_template_en')
|
||||
if not template.is_active:
|
||||
template.is_active = True
|
||||
changes.append('is_active')
|
||||
@@ -1392,17 +1414,23 @@ def save_email_routing_settings(request):
|
||||
for key in known_keys:
|
||||
subject = request.POST.get(f'subject_{key}')
|
||||
body = request.POST.get(f'body_{key}')
|
||||
if subject is None and body is None:
|
||||
subject_en = request.POST.get(f'subject_en_{key}')
|
||||
body_en = request.POST.get(f'body_en_{key}')
|
||||
if subject is None and body is None and subject_en is None and body_en is None:
|
||||
continue
|
||||
subject = (subject or '').strip()
|
||||
body = (body or '').strip()
|
||||
if not subject and not body:
|
||||
subject_en = (subject_en or '').strip()
|
||||
body_en = (body_en or '').strip()
|
||||
if not subject and not body and not subject_en and not body_en:
|
||||
continue
|
||||
obj, _ = NotificationTemplate.objects.get_or_create(
|
||||
key=key,
|
||||
defaults={
|
||||
'subject_template': subject or f'[{key}]',
|
||||
'body_template': body or '-',
|
||||
'subject_template_en': subject_en,
|
||||
'body_template_en': body_en,
|
||||
'is_active': True,
|
||||
},
|
||||
)
|
||||
@@ -1413,6 +1441,15 @@ def save_email_routing_settings(request):
|
||||
if body and obj.body_template != body:
|
||||
obj.body_template = body
|
||||
changed.append('body_template')
|
||||
if obj.subject_template_en != subject_en:
|
||||
obj.subject_template_en = subject_en
|
||||
changed.append('subject_template_en')
|
||||
if obj.body_template_en != body_en:
|
||||
obj.body_template_en = body_en
|
||||
changed.append('body_template_en')
|
||||
if not obj.is_active:
|
||||
obj.is_active = True
|
||||
changed.append('is_active')
|
||||
if changed:
|
||||
obj.save(update_fields=changed)
|
||||
|
||||
@@ -1446,6 +1483,8 @@ def save_notification_rules(request):
|
||||
rule.template_key = request.POST.get(f'template_key_{rule.id}', '').strip()
|
||||
rule.custom_subject = request.POST.get(f'custom_subject_{rule.id}', '').strip()
|
||||
rule.custom_body = request.POST.get(f'custom_body_{rule.id}', '').strip()
|
||||
rule.custom_subject_en = request.POST.get(f'custom_subject_en_{rule.id}', '').strip()
|
||||
rule.custom_body_en = request.POST.get(f'custom_body_en_{rule.id}', '').strip()
|
||||
rule.include_pdf_attachment = request.POST.get(f'include_pdf_{rule.id}') == 'on'
|
||||
rule.is_active = request.POST.get(f'active_{rule.id}') == 'on'
|
||||
rule.sort_order = position
|
||||
@@ -1470,6 +1509,8 @@ def save_notification_rules(request):
|
||||
template_key=request.POST.get('new_template_key', '').strip(),
|
||||
custom_subject=request.POST.get('new_custom_subject', '').strip(),
|
||||
custom_body=request.POST.get('new_custom_body', '').strip(),
|
||||
custom_subject_en=request.POST.get('new_custom_subject_en', '').strip(),
|
||||
custom_body_en=request.POST.get('new_custom_body_en', '').strip(),
|
||||
include_pdf_attachment=request.POST.get('new_include_pdf') == 'on',
|
||||
is_active=True,
|
||||
sort_order=NotificationRule.objects.filter(event_type=new_event).count() + 1,
|
||||
|
||||
Reference in New Issue
Block a user