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

Replace 'nullable' attribute with null_option

Jeremy Stretch 5 лет назад
Родитель
Сommit
b917403c93
5 измененных файлов с 16 добавлено и 40 удалено
  1. 4 12
      netbox/dcim/forms.py
  2. 4 12
      netbox/ipam/forms.py
  3. 4 4
      netbox/project-static/js/forms.js
  4. 1 3
      netbox/tenancy/forms.py
  5. 3 9
      netbox/virtualization/forms.py

+ 4 - 12
netbox/dcim/forms.py

@@ -1747,12 +1747,10 @@ class DeviceForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
     cluster_group = DynamicModelChoiceField(
     cluster_group = DynamicModelChoiceField(
         queryset=ClusterGroup.objects.all(),
         queryset=ClusterGroup.objects.all(),
         required=False,
         required=False,
+        null_option='None',
         widget=APISelect(
         widget=APISelect(
             filter_for={
             filter_for={
                 'cluster': 'group_id'
                 'cluster': 'group_id'
-            },
-            attrs={
-                'nullable': 'true'
             }
             }
         )
         )
     )
     )
@@ -3438,12 +3436,10 @@ class ConnectCableToDeviceForm(BootstrapMixin, forms.ModelForm):
         queryset=Rack.objects.all(),
         queryset=Rack.objects.all(),
         label='Rack',
         label='Rack',
         required=False,
         required=False,
+        null_option='None',
         widget=APISelect(
         widget=APISelect(
             filter_for={
             filter_for={
                 'termination_b_device': 'rack_id',
                 'termination_b_device': 'rack_id',
-            },
-            attrs={
-                'nullable': 'true',
             }
             }
         )
         )
     )
     )
@@ -3982,12 +3978,10 @@ class VirtualChassisCreateForm(BootstrapMixin, forms.ModelForm):
     rack = DynamicModelChoiceField(
     rack = DynamicModelChoiceField(
         queryset=Rack.objects.all(),
         queryset=Rack.objects.all(),
         required=False,
         required=False,
+        null_option='None',
         widget=APISelect(
         widget=APISelect(
             filter_for={
             filter_for={
                 'members': 'rack_id'
                 'members': 'rack_id'
-            },
-            attrs={
-                'nullable': 'true',
             }
             }
         )
         )
     )
     )
@@ -4118,12 +4112,10 @@ class VCMemberSelectForm(BootstrapMixin, forms.Form):
     rack = DynamicModelChoiceField(
     rack = DynamicModelChoiceField(
         queryset=Rack.objects.all(),
         queryset=Rack.objects.all(),
         required=False,
         required=False,
+        null_option='None',
         widget=APISelect(
         widget=APISelect(
             filter_for={
             filter_for={
                 'device': 'rack_id'
                 'device': 'rack_id'
-            },
-            attrs={
-                'nullable': 'true',
             }
             }
         )
         )
     )
     )

+ 4 - 12
netbox/ipam/forms.py

@@ -257,13 +257,11 @@ class PrefixForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
     site = DynamicModelChoiceField(
     site = DynamicModelChoiceField(
         queryset=Site.objects.all(),
         queryset=Site.objects.all(),
         required=False,
         required=False,
+        null_option='None',
         widget=APISelect(
         widget=APISelect(
             filter_for={
             filter_for={
                 'vlan_group': 'site_id',
                 'vlan_group': 'site_id',
                 'vlan': 'site_id',
                 'vlan': 'site_id',
-            },
-            attrs={
-                'nullable': 'true',
             }
             }
         )
         )
     )
     )
@@ -271,12 +269,10 @@ class PrefixForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
         queryset=VLANGroup.objects.all(),
         queryset=VLANGroup.objects.all(),
         required=False,
         required=False,
         label='VLAN group',
         label='VLAN group',
+        null_option='None',
         widget=APISelect(
         widget=APISelect(
             filter_for={
             filter_for={
                 'vlan': 'group_id'
                 'vlan': 'group_id'
-            },
-            attrs={
-                'nullable': 'true',
             }
             }
         )
         )
     )
     )
@@ -556,12 +552,10 @@ class IPAddressForm(BootstrapMixin, TenancyForm, ReturnURLForm, CustomFieldModel
         required=False,
         required=False,
         label='Rack',
         label='Rack',
         display_field='display_name',
         display_field='display_name',
+        null_option='None',
         widget=APISelect(
         widget=APISelect(
             filter_for={
             filter_for={
                 'nat_device': 'rack_id'
                 'nat_device': 'rack_id'
-            },
-            attrs={
-                'nullable': 'true'
             }
             }
         )
         )
     )
     )
@@ -985,12 +979,10 @@ class VLANForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
     site = DynamicModelChoiceField(
     site = DynamicModelChoiceField(
         queryset=Site.objects.all(),
         queryset=Site.objects.all(),
         required=False,
         required=False,
+        null_option='None',
         widget=APISelect(
         widget=APISelect(
             filter_for={
             filter_for={
                 'group': 'site_id'
                 'group': 'site_id'
-            },
-            attrs={
-                'nullable': 'true',
             }
             }
         )
         )
     )
     )

+ 4 - 4
netbox/project-static/js/forms.js

@@ -74,7 +74,7 @@ $(document).ready(function() {
         form.submit();
         form.submit();
     });
     });
 
 
-    // Parse URLs which may contain variable refrences to other field values
+    // Parse URLs which may contain variable references to other field values
     function parseURL(url) {
     function parseURL(url) {
         var filter_regex = /\{\{([a-z_]+)\}\}/g;
         var filter_regex = /\{\{([a-z_]+)\}\}/g;
         var match;
         var match;
@@ -87,7 +87,7 @@ $(document).ready(function() {
                 rendered_url = rendered_url.replace(match[0], custom_attr);
                 rendered_url = rendered_url.replace(match[0], custom_attr);
             } else if (filter_field.val()) {
             } else if (filter_field.val()) {
                 rendered_url = rendered_url.replace(match[0], filter_field.val());
                 rendered_url = rendered_url.replace(match[0], filter_field.val());
-            } else if (filter_field.attr('nullable') == 'true') {
+            } else if (filter_field.attr('data-null-option')) {
                 rendered_url = rendered_url.replace(match[0], 'null');
                 rendered_url = rendered_url.replace(match[0], 'null');
             }
             }
         }
         }
@@ -123,7 +123,7 @@ $(document).ready(function() {
 
 
     // API backed selection
     // API backed selection
     // Includes live search and chained fields
     // Includes live search and chained fields
-    // The `multiple` setting may be controled via a data-* attribute
+    // The `multiple` setting may be controlled via a data-* attribute
     $('.netbox-select2-api').select2({
     $('.netbox-select2-api').select2({
         allowClear: true,
         allowClear: true,
         placeholder: "---------",
         placeholder: "---------",
@@ -165,7 +165,7 @@ $(document).ready(function() {
                 filter_for_elements.each(function(index, filter_for_element) {
                 filter_for_elements.each(function(index, filter_for_element) {
                     var param_name = $(filter_for_element).attr(attr_name);
                     var param_name = $(filter_for_element).attr(attr_name);
                     var is_required = $(filter_for_element).attr("required");
                     var is_required = $(filter_for_element).attr("required");
-                    var is_nullable = $(filter_for_element).attr("nullable");
+                    var is_nullable = $(filter_for_element).attr("data-null-option");
                     var is_visible = $(filter_for_element).is(":visible");
                     var is_visible = $(filter_for_element).is(":visible");
                     var value = $(filter_for_element).val();
                     var value = $(filter_for_element).val();
 
 

+ 1 - 3
netbox/tenancy/forms.py

@@ -119,12 +119,10 @@ class TenancyForm(forms.Form):
     tenant_group = DynamicModelChoiceField(
     tenant_group = DynamicModelChoiceField(
         queryset=TenantGroup.objects.all(),
         queryset=TenantGroup.objects.all(),
         required=False,
         required=False,
+        null_option='None',
         widget=APISelect(
         widget=APISelect(
             filter_for={
             filter_for={
                 'tenant': 'group_id',
                 'tenant': 'group_id',
-            },
-            attrs={
-                'nullable': 'true',
             }
             }
         )
         )
     )
     )

+ 3 - 9
netbox/virtualization/forms.py

@@ -197,12 +197,10 @@ class ClusterAddDevicesForm(BootstrapMixin, forms.Form):
     region = DynamicModelChoiceField(
     region = DynamicModelChoiceField(
         queryset=Region.objects.all(),
         queryset=Region.objects.all(),
         required=False,
         required=False,
+        null_option='None',
         widget=APISelect(
         widget=APISelect(
             filter_for={
             filter_for={
                 "site": "region_id",
                 "site": "region_id",
-            },
-            attrs={
-                'nullable': 'true',
             }
             }
         )
         )
     )
     )
@@ -219,12 +217,10 @@ class ClusterAddDevicesForm(BootstrapMixin, forms.Form):
     rack = DynamicModelChoiceField(
     rack = DynamicModelChoiceField(
         queryset=Rack.objects.all(),
         queryset=Rack.objects.all(),
         required=False,
         required=False,
+        null_option='None',
         widget=APISelect(
         widget=APISelect(
             filter_for={
             filter_for={
                 "devices": "rack_id"
                 "devices": "rack_id"
-            },
-            attrs={
-                'nullable': 'true',
             }
             }
         )
         )
     )
     )
@@ -278,12 +274,10 @@ class VirtualMachineForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
     cluster_group = DynamicModelChoiceField(
     cluster_group = DynamicModelChoiceField(
         queryset=ClusterGroup.objects.all(),
         queryset=ClusterGroup.objects.all(),
         required=False,
         required=False,
+        null_option='None',
         widget=APISelect(
         widget=APISelect(
             filter_for={
             filter_for={
                 "cluster": "group_id",
                 "cluster": "group_id",
-            },
-            attrs={
-                'nullable': 'true',
             }
             }
         )
         )
     )
     )