snapshot: preserve dynamic builder and section ordering work

This commit is contained in:
Md Bayazid Bostame
2026-03-27 16:54:11 +01:00
parent fdc27f2123
commit 30877ed8ee
13 changed files with 1391 additions and 365 deletions

View File

@@ -0,0 +1,46 @@
# Generated by Django 5.1.5 on 2026-03-27 12:26
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('workflows', '0055_offboardingrequest_custom_field_values_and_more'),
]
operations = [
migrations.AlterField(
model_name='formcustomfieldconfig',
name='section_key',
field=models.CharField(max_length=80),
),
migrations.AlterField(
model_name='formfieldconfig',
name='page_key',
field=models.CharField(blank=True, default='', max_length=80),
),
migrations.AlterField(
model_name='formsectionconfig',
name='section_key',
field=models.CharField(max_length=80),
),
migrations.CreateModel(
name='FormCustomSectionConfig',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('form_type', models.CharField(choices=[('onboarding', 'Onboarding')], max_length=20)),
('section_key', models.SlugField(max_length=80)),
('sort_order', models.PositiveIntegerField(default=0)),
('title', models.CharField(max_length=255)),
('title_en', models.CharField(blank=True, max_length=255)),
('is_active', models.BooleanField(default=True)),
],
options={
'verbose_name': 'Benutzerdefinierter Formularabschnitt',
'verbose_name_plural': 'Benutzerdefinierte Formularabschnitte',
'ordering': ['form_type', 'sort_order', 'section_key'],
'unique_together': {('form_type', 'section_key')},
},
),
]

View File

@@ -0,0 +1,20 @@
from django.db import migrations
def remove_phone_box_rule(apps, schema_editor):
FormConditionalRuleConfig = apps.get_model('workflows', 'FormConditionalRuleConfig')
FormConditionalRuleConfig.objects.filter(
form_type='onboarding',
target_key='phone-box',
).update(is_active=False, clauses=[])
class Migration(migrations.Migration):
dependencies = [
('workflows', '0056_alter_formcustomfieldconfig_section_key_and_more'),
]
operations = [
migrations.RunPython(remove_phone_box_rule, migrations.RunPython.noop),
]

View File

@@ -0,0 +1,34 @@
# Generated by Django 5.1.5 on 2026-03-27 15:45
from django.db import migrations, models
def seed_section_sort_order(apps, schema_editor):
FormSectionConfig = apps.get_model('workflows', 'FormSectionConfig')
defaults = {
'onboarding': ['stammdaten', 'vertrag', 'itsetup', 'abschluss'],
'offboarding': ['mitarbeitende', 'austritt', 'abschluss'],
}
for form_type, section_keys in defaults.items():
for index, section_key in enumerate(section_keys):
FormSectionConfig.objects.filter(form_type=form_type, section_key=section_key).update(sort_order=index)
class Migration(migrations.Migration):
dependencies = [
('workflows', '0057_remove_phone_box_conditional_rule'),
]
operations = [
migrations.AlterModelOptions(
name='formsectionconfig',
options={'ordering': ['form_type', 'sort_order', 'section_key'], 'verbose_name': 'Formularabschnitt-Konfiguration', 'verbose_name_plural': 'Formularabschnitt-Konfigurationen'},
),
migrations.AddField(
model_name='formsectionconfig',
name='sort_order',
field=models.PositiveIntegerField(default=0),
),
migrations.RunPython(seed_section_sort_order, migrations.RunPython.noop),
]