|
|
@@ -1,7 +1,8 @@
|
|
|
from django import forms
|
|
|
from django.utils.translation import gettext as _
|
|
|
|
|
|
-from dcim.models import Location, Rack, Region, Site, SiteGroup
|
|
|
+from dcim.models import Location, Rack, Region, Site, SiteGroup, Device
|
|
|
+from virtualization.models import VirtualMachine
|
|
|
from ipam.choices import *
|
|
|
from ipam.constants import *
|
|
|
from ipam.models import *
|
|
|
@@ -265,6 +266,7 @@ class IPAddressFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
|
|
|
('Attributes', ('parent', 'family', 'status', 'role', 'mask_length', 'assigned_to_interface')),
|
|
|
('VRF', ('vrf_id', 'present_in_vrf_id')),
|
|
|
('Tenant', ('tenant_group_id', 'tenant_id')),
|
|
|
+ ('Device/VM', ('device_id', 'virtual_machine_id')),
|
|
|
)
|
|
|
parent = forms.CharField(
|
|
|
required=False,
|
|
|
@@ -298,6 +300,16 @@ class IPAddressFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
|
|
|
required=False,
|
|
|
label=_('Present in VRF')
|
|
|
)
|
|
|
+ device_id = DynamicModelMultipleChoiceField(
|
|
|
+ queryset=Device.objects.all(),
|
|
|
+ required=False,
|
|
|
+ label=_('Assigned Device'),
|
|
|
+ )
|
|
|
+ virtual_machine_id = DynamicModelMultipleChoiceField(
|
|
|
+ queryset=VirtualMachine.objects.all(),
|
|
|
+ required=False,
|
|
|
+ label=_('Assigned VM'),
|
|
|
+ )
|
|
|
status = MultipleChoiceField(
|
|
|
choices=IPAddressStatusChoices,
|
|
|
required=False
|