snapshot: preserve dynamic builder and section ordering work
This commit is contained in:
@@ -491,7 +491,7 @@ class FormFieldConfig(models.Model):
|
||||
sort_order = models.PositiveIntegerField(default=0)
|
||||
is_visible = models.BooleanField(default=True)
|
||||
is_required = models.BooleanField(null=True, blank=True, default=None)
|
||||
page_key = models.CharField(max_length=20, blank=True, default='', choices=PAGE_CHOICES)
|
||||
page_key = models.CharField(max_length=80, blank=True, default='')
|
||||
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)
|
||||
@@ -524,21 +524,13 @@ class FormSectionConfig(models.Model):
|
||||
('onboarding', _('Onboarding')),
|
||||
('offboarding', _('Offboarding')),
|
||||
]
|
||||
SECTION_CHOICES = [
|
||||
('stammdaten', _('Stammdaten')),
|
||||
('vertrag', _('Vertrag')),
|
||||
('itsetup', _('IT-Setup')),
|
||||
('abschluss', _('Abschluss')),
|
||||
('mitarbeitende', _('Mitarbeitende')),
|
||||
('austritt', _('Austritt')),
|
||||
]
|
||||
|
||||
form_type = models.CharField(max_length=20, choices=FORM_CHOICES)
|
||||
section_key = models.CharField(max_length=20, choices=SECTION_CHOICES)
|
||||
section_key = models.CharField(max_length=80)
|
||||
sort_order = models.PositiveIntegerField(default=0)
|
||||
is_visible = models.BooleanField(default=True)
|
||||
|
||||
class Meta:
|
||||
ordering = ['form_type', 'section_key']
|
||||
ordering = ['form_type', 'sort_order', 'section_key']
|
||||
unique_together = ('form_type', 'section_key')
|
||||
verbose_name = 'Formularabschnitt-Konfiguration'
|
||||
verbose_name_plural = 'Formularabschnitt-Konfigurationen'
|
||||
@@ -567,6 +559,34 @@ class FormConditionalRuleConfig(models.Model):
|
||||
return f'{self.form_type}: {self.target_key}'
|
||||
|
||||
|
||||
class FormCustomSectionConfig(models.Model):
|
||||
FORM_CHOICES = [
|
||||
('onboarding', _('Onboarding')),
|
||||
]
|
||||
|
||||
form_type = models.CharField(max_length=20, choices=FORM_CHOICES)
|
||||
section_key = models.SlugField(max_length=80)
|
||||
sort_order = models.PositiveIntegerField(default=0)
|
||||
title = models.CharField(max_length=255)
|
||||
title_en = models.CharField(max_length=255, blank=True)
|
||||
is_active = models.BooleanField(default=True)
|
||||
|
||||
class Meta:
|
||||
ordering = ['form_type', 'sort_order', 'section_key']
|
||||
unique_together = ('form_type', 'section_key')
|
||||
verbose_name = 'Benutzerdefinierter Formularabschnitt'
|
||||
verbose_name_plural = 'Benutzerdefinierte Formularabschnitte'
|
||||
|
||||
def __str__(self) -> str:
|
||||
return f'{self.form_type}: {self.title}'
|
||||
|
||||
def translated_title(self, language_code: str | None = None) -> str:
|
||||
lang = (language_code or get_language() or 'de').split('-')[0]
|
||||
if lang == 'en' and self.title_en.strip():
|
||||
return self.title_en.strip()
|
||||
return self.title.strip()
|
||||
|
||||
|
||||
class FormCustomFieldConfig(models.Model):
|
||||
FIELD_TYPE_TEXT = 'text'
|
||||
FIELD_TYPE_TEXTAREA = 'textarea'
|
||||
@@ -582,18 +602,9 @@ class FormCustomFieldConfig(models.Model):
|
||||
('onboarding', _('Onboarding')),
|
||||
('offboarding', _('Offboarding')),
|
||||
]
|
||||
SECTION_CHOICES = [
|
||||
('stammdaten', _('Stammdaten')),
|
||||
('vertrag', _('Vertrag')),
|
||||
('itsetup', _('IT-Setup')),
|
||||
('abschluss', _('Abschluss')),
|
||||
('mitarbeitende', _('Mitarbeitende')),
|
||||
('austritt', _('Austritt')),
|
||||
]
|
||||
|
||||
form_type = models.CharField(max_length=20, choices=FORM_CHOICES)
|
||||
field_key = models.SlugField(max_length=80)
|
||||
section_key = models.CharField(max_length=20, choices=SECTION_CHOICES)
|
||||
section_key = models.CharField(max_length=80)
|
||||
sort_order = models.PositiveIntegerField(default=0)
|
||||
field_type = models.CharField(max_length=20, choices=FIELD_TYPE_CHOICES, default=FIELD_TYPE_TEXT)
|
||||
is_active = models.BooleanField(default=True)
|
||||
|
||||
Reference in New Issue
Block a user