snapshot: preserve custom field parity across forms timeline and pdf

This commit is contained in:
Md Bayazid Bostame
2026-03-27 13:21:25 +01:00
parent 2e5e941d41
commit fdc27f2123
20 changed files with 2294 additions and 545 deletions

View File

@@ -0,0 +1,63 @@
# Generated by Django 5.1.5 on 2026-03-27 12:07
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('workflows', '0054_formconditionalruleconfig'),
]
operations = [
migrations.AddField(
model_name='offboardingrequest',
name='custom_field_values',
field=models.JSONField(blank=True, default=dict),
),
migrations.AddField(
model_name='onboardingrequest',
name='custom_field_values',
field=models.JSONField(blank=True, default=dict),
),
migrations.AlterField(
model_name='formfieldconfig',
name='page_key',
field=models.CharField(blank=True, choices=[('', 'Automatisch'), ('stammdaten', 'Stammdaten'), ('vertrag', 'Vertrag'), ('itsetup', 'IT-Setup'), ('abschluss', 'Abschluss'), ('mitarbeitende', 'Mitarbeitende'), ('austritt', 'Austritt')], default='', max_length=20),
),
migrations.AlterField(
model_name='formsectionconfig',
name='form_type',
field=models.CharField(choices=[('onboarding', 'Onboarding'), ('offboarding', 'Offboarding')], max_length=20),
),
migrations.AlterField(
model_name='formsectionconfig',
name='section_key',
field=models.CharField(choices=[('stammdaten', 'Stammdaten'), ('vertrag', 'Vertrag'), ('itsetup', 'IT-Setup'), ('abschluss', 'Abschluss'), ('mitarbeitende', 'Mitarbeitende'), ('austritt', 'Austritt')], max_length=20),
),
migrations.CreateModel(
name='FormCustomFieldConfig',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('form_type', models.CharField(choices=[('onboarding', 'Onboarding'), ('offboarding', 'Offboarding')], max_length=20)),
('field_key', models.SlugField(max_length=80)),
('section_key', models.CharField(choices=[('stammdaten', 'Stammdaten'), ('vertrag', 'Vertrag'), ('itsetup', 'IT-Setup'), ('abschluss', 'Abschluss'), ('mitarbeitende', 'Mitarbeitende'), ('austritt', 'Austritt')], max_length=20)),
('sort_order', models.PositiveIntegerField(default=0)),
('field_type', models.CharField(choices=[('text', 'Text'), ('textarea', 'Mehrzeilig'), ('select', 'Auswahl'), ('checkbox', 'Checkbox')], default='text', max_length=20)),
('is_active', models.BooleanField(default=True)),
('is_required', models.BooleanField(default=False)),
('label', models.CharField(max_length=255)),
('label_en', models.CharField(blank=True, max_length=255)),
('help_text', models.TextField(blank=True)),
('help_text_en', models.TextField(blank=True)),
('select_options', models.TextField(blank=True, help_text='Eine Option pro Zeile. Optional: wert|Label')),
('select_options_en', models.TextField(blank=True, help_text='Eine Option pro Zeile. Optional: value|Label')),
],
options={
'verbose_name': 'Benutzerdefiniertes Formularfeld',
'verbose_name_plural': 'Benutzerdefinierte Formularfelder',
'ordering': ['form_type', 'section_key', 'sort_order', 'field_key'],
'unique_together': {('form_type', 'field_key')},
},
),
]