]> git.ipfire.org Git - thirdparty/paperless-ngx.git/commitdiff
Fix: add negation to scheduled wf migration fix-negate-scheduled-wf
authorshamoon <4887959+shamoon@users.noreply.github.com>
Wed, 18 Jun 2025 14:47:10 +0000 (07:47 -0700)
committershamoon <4887959+shamoon@users.noreply.github.com>
Wed, 18 Jun 2025 14:47:10 +0000 (07:47 -0700)
src/documents/migrations/1066_alter_workflowtrigger_schedule_offset_days.py
src/documents/tests/test_migration_invert_scheduled.py [new file with mode: 0644]

index eaf23ad64d3fc085b31da29da9ca68cdcc487a40..0bb7f9d0c65f1889f7db85aad7529c3a59e90561 100644 (file)
@@ -4,6 +4,13 @@ from django.db import migrations
 from django.db import models
 
 
+def invert_existing_offset_values(apps, schema_editor):
+    WorkflowTrigger = apps.get_model("documents", "WorkflowTrigger")
+    WorkflowTrigger.objects.filter(
+        type=4,
+    ).update(schedule_offset_days=models.F("schedule_offset_days") * -1)
+
+
 class Migration(migrations.Migration):
     dependencies = [
         ("documents", "1065_workflowaction_assign_custom_fields_values"),
@@ -19,4 +26,8 @@ class Migration(migrations.Migration):
                 verbose_name="schedule offset days",
             ),
         ),
+        migrations.RunPython(
+            code=invert_existing_offset_values,
+            reverse_code=migrations.RunPython.noop,
+        ),
     ]
diff --git a/src/documents/tests/test_migration_invert_scheduled.py b/src/documents/tests/test_migration_invert_scheduled.py
new file mode 100644 (file)
index 0000000..b148222
--- /dev/null
@@ -0,0 +1,19 @@
+from documents.tests.utils import DirectoriesMixin
+from documents.tests.utils import TestMigrations
+
+
+class TestMigrateScheduledWorkflowTrigger(DirectoriesMixin, TestMigrations):
+    migrate_from = "1065_workflowaction_assign_custom_fields_values"
+    migrate_to = "1066_alter_workflowtrigger_schedule_offset_days"
+
+    def setUpBeforeMigration(self, apps):
+        WorkflowTrigger = apps.get_model("documents", "WorkflowTrigger")
+        WorkflowTrigger.objects.create(
+            type=4,
+            schedule_offset_days=5,
+        )
+
+    def testTriggerMigrated(self):
+        WorkflowTrigger = self.apps.get_model("documents", "WorkflowTrigger")
+        trigger = WorkflowTrigger.objects.get(id=1)
+        self.assertEqual(trigger.schedule_offset_days, -5)