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"),
verbose_name="schedule offset days",
),
),
+ migrations.RunPython(
+ code=invert_existing_offset_values,
+ reverse_code=migrations.RunPython.noop,
+ ),
]
--- /dev/null
+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)