Saria Hajjar 6 лет назад
Родитель
Сommit
472486acd6
3 измененных файлов с 10 добавлено и 17 удалено
  1. 3 7
      netbox/ipam/forms.py
  2. 5 7
      netbox/ipam/views.py
  3. 2 3
      netbox/templates/ipam/ipaddress_assign.html

+ 3 - 7
netbox/ipam/forms.py

@@ -933,7 +933,7 @@ class IPAddressBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldBulkEd
 
 
 class IPAddressAssignForm(BootstrapMixin, forms.Form):
-    vrf = forms.ModelChoiceField(
+    vrf_id = forms.ModelChoiceField(
         queryset=VRF.objects.all(),
         required=False,
         label='VRF',
@@ -942,13 +942,9 @@ class IPAddressAssignForm(BootstrapMixin, forms.Form):
             api_url="/api/ipam/vrfs/"
         )
     )
-    address = forms.CharField(
-        label='IP Address',
-        required=False,
-    )
-    dns_name = forms.CharField(
-        label='DNS Name',
+    q = forms.CharField(
         required=False,
+        label='Search',
     )
 
 

+ 5 - 7
netbox/ipam/views.py

@@ -749,14 +749,12 @@ class IPAddressAssignView(PermissionRequiredMixin, View):
 
         if form.is_valid():
 
-            queryset = IPAddress.objects.prefetch_related(
+            addresses = IPAddress.objects.prefetch_related(
                 'vrf', 'tenant', 'interface__device', 'interface__virtual_machine'
-            ).filter(
-                vrf=form.cleaned_data['vrf'],
-                address__istartswith=form.cleaned_data['address'],
-                dns_name__icontains=form.cleaned_data['dns_name'],
-            )[:100]  # Limit to 100 results
-            table = tables.IPAddressAssignTable(queryset)
+            )
+            # Limit to 100 results
+            addresses = filters.IPAddressFilter(request.POST, addresses).qs[:100]
+            table = tables.IPAddressAssignTable(addresses)
 
         return render(request, 'ipam/ipaddress_assign.html', {
             'form': form,

+ 2 - 3
netbox/templates/ipam/ipaddress_assign.html

@@ -24,9 +24,8 @@
             <div class="panel panel-default">
                 <div class="panel-heading"><strong>Select IP Address</strong></div>
                 <div class="panel-body">
-                    {% render_field form.vrf %}
-                    {% render_field form.address %}
-                    {% render_field form.dns_name %}
+                    {% render_field form.vrf_id %}
+                    {% render_field form.q %}
                 </div>
             </div>
             </div>