From 99dc46a89e12e68b91f9598b6b0f7ed7f0d5135c Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Fri, 4 Jan 2019 11:46:53 -0500 Subject: [PATCH] Fixes #2742: Preserve cluster assignment when editing a device --- CHANGELOG.md | 5 +++++ netbox/dcim/forms.py | 8 +++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3406e5497..8a56c967b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,11 @@ v2.5.3 (FUTURE) * [#2693](https://github.com/digitalocean/netbox/issues/2693) - Additional cable colors * [#2726](https://github.com/digitalocean/netbox/issues/2726) - Include cables in global search +## Bug Fixes + +* [#2742](https://github.com/digitalocean/netbox/issues/2742) - Preserve cluster assignment when editing a device + + --- v2.5.2 (2018-12-21) diff --git a/netbox/dcim/forms.py b/netbox/dcim/forms.py index 61feba08c..c15952330 100644 --- a/netbox/dcim/forms.py +++ b/netbox/dcim/forms.py @@ -1213,11 +1213,13 @@ class DeviceForm(BootstrapMixin, TenancyForm, CustomFieldForm): # Initialize helper selectors instance = kwargs.get('instance') + if 'initial' not in kwargs: + kwargs['initial'] = {} # Using hasattr() instead of "is not None" to avoid RelatedObjectDoesNotExist on required field if instance and hasattr(instance, 'device_type'): - initial = kwargs.get('initial', {}).copy() - initial['manufacturer'] = instance.device_type.manufacturer - kwargs['initial'] = initial + kwargs['initial']['manufacturer'] = instance.device_type.manufacturer + if instance and instance.cluster is not None: + kwargs['initial']['cluster_group'] = instance.cluster.group super().__init__(*args, **kwargs)