Răsfoiți Sursa

#6732 - Fix Site form and ASN form

Daniel Sheppard 4 ani în urmă
părinte
comite
0a8788eb97
2 a modificat fișierele cu 14 adăugiri și 1 ștergeri
  1. 9 1
      netbox/dcim/forms/models.py
  2. 5 0
      netbox/ipam/forms/models.py

+ 9 - 1
netbox/dcim/forms/models.py

@@ -174,10 +174,13 @@ class SiteForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
 
     def __init__(self, data=None, instance=None, *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 \
                 (instance and (instance.asn is None or instance.asn == '')) or \
                 (data and (data.get('asn') is None or instance.get('asn')) == ''):
-            print(f'{instance}')
             if 'asn' in self.Meta.fieldsets[0][1]:
                 site_fieldset = list(self.Meta.fieldsets[0][1])
                 index = site_fieldset.index('asn')
@@ -189,6 +192,11 @@ class SiteForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
                 )
             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):
     region = DynamicModelChoiceField(

+ 5 - 0
netbox/ipam/forms/models.py

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