diff --git a/triggers/admin.py b/triggers/admin.py index 2efab76..eee9d9d 100644 --- a/triggers/admin.py +++ b/triggers/admin.py @@ -46,6 +46,7 @@ class ConditionInline(StackedPolymorphicInline): class ActionInline(StackedPolymorphicInline): model = Action child_inlines = generate_child_inlines(Action) + fk_name = "trigger" class EventInline(StackedPolymorphicInline): diff --git a/triggers/migrations/0004_alter_action_trigger.py b/triggers/migrations/0004_alter_action_trigger.py index 2a498d1..9e0fc73 100644 --- a/triggers/migrations/0004_alter_action_trigger.py +++ b/triggers/migrations/0004_alter_action_trigger.py @@ -4,6 +4,13 @@ import django.db.models.deletion +def save_action_triggers(apps, schema_editor): + Action = apps.get_model("triggers", "Action") + for action in Action.objects.all(): + action.trigger_new_id = action.trigger_id + action.save() + + class Migration(migrations.Migration): dependencies = [ @@ -11,9 +18,11 @@ class Migration(migrations.Migration): ] operations = [ - migrations.AlterField( + migrations.AddField( model_name='action', - name='trigger', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='actions', related_query_name='action', to='triggers.trigger', verbose_name='trigger'), + name='trigger_new', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='actions_new', + related_query_name='action_new', to='triggers.trigger', verbose_name='trigger'), ), + migrations.RunPython(save_action_triggers, reverse_code=migrations.RunPython.noop), ] diff --git a/triggers/migrations/0005_alter_action_triggers.py b/triggers/migrations/0005_alter_action_triggers.py new file mode 100644 index 0000000..918766d --- /dev/null +++ b/triggers/migrations/0005_alter_action_triggers.py @@ -0,0 +1,44 @@ +# Generated by Django 3.2.20 on 2024-06-04 05:14 + +from django.db import migrations, models +import django.db.models.deletion + + +def save_action_triggers(apps, schema_editor): + Action = apps.get_model("triggers", "Action") + for action in Action.objects.all(): + action.trigger_new_id = action.trigger_id + action.save() + + +class Migration(migrations.Migration): + + dependencies = [ + ('triggers', '0004_alter_action_trigger'), + ] + + operations = [ + migrations.RenameField( + model_name='action', + old_name='trigger', + new_name='trigger_old', + ), + migrations.RenameField( + model_name='action', + old_name='trigger_new', + new_name='trigger', + ), + migrations.AlterField( + model_name='action', + name='trigger', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='actions', + related_query_name='action', to='triggers.trigger', verbose_name='trigger'), + ), + migrations.AlterField( + model_name='action', + name='trigger_old', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, + related_name='actions_old', related_query_name='action_old', to='triggers.trigger', + verbose_name='trigger obsolete'), + ), + ] diff --git a/triggers/models.py b/triggers/models.py index 2ea2032..9840add 100644 --- a/triggers/models.py +++ b/triggers/models.py @@ -100,6 +100,16 @@ class Action(PolymorphicModel): related_name='actions', related_query_name='action', verbose_name=_('trigger'), + null=True + ) + trigger_old = models.ForeignKey( + to=Trigger, + on_delete=models.CASCADE, + related_name='actions_old', + related_query_name='action_old', + verbose_name=_('trigger obsolete'), + null=True, + blank=True, ) class Meta: