Skip to content

Commit cfc20f9

Browse files
committed
#14132: Fix migration
1 parent 625825d commit cfc20f9

File tree

1 file changed

+30
-20
lines changed

1 file changed

+30
-20
lines changed

netbox/extras/migrations/0101_eventrule.py

+30-20
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@ def move_webhooks(apps, schema_editor):
1111
Webhook = apps.get_model("extras", "Webhook")
1212
EventRule = apps.get_model("extras", "EventRule")
1313

14+
webhook_ct = ContentType.objects.get_for_model(Webhook).pk
1415
for webhook in Webhook.objects.all():
1516
event = EventRule()
1617

18+
# Replicate attributes from Webhook instance
1719
event.name = webhook.name
1820
event.type_create = webhook.type_create
1921
event.type_update = webhook.type_update
@@ -24,7 +26,7 @@ def move_webhooks(apps, schema_editor):
2426
event.conditions = webhook.conditions
2527

2628
event.action_type = EventRuleActionChoices.WEBHOOK
27-
event.action_object_type_id = ContentType.objects.get_for_model(webhook).id
29+
event.action_object_type_id = webhook_ct
2830
event.action_object_id = webhook.id
2931
event.save()
3032
event.content_types.add(*webhook.content_types.all())
@@ -37,6 +39,8 @@ class Migration(migrations.Migration):
3739
]
3840

3941
operations = [
42+
43+
# Create the EventRule model
4044
migrations.CreateModel(
4145
name='EventRule',
4246
fields=[
@@ -68,7 +72,30 @@ class Migration(migrations.Migration):
6872
'ordering': ('name',),
6973
},
7074
),
75+
migrations.AddField(
76+
model_name='eventrule',
77+
name='action_object_type',
78+
field=models.ForeignKey(
79+
on_delete=django.db.models.deletion.CASCADE,
80+
related_name='eventrule_actions',
81+
to='contenttypes.contenttype',
82+
),
83+
),
84+
migrations.AddField(
85+
model_name='eventrule',
86+
name='content_types',
87+
field=models.ManyToManyField(related_name='eventrules', to='contenttypes.contenttype'),
88+
),
89+
migrations.AddField(
90+
model_name='eventrule',
91+
name='tags',
92+
field=taggit.managers.TaggableManager(through='extras.TaggedItem', to='extras.Tag'),
93+
),
94+
95+
# Replicate Webhook data
7196
migrations.RunPython(move_webhooks),
97+
98+
# Remove obsolete fields from Webhook
7299
migrations.RemoveConstraint(
73100
model_name='webhook',
74101
name='extras_webhook_unique_payload_url_types',
@@ -105,25 +132,8 @@ class Migration(migrations.Migration):
105132
model_name='webhook',
106133
name='type_update',
107134
),
108-
migrations.AddField(
109-
model_name='eventrule',
110-
name='action_object_type',
111-
field=models.ForeignKey(
112-
on_delete=django.db.models.deletion.CASCADE,
113-
related_name='eventrule_actions',
114-
to='contenttypes.contenttype',
115-
),
116-
),
117-
migrations.AddField(
118-
model_name='eventrule',
119-
name='content_types',
120-
field=models.ManyToManyField(related_name='eventrules', to='contenttypes.contenttype'),
121-
),
122-
migrations.AddField(
123-
model_name='eventrule',
124-
name='tags',
125-
field=taggit.managers.TaggableManager(through='extras.TaggedItem', to='extras.Tag'),
126-
),
135+
136+
# Add description field to Webhook
127137
migrations.AddField(
128138
model_name='webhook',
129139
name='description',

0 commit comments

Comments
 (0)