Parcourir la source

Fixed selector initializations for TenancyForms

Jeremy Stretch il y a 8 ans
Parent
commit
ed80bfaf02
4 fichiers modifiés avec 20 ajouts et 14 suppressions
  1. 5 2
      netbox/circuits/forms.py
  2. 6 3
      netbox/dcim/forms.py
  3. 6 5
      netbox/ipam/forms.py
  4. 3 4
      netbox/tenancy/forms.py

+ 5 - 2
netbox/circuits/forms.py

@@ -219,14 +219,17 @@ class CircuitTerminationForm(BootstrapMixin, ChainedFieldsMixin, forms.ModelForm
             'term_side': forms.HiddenInput(),
         }
 
-    def __init__(self, instance=None, initial=None, *args, **kwargs):
+    def __init__(self, *args, **kwargs):
 
         # Initialize helper selectors
+        instance = kwargs.get('instance')
         if instance and instance.interface is not None:
+            initial = kwargs.get('initial', {})
             initial['rack'] = instance.interface.device.rack
             initial['device'] = instance.interface.device
+            kwargs['initial'] = initial
 
-        super(CircuitTerminationForm, self).__init__(instance=instance, initial=initial, *args, **kwargs)
+        super(CircuitTerminationForm, self).__init__(*args, **kwargs)
 
         # Mark connected interfaces as disabled
         self.fields['interface'].choices = [

+ 6 - 3
netbox/dcim/forms.py

@@ -592,13 +592,16 @@ class DeviceForm(BootstrapMixin, TenancyForm, CustomFieldForm):
             'face': forms.Select(attrs={'filter-for': 'position'}),
         }
 
-    def __init__(self, instance=None, initial=None, *args, **kwargs):
+    def __init__(self, *args, **kwargs):
 
-        # Initialize helper selections
+        # Initialize helper selectors
+        instance = kwargs.get('instance')
         if instance and instance.device_type is not None:
+            initial = kwargs.get('initial', {})
             initial['manufacturer'] = instance.device_type.manufacturer
+            kwargs['initial'] = initial
 
-        super(DeviceForm, self).__init__(instance=instance, initial=initial, *args, **kwargs)
+        super(DeviceForm, self).__init__(*args, **kwargs)
 
         if self.instance.pk:
 

+ 6 - 5
netbox/ipam/forms.py

@@ -405,21 +405,22 @@ class IPAddressForm(BootstrapMixin, TenancyForm, ReturnURLForm, CustomFieldForm)
             'tenant',
         ]
 
-    def __init__(self, instance=None, initial=None, *args, **kwargs):
+    def __init__(self, *args, **kwargs):
 
-        # Initialize interface selectors
+        # Initialize helper selectors
+        instance = kwargs.get('instance')
+        initial = kwargs.get('initial', {})
         if instance and instance.interface is not None:
             initial['interface_site'] = instance.interface.device.site
             initial['interface_rack'] = instance.interface.device.rack
             initial['interface_device'] = instance.interface.device
-
-        # Initialize NAT selectors
         if instance and instance.nat_inside is not None:
             initial['nat_site'] = instance.nat_inside.device.site
             initial['nat_rack'] = instance.nat_inside.device.rack
             initial['nat_device'] = instance.nat_inside.device
+        kwargs['initial'] = initial
 
-        super(IPAddressForm, self).__init__(instance=instance, initial=initial, *args, **kwargs)
+        super(IPAddressForm, self).__init__(*args, **kwargs)
 
         self.fields['vrf'].empty_label = 'Global'
 

+ 3 - 4
netbox/tenancy/forms.py

@@ -91,9 +91,8 @@ class TenancyForm(ChainedFieldsMixin, forms.Form):
         # Initialize helper selector
         instance = kwargs.get('instance')
         if instance and instance.tenant is not None:
-            try:
-                kwargs['initial']['tenant_group'] = instance.tenant.group
-            except KeyError:
-                kwargs['initial'] = {'tenant_group': instance.tenant.group}
+            initial = kwargs.get('initial', {})
+            initial['tenant_group'] = instance.tenant.group
+            kwargs['initial'] = initial
 
         super(TenancyForm, self).__init__(*args, **kwargs)