From 34f24de3e48482486255c6c60983b81f2247d425 Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Tue, 9 Nov 2021 17:08:28 -0500 Subject: [PATCH] Fixes #7757: Fix 404 when assigning multiple contacts/FHRP groups in succession --- docs/release-notes/version-3.1.md | 1 + netbox/ipam/models/fhrp.py | 6 +-- netbox/ipam/views.py | 6 +-- netbox/templates/inc/panels/contacts.html | 2 +- netbox/templates/inc/panels/nhrp_groups.html | 49 ------------------- .../ipam/inc/panels/fhrp_groups.html | 6 +-- netbox/tenancy/models/contacts.py | 2 + netbox/tenancy/views.py | 6 +-- 8 files changed, 12 insertions(+), 66 deletions(-) delete mode 100644 netbox/templates/inc/panels/nhrp_groups.html diff --git a/docs/release-notes/version-3.1.md b/docs/release-notes/version-3.1.md index b19e7979c..912a68357 100644 --- a/docs/release-notes/version-3.1.md +++ b/docs/release-notes/version-3.1.md @@ -8,6 +8,7 @@ ### Bug Fixes * [#7756](https://github.com/netbox-community/netbox/issues/7756) - Fix AttributeError exception when editing an IP address assigned to a FHRPGroup +* [#7757](https://github.com/netbox-community/netbox/issues/7757) - Fix 404 when assigning multiple contacts/FHRP groups in succession * [#7768](https://github.com/netbox-community/netbox/issues/7768) - Validate IP address status when creating a new FHRP group * [#7771](https://github.com/netbox-community/netbox/issues/7771) - Group assignment should be optional when creating contacts via REST API diff --git a/netbox/ipam/models/fhrp.py b/netbox/ipam/models/fhrp.py index 5a12a54bb..e6624b27b 100644 --- a/netbox/ipam/models/fhrp.py +++ b/netbox/ipam/models/fhrp.py @@ -52,9 +52,7 @@ class FHRPGroup(PrimaryModel): objects = RestrictedQuerySet.as_manager() - clone_fields = [ - 'protocol', 'auth_type', 'auth_key' - ] + clone_fields = ('protocol', 'auth_type', 'auth_key') class Meta: ordering = ['protocol', 'group_id', 'pk'] @@ -91,6 +89,8 @@ class FHRPGroupAssignment(ChangeLoggedModel): objects = RestrictedQuerySet.as_manager() + clone_fields = ('interface_type', 'interface_id') + class Meta: ordering = ('-priority', 'pk') unique_together = ('interface_type', 'interface_id', 'group') diff --git a/netbox/ipam/views.py b/netbox/ipam/views.py index 407f6d29e..2267a27d3 100644 --- a/netbox/ipam/views.py +++ b/netbox/ipam/views.py @@ -976,11 +976,7 @@ class FHRPGroupAssignmentEditView(generic.ObjectEditView): def alter_obj(self, instance, request, args, kwargs): if not instance.pk: # Assign the interface based on URL kwargs - try: - app_label, model = request.GET.get('interface_type').split('.') - except (AttributeError, ValueError): - raise Http404("Content type not specified") - content_type = get_object_or_404(ContentType, app_label=app_label, model=model) + content_type = get_object_or_404(ContentType, pk=request.GET.get('interface_type')) instance.interface = get_object_or_404(content_type.model_class(), pk=request.GET.get('interface_id')) return instance diff --git a/netbox/templates/inc/panels/contacts.html b/netbox/templates/inc/panels/contacts.html index 872c11153..e3e5cf483 100644 --- a/netbox/templates/inc/panels/contacts.html +++ b/netbox/templates/inc/panels/contacts.html @@ -41,7 +41,7 @@ {% if perms.tenancy.add_contactassignment %} diff --git a/netbox/templates/inc/panels/nhrp_groups.html b/netbox/templates/inc/panels/nhrp_groups.html deleted file mode 100644 index 223354441..000000000 --- a/netbox/templates/inc/panels/nhrp_groups.html +++ /dev/null @@ -1,49 +0,0 @@ -{% load helpers %} - -
-
Contacts
-
- {% with fhrp_groups=object.fhrp_group_assignments.all %} - {% if contacts.exists %} - - - - - - - - {% for contact in contacts %} - - - - - - - {% endfor %} -
ProtocolGroup IDPriority
- {{ contact.contact }} - {{ contact.role|placeholder }}{{ contact.get_priority_display|placeholder }} - {% if perms.tenancy.change_contactassignment %} - - - - {% endif %} - {% if perms.tenancy.delete_contactassignment %} - - - - {% endif %} -
- {% else %} -
None
- {% endif %} - {% endwith %} -
- {% if perms.tenancy.add_contactassignment %} - - {% endif %} -
diff --git a/netbox/templates/ipam/inc/panels/fhrp_groups.html b/netbox/templates/ipam/inc/panels/fhrp_groups.html index 9692927a3..6583694ef 100644 --- a/netbox/templates/ipam/inc/panels/fhrp_groups.html +++ b/netbox/templates/ipam/inc/panels/fhrp_groups.html @@ -46,7 +46,7 @@ {% empty %} - None + None {% endfor %} @@ -54,12 +54,12 @@