mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-23 07:56:44 -06:00
Add manufacturer for filters in the virtual machine and device #12741
This commit is contained in:
parent
14447befb9
commit
0ec158d2c4
@ -643,7 +643,7 @@ class DeviceFilterForm(
|
||||
(None, ('q', 'filter_id', 'tag')),
|
||||
(_('Location'), ('region_id', 'site_group_id', 'site_id', 'location_id', 'rack_id')),
|
||||
(_('Operation'), ('status', 'role_id', 'airflow', 'serial', 'asset_tag', 'mac_address')),
|
||||
(_('Hardware'), ('manufacturer_id', 'device_type_id', 'platform_id')),
|
||||
(_('Hardware'), ('manufacturer_id', 'platform_id', 'device_type_id')),
|
||||
(_('Tenant'), ('tenant_group_id', 'tenant_id')),
|
||||
(_('Contacts'), ('contact', 'contact_role', 'contact_group')),
|
||||
(_('Components'), (
|
||||
@ -713,7 +713,10 @@ class DeviceFilterForm(
|
||||
queryset=Platform.objects.all(),
|
||||
required=False,
|
||||
null_option='None',
|
||||
label=_('Platform')
|
||||
label=_('Platform'),
|
||||
query_params={
|
||||
"manufacturer_id": '$manufacturer_id'
|
||||
}
|
||||
)
|
||||
status = forms.MultipleChoiceField(
|
||||
label=_('Status'),
|
||||
|
@ -439,10 +439,21 @@ class DeviceForm(TenancyForm, NetBoxModelForm):
|
||||
label=_('Device role'),
|
||||
queryset=DeviceRole.objects.all()
|
||||
)
|
||||
manufacturer = DynamicModelChoiceField(
|
||||
label=_('Manufacturer'),
|
||||
queryset=Manufacturer.objects.all(),
|
||||
required=False,
|
||||
initial_params={
|
||||
'platforms': '$platform'
|
||||
}
|
||||
)
|
||||
platform = DynamicModelChoiceField(
|
||||
label=_('Platform'),
|
||||
queryset=Platform.objects.all(),
|
||||
required=False
|
||||
required=False,
|
||||
query_params={
|
||||
"manufacturer_id": '$manufacturer'
|
||||
}
|
||||
)
|
||||
cluster = DynamicModelChoiceField(
|
||||
label=_('Cluster'),
|
||||
|
@ -64,6 +64,7 @@
|
||||
<h5 class="offset-sm-3">{% trans "Management" %}</h5>
|
||||
</div>
|
||||
{% render_field form.status %}
|
||||
{% render_field form.manufacturer %}
|
||||
{% render_field form.platform %}
|
||||
{% render_field form.config_template %}
|
||||
{% if object.pk %}
|
||||
|
@ -1,7 +1,7 @@
|
||||
from django import forms
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from dcim.models import Device, DeviceRole, Platform, Region, Site, SiteGroup
|
||||
from dcim.models import Device, DeviceRole, Manufacturer, Platform, Region, Site, SiteGroup
|
||||
from extras.forms import LocalConfigContextFilterForm
|
||||
from extras.models import ConfigTemplate
|
||||
from ipam.models import L2VPN, VRF
|
||||
@ -94,7 +94,7 @@ class VirtualMachineFilterForm(
|
||||
(None, ('q', 'filter_id', 'tag')),
|
||||
(_('Cluster'), ('cluster_group_id', 'cluster_type_id', 'cluster_id', 'device_id')),
|
||||
(_('Location'), ('region_id', 'site_group_id', 'site_id')),
|
||||
(_('Attributes'), ('status', 'role_id', 'platform_id', 'mac_address', 'has_primary_ip', 'config_template_id', 'local_context_data')),
|
||||
(_('Attributes'), ('status', 'role_id', 'manufacturer_id', 'platform_id', 'mac_address', 'has_primary_ip', 'config_template_id', 'local_context_data')),
|
||||
(_('Tenant'), ('tenant_group_id', 'tenant_id')),
|
||||
(_('Contacts'), ('contact', 'contact_role', 'contact_group')),
|
||||
)
|
||||
@ -154,11 +154,19 @@ class VirtualMachineFilterForm(
|
||||
choices=VirtualMachineStatusChoices,
|
||||
required=False
|
||||
)
|
||||
manufacturer_id = DynamicModelMultipleChoiceField(
|
||||
queryset=Manufacturer.objects.all(),
|
||||
required=False,
|
||||
label=_('Manufacturer'),
|
||||
)
|
||||
platform_id = DynamicModelMultipleChoiceField(
|
||||
queryset=Platform.objects.all(),
|
||||
required=False,
|
||||
null_option='None',
|
||||
label=_('Platform')
|
||||
label=_('Platform'),
|
||||
query_params = {
|
||||
"manufacturer_id": '$manufacturer_id'
|
||||
}
|
||||
)
|
||||
mac_address = forms.CharField(
|
||||
required=False,
|
||||
|
@ -4,7 +4,7 @@ from django.core.exceptions import ValidationError
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from dcim.forms.common import InterfaceCommonForm
|
||||
from dcim.models import Device, DeviceRole, Platform, Rack, Region, Site, SiteGroup
|
||||
from dcim.models import Device, DeviceRole, Manufacturer, Platform, Rack, Region, Site, SiteGroup
|
||||
from extras.models import ConfigTemplate
|
||||
from ipam.models import IPAddress, VLAN, VLANGroup, VRF
|
||||
from netbox.forms import NetBoxModelForm
|
||||
@ -197,10 +197,21 @@ class VirtualMachineForm(TenancyForm, NetBoxModelForm):
|
||||
"vm_role": "True"
|
||||
}
|
||||
)
|
||||
manufacturer = DynamicModelChoiceField(
|
||||
label=_('Manufacturer'),
|
||||
queryset=Manufacturer.objects.all(),
|
||||
required=False,
|
||||
initial_params={
|
||||
'platforms': '$platform'
|
||||
}
|
||||
)
|
||||
platform = DynamicModelChoiceField(
|
||||
label=_('Platform'),
|
||||
queryset=Platform.objects.all(),
|
||||
required=False
|
||||
required=False,
|
||||
query_params={
|
||||
"manufacturer_id": '$manufacturer'
|
||||
}
|
||||
)
|
||||
local_context_data = JSONField(
|
||||
required=False,
|
||||
@ -217,7 +228,7 @@ class VirtualMachineForm(TenancyForm, NetBoxModelForm):
|
||||
(_('Virtual Machine'), ('name', 'role', 'status', 'description', 'tags')),
|
||||
(_('Site/Cluster'), ('site', 'cluster', 'device')),
|
||||
(_('Tenancy'), ('tenant_group', 'tenant')),
|
||||
(_('Management'), ('platform', 'primary_ip4', 'primary_ip6', 'config_template')),
|
||||
(_('Management'), ('manufacturer', 'platform', 'primary_ip4', 'primary_ip6', 'config_template')),
|
||||
(_('Resources'), ('vcpus', 'memory', 'disk')),
|
||||
(_('Config Context'), ('local_context_data',)),
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user