From ba20dabfa4ece34dcf0fbc71e946e91051fa32e3 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Wed, 18 Jun 2025 07:47:10 -0700 Subject: [PATCH] Fix: add negation to scheduled wf migration --- ...er_workflowtrigger_schedule_offset_days.py | 11 +++++++++++ .../tests/test_migration_invert_scheduled.py | 19 +++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 src/documents/tests/test_migration_invert_scheduled.py diff --git a/src/documents/migrations/1066_alter_workflowtrigger_schedule_offset_days.py b/src/documents/migrations/1066_alter_workflowtrigger_schedule_offset_days.py index eaf23ad64..0bb7f9d0c 100644 --- a/src/documents/migrations/1066_alter_workflowtrigger_schedule_offset_days.py +++ b/src/documents/migrations/1066_alter_workflowtrigger_schedule_offset_days.py @@ -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 index 000000000..b14822211 --- /dev/null +++ b/src/documents/tests/test_migration_invert_scheduled.py @@ -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)