snapshot: preserve handbook, bilingual phase 2, and logo updates
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
from django.db import models
|
||||
from django.utils.translation import get_language
|
||||
|
||||
|
||||
class EmployeeProfile(models.Model):
|
||||
@@ -98,6 +99,7 @@ class FormOption(models.Model):
|
||||
|
||||
category = models.CharField(max_length=40, choices=CATEGORY_CHOICES)
|
||||
label = models.CharField(max_length=255)
|
||||
label_en = models.CharField(max_length=255, blank=True)
|
||||
value = models.CharField(max_length=255, blank=True)
|
||||
sort_order = models.PositiveIntegerField(default=0)
|
||||
is_active = models.BooleanField(default=True)
|
||||
@@ -109,6 +111,12 @@ class FormOption(models.Model):
|
||||
def __str__(self) -> str:
|
||||
return f"{self.get_category_display()}: {self.label}"
|
||||
|
||||
def translated_label(self, language_code: str | None = None) -> str:
|
||||
lang = (language_code or get_language() or 'de').split('-')[0]
|
||||
if lang == 'en' and self.label_en.strip():
|
||||
return self.label_en.strip()
|
||||
return self.label.strip()
|
||||
|
||||
|
||||
class FormFieldConfig(models.Model):
|
||||
PAGE_CHOICES = [
|
||||
@@ -130,7 +138,9 @@ class FormFieldConfig(models.Model):
|
||||
is_required = models.BooleanField(null=True, blank=True, default=None)
|
||||
page_key = models.CharField(max_length=20, blank=True, default='', choices=PAGE_CHOICES)
|
||||
label_override = models.CharField(max_length=255, blank=True)
|
||||
label_override_en = models.CharField(max_length=255, blank=True)
|
||||
help_text_override = models.TextField(blank=True)
|
||||
help_text_override_en = models.TextField(blank=True)
|
||||
|
||||
class Meta:
|
||||
ordering = ['form_type', 'sort_order', 'field_name']
|
||||
@@ -141,6 +151,18 @@ class FormFieldConfig(models.Model):
|
||||
def __str__(self) -> str:
|
||||
return f'{self.get_form_type_display()}: {self.field_name}'
|
||||
|
||||
def translated_label_override(self, language_code: str | None = None) -> str:
|
||||
lang = (language_code or get_language() or 'de').split('-')[0]
|
||||
if lang == 'en' and self.label_override_en.strip():
|
||||
return self.label_override_en.strip()
|
||||
return self.label_override.strip()
|
||||
|
||||
def translated_help_text_override(self, language_code: str | None = None) -> str:
|
||||
lang = (language_code or get_language() or 'de').split('-')[0]
|
||||
if lang == 'en' and self.help_text_override_en.strip():
|
||||
return self.help_text_override_en.strip()
|
||||
return self.help_text_override.strip()
|
||||
|
||||
|
||||
class NotificationTemplate(models.Model):
|
||||
TEMPLATE_CHOICES = [
|
||||
@@ -249,6 +271,7 @@ class IntroChecklistItem(models.Model):
|
||||
|
||||
section = models.CharField(max_length=30, choices=SECTION_CHOICES)
|
||||
label = models.CharField(max_length=255)
|
||||
label_en = models.CharField(max_length=255, blank=True)
|
||||
sort_order = models.PositiveIntegerField(default=0)
|
||||
is_active = models.BooleanField(default=True)
|
||||
condition_field = models.CharField(max_length=80, blank=True)
|
||||
@@ -261,6 +284,12 @@ class IntroChecklistItem(models.Model):
|
||||
def __str__(self) -> str:
|
||||
return f'{self.get_section_display()}: {self.label}'
|
||||
|
||||
def translated_label(self, language_code: str | None = None) -> str:
|
||||
lang = (language_code or get_language() or 'de').split('-')[0]
|
||||
if lang == 'en' and self.label_en.strip():
|
||||
return self.label_en.strip()
|
||||
return self.label.strip()
|
||||
|
||||
|
||||
class OnboardingIntroductionSession(models.Model):
|
||||
STATUS_CHOICES = [
|
||||
|
||||
Reference in New Issue
Block a user