snapshot: preserve bilingual email template phase
This commit is contained in:
@@ -80,6 +80,7 @@ class OnboardingRequest(models.Model):
|
||||
|
||||
generated_pdf_path = models.CharField(max_length=500, blank=True)
|
||||
intro_pdf_path = models.CharField(max_length=500, blank=True)
|
||||
preferred_language = models.CharField(max_length=10, blank=True, default='de')
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
|
||||
def __str__(self) -> str:
|
||||
@@ -181,7 +182,9 @@ class NotificationTemplate(models.Model):
|
||||
|
||||
key = models.CharField(max_length=60, choices=TEMPLATE_CHOICES, unique=True)
|
||||
subject_template = models.CharField(max_length=255)
|
||||
subject_template_en = models.CharField(max_length=255, blank=True)
|
||||
body_template = models.TextField()
|
||||
body_template_en = models.TextField(blank=True)
|
||||
is_active = models.BooleanField(default=True)
|
||||
updated_at = models.DateTimeField(auto_now=True)
|
||||
|
||||
@@ -191,6 +194,18 @@ class NotificationTemplate(models.Model):
|
||||
def __str__(self) -> str:
|
||||
return self.get_key_display()
|
||||
|
||||
def translated_subject_template(self, language_code: str | None = None) -> str:
|
||||
lang = (language_code or get_language() or 'de').split('-')[0]
|
||||
if lang == 'en' and self.subject_template_en.strip():
|
||||
return self.subject_template_en.strip()
|
||||
return self.subject_template.strip()
|
||||
|
||||
def translated_body_template(self, language_code: str | None = None) -> str:
|
||||
lang = (language_code or get_language() or 'de').split('-')[0]
|
||||
if lang == 'en' and self.body_template_en.strip():
|
||||
return self.body_template_en.strip()
|
||||
return self.body_template.strip()
|
||||
|
||||
|
||||
class NotificationRule(models.Model):
|
||||
EVENT_CHOICES = [
|
||||
@@ -216,7 +231,9 @@ class NotificationRule(models.Model):
|
||||
)
|
||||
template_key = models.CharField(max_length=60, blank=True)
|
||||
custom_subject = models.CharField(max_length=255, blank=True)
|
||||
custom_subject_en = models.CharField(max_length=255, blank=True)
|
||||
custom_body = models.TextField(blank=True)
|
||||
custom_body_en = models.TextField(blank=True)
|
||||
include_pdf_attachment = models.BooleanField(default=False)
|
||||
sort_order = models.PositiveIntegerField(default=0)
|
||||
|
||||
@@ -227,6 +244,18 @@ class NotificationRule(models.Model):
|
||||
state = 'aktiv' if self.is_active else 'inaktiv'
|
||||
return f'{self.get_event_type_display()} | {self.name} ({state})'
|
||||
|
||||
def translated_custom_subject(self, language_code: str | None = None) -> str:
|
||||
lang = (language_code or get_language() or 'de').split('-')[0]
|
||||
if lang == 'en' and self.custom_subject_en.strip():
|
||||
return self.custom_subject_en.strip()
|
||||
return self.custom_subject.strip()
|
||||
|
||||
def translated_custom_body(self, language_code: str | None = None) -> str:
|
||||
lang = (language_code or get_language() or 'de').split('-')[0]
|
||||
if lang == 'en' and self.custom_body_en.strip():
|
||||
return self.custom_body_en.strip()
|
||||
return self.custom_body.strip()
|
||||
|
||||
|
||||
class ScheduledWelcomeEmail(models.Model):
|
||||
STATUS_CHOICES = [
|
||||
@@ -393,6 +422,7 @@ class OffboardingRequest(models.Model):
|
||||
signature = models.CharField(max_length=255, blank=True, verbose_name='Unterschrift (Name)')
|
||||
requested_by_email = models.EmailField(verbose_name='E-Mail der anfordernden Person')
|
||||
requested_by_name = models.CharField(max_length=255, blank=True, verbose_name='Name der anfordernden Person')
|
||||
preferred_language = models.CharField(max_length=10, blank=True, default='de')
|
||||
generated_pdf_path = models.CharField(max_length=500, blank=True)
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user