Просмотр исходного кода

Fixes #2742: Preserve cluster assignment when editing a device

Jeremy Stretch 7 лет назад
Родитель
Сommit
99dc46a89e
2 измененных файлов с 10 добавлено и 3 удалено
  1. 5 0
      CHANGELOG.md
  2. 5 3
      netbox/dcim/forms.py

+ 5 - 0
CHANGELOG.md

@@ -8,6 +8,11 @@ v2.5.3 (FUTURE)
 * [#2693](https://github.com/digitalocean/netbox/issues/2693) - Additional cable colors
 * [#2693](https://github.com/digitalocean/netbox/issues/2693) - Additional cable colors
 * [#2726](https://github.com/digitalocean/netbox/issues/2726) - Include cables in global search
 * [#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)
 v2.5.2 (2018-12-21)

+ 5 - 3
netbox/dcim/forms.py

@@ -1213,11 +1213,13 @@ class DeviceForm(BootstrapMixin, TenancyForm, CustomFieldForm):
 
 
         # Initialize helper selectors
         # Initialize helper selectors
         instance = kwargs.get('instance')
         instance = kwargs.get('instance')
+        if 'initial' not in kwargs:
+            kwargs['initial'] = {}
         # Using hasattr() instead of "is not None" to avoid RelatedObjectDoesNotExist on required field
         # Using hasattr() instead of "is not None" to avoid RelatedObjectDoesNotExist on required field
         if instance and hasattr(instance, 'device_type'):
         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)
         super().__init__(*args, **kwargs)