|
1 | 1 | from django import forms |
2 | 2 | from django.utils.translation import gettext as _ |
3 | 3 |
|
4 | | -from dcim.models import Location, Rack, Region, Site, SiteGroup |
| 4 | +from dcim.models import Location, Rack, Region, Site, SiteGroup, Device |
| 5 | +from virtualization.models import VirtualMachine |
5 | 6 | from ipam.choices import * |
6 | 7 | from ipam.constants import * |
7 | 8 | from ipam.models import * |
@@ -265,6 +266,7 @@ class IPAddressFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm): |
265 | 266 | ('Attributes', ('parent', 'family', 'status', 'role', 'mask_length', 'assigned_to_interface')), |
266 | 267 | ('VRF', ('vrf_id', 'present_in_vrf_id')), |
267 | 268 | ('Tenant', ('tenant_group_id', 'tenant_id')), |
| 269 | + ('Device/VM', ('device_id', 'virtual_machine_id')), |
268 | 270 | ) |
269 | 271 | parent = forms.CharField( |
270 | 272 | required=False, |
@@ -298,6 +300,16 @@ class IPAddressFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm): |
298 | 300 | required=False, |
299 | 301 | label=_('Present in VRF') |
300 | 302 | ) |
| 303 | + device_id = DynamicModelMultipleChoiceField( |
| 304 | + queryset=Device.objects.all(), |
| 305 | + required=False, |
| 306 | + label=_('Assigned Device'), |
| 307 | + ) |
| 308 | + virtual_machine_id = DynamicModelMultipleChoiceField( |
| 309 | + queryset=VirtualMachine.objects.all(), |
| 310 | + required=False, |
| 311 | + label=_('Assigned VM'), |
| 312 | + ) |
301 | 313 | status = MultipleChoiceField( |
302 | 314 | choices=IPAddressStatusChoices, |
303 | 315 | required=False |
|
0 commit comments