mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
#14132: Fix migration
This commit is contained in:
@ -11,9 +11,11 @@ def move_webhooks(apps, schema_editor):
|
|||||||
Webhook = apps.get_model("extras", "Webhook")
|
Webhook = apps.get_model("extras", "Webhook")
|
||||||
EventRule = apps.get_model("extras", "EventRule")
|
EventRule = apps.get_model("extras", "EventRule")
|
||||||
|
|
||||||
|
webhook_ct = ContentType.objects.get_for_model(Webhook).pk
|
||||||
for webhook in Webhook.objects.all():
|
for webhook in Webhook.objects.all():
|
||||||
event = EventRule()
|
event = EventRule()
|
||||||
|
|
||||||
|
# Replicate attributes from Webhook instance
|
||||||
event.name = webhook.name
|
event.name = webhook.name
|
||||||
event.type_create = webhook.type_create
|
event.type_create = webhook.type_create
|
||||||
event.type_update = webhook.type_update
|
event.type_update = webhook.type_update
|
||||||
@ -24,7 +26,7 @@ def move_webhooks(apps, schema_editor):
|
|||||||
event.conditions = webhook.conditions
|
event.conditions = webhook.conditions
|
||||||
|
|
||||||
event.action_type = EventRuleActionChoices.WEBHOOK
|
event.action_type = EventRuleActionChoices.WEBHOOK
|
||||||
event.action_object_type_id = ContentType.objects.get_for_model(webhook).id
|
event.action_object_type_id = webhook_ct
|
||||||
event.action_object_id = webhook.id
|
event.action_object_id = webhook.id
|
||||||
event.save()
|
event.save()
|
||||||
event.content_types.add(*webhook.content_types.all())
|
event.content_types.add(*webhook.content_types.all())
|
||||||
@ -37,6 +39,8 @@ class Migration(migrations.Migration):
|
|||||||
]
|
]
|
||||||
|
|
||||||
operations = [
|
operations = [
|
||||||
|
|
||||||
|
# Create the EventRule model
|
||||||
migrations.CreateModel(
|
migrations.CreateModel(
|
||||||
name='EventRule',
|
name='EventRule',
|
||||||
fields=[
|
fields=[
|
||||||
@ -68,7 +72,30 @@ class Migration(migrations.Migration):
|
|||||||
'ordering': ('name',),
|
'ordering': ('name',),
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='eventrule',
|
||||||
|
name='action_object_type',
|
||||||
|
field=models.ForeignKey(
|
||||||
|
on_delete=django.db.models.deletion.CASCADE,
|
||||||
|
related_name='eventrule_actions',
|
||||||
|
to='contenttypes.contenttype',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='eventrule',
|
||||||
|
name='content_types',
|
||||||
|
field=models.ManyToManyField(related_name='eventrules', to='contenttypes.contenttype'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='eventrule',
|
||||||
|
name='tags',
|
||||||
|
field=taggit.managers.TaggableManager(through='extras.TaggedItem', to='extras.Tag'),
|
||||||
|
),
|
||||||
|
|
||||||
|
# Replicate Webhook data
|
||||||
migrations.RunPython(move_webhooks),
|
migrations.RunPython(move_webhooks),
|
||||||
|
|
||||||
|
# Remove obsolete fields from Webhook
|
||||||
migrations.RemoveConstraint(
|
migrations.RemoveConstraint(
|
||||||
model_name='webhook',
|
model_name='webhook',
|
||||||
name='extras_webhook_unique_payload_url_types',
|
name='extras_webhook_unique_payload_url_types',
|
||||||
@ -105,25 +132,8 @@ class Migration(migrations.Migration):
|
|||||||
model_name='webhook',
|
model_name='webhook',
|
||||||
name='type_update',
|
name='type_update',
|
||||||
),
|
),
|
||||||
migrations.AddField(
|
|
||||||
model_name='eventrule',
|
# Add description field to Webhook
|
||||||
name='action_object_type',
|
|
||||||
field=models.ForeignKey(
|
|
||||||
on_delete=django.db.models.deletion.CASCADE,
|
|
||||||
related_name='eventrule_actions',
|
|
||||||
to='contenttypes.contenttype',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='eventrule',
|
|
||||||
name='content_types',
|
|
||||||
field=models.ManyToManyField(related_name='eventrules', to='contenttypes.contenttype'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='eventrule',
|
|
||||||
name='tags',
|
|
||||||
field=taggit.managers.TaggableManager(through='extras.TaggedItem', to='extras.Tag'),
|
|
||||||
),
|
|
||||||
migrations.AddField(
|
migrations.AddField(
|
||||||
model_name='webhook',
|
model_name='webhook',
|
||||||
name='description',
|
name='description',
|
||||||
|
Reference in New Issue
Block a user