Fixed selector initializations for TenancyForms

This commit is contained in:
Jeremy Stretch 2017-05-11 17:52:23 -04:00
parent 473b35f9a3
commit ed80bfaf02
4 changed files with 20 additions and 14 deletions

View File

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

View File

@ -592,13 +592,16 @@ class DeviceForm(BootstrapMixin, TenancyForm, CustomFieldForm):
'face': forms.Select(attrs={'filter-for': 'position'}), '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: if instance and instance.device_type is not None:
initial = kwargs.get('initial', {})
initial['manufacturer'] = instance.device_type.manufacturer 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: if self.instance.pk:

View File

@ -405,21 +405,22 @@ class IPAddressForm(BootstrapMixin, TenancyForm, ReturnURLForm, CustomFieldForm)
'tenant', '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: if instance and instance.interface is not None:
initial['interface_site'] = instance.interface.device.site initial['interface_site'] = instance.interface.device.site
initial['interface_rack'] = instance.interface.device.rack initial['interface_rack'] = instance.interface.device.rack
initial['interface_device'] = instance.interface.device initial['interface_device'] = instance.interface.device
# Initialize NAT selectors
if instance and instance.nat_inside is not None: if instance and instance.nat_inside is not None:
initial['nat_site'] = instance.nat_inside.device.site initial['nat_site'] = instance.nat_inside.device.site
initial['nat_rack'] = instance.nat_inside.device.rack initial['nat_rack'] = instance.nat_inside.device.rack
initial['nat_device'] = instance.nat_inside.device 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' self.fields['vrf'].empty_label = 'Global'

View File

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