#6732 - Fix Site form and ASN form

This commit is contained in:
Daniel Sheppard 2021-10-28 13:57:36 -05:00
parent 9565addcd4
commit 0a8788eb97
2 changed files with 14 additions and 1 deletions

View File

@ -174,10 +174,13 @@ class SiteForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
def __init__(self, data=None, instance=None, *args, **kwargs): def __init__(self, data=None, instance=None, *args, **kwargs):
super().__init__(data=data, instance=instance, *args, **kwargs) super().__init__(data=data, instance=instance, *args, **kwargs)
self.fields['asns'].initial = self.instance.asns.all().values_list('id', flat=True)
# Hide the ASN field if there is nothing there as this is deprecated
if instance is None or \ if instance is None or \
(instance and (instance.asn is None or instance.asn == '')) or \ (instance and (instance.asn is None or instance.asn == '')) or \
(data and (data.get('asn') is None or instance.get('asn')) == ''): (data and (data.get('asn') is None or instance.get('asn')) == ''):
print(f'{instance}')
if 'asn' in self.Meta.fieldsets[0][1]: if 'asn' in self.Meta.fieldsets[0][1]:
site_fieldset = list(self.Meta.fieldsets[0][1]) site_fieldset = list(self.Meta.fieldsets[0][1])
index = site_fieldset.index('asn') index = site_fieldset.index('asn')
@ -189,6 +192,11 @@ class SiteForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
) )
del self.fields['asn'] del self.fields['asn']
def save(self, *args, **kwargs):
instance = super().save(*args, **kwargs)
instance.asns.set(self.cleaned_data['asns'])
return instance
class LocationForm(BootstrapMixin, TenancyForm, CustomFieldModelForm): class LocationForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
region = DynamicModelChoiceField( region = DynamicModelChoiceField(

View File

@ -129,6 +129,11 @@ class ASNForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
queryset=RIR.objects.all(), queryset=RIR.objects.all(),
label='RIR', label='RIR',
) )
sites = DynamicModelMultipleChoiceField(
queryset=Site.objects.all(),
label='Sites',
required=False
)
class Meta: class Meta:
model = ASN model = ASN