Coverage for migrations / 0028_migrate_additional_props.py: 0%

22 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2026-01-22 07:15 +0000

1# Generated by Django 4.2.27 on 2026-01-16 08:14 

2 

3import pgtrigger 

4from django.db import migrations 

5 

6 

7def forward(apps, schema_editor): 

8 FormKitSchemaNode = apps.get_model("formkit_ninja", "FormKitSchemaNode") 

9 

10 # We use pgtrigger.ignore to bypass protection triggers during this data migration 

11 # just in case some nodes are protected. 

12 with pgtrigger.ignore("formkit_ninja.FormKitSchemaNode:protect_node_updates"): 

13 for node in FormKitSchemaNode.objects.filter(additional_props__isnull=False).iterator(): 

14 changed = False 

15 props = node.additional_props 

16 if not isinstance(props, dict): 

17 continue 

18 

19 if "icon" in props: 

20 node.icon = props.pop("icon") 

21 changed = True 

22 if "title" in props: 

23 node.title = props.pop("title") 

24 changed = True 

25 

26 if changed: 

27 node.additional_props = props 

28 node.save() 

29 

30 

31class Migration(migrations.Migration): 

32 dependencies = [ 

33 ("formkit_ninja", "0027_remove_formkitschemanode_insert_insert_and_more"), 

34 ] 

35 

36 operations = [ 

37 migrations.RunPython(forward, migrations.RunPython.noop), 

38 ]