class SecretFilterForm(BootstrapMixin, forms.Form): q = forms.CharField(required=False, label='Search') role = FilterChoiceField( queryset=SecretRole.objects.annotate(filter_count=Count('secrets')), to_field_name='slug')
class ProviderFilterForm(BootstrapMixin, CustomFieldFilterForm): model = Provider q = forms.CharField(required=False, label='Search') site = FilterChoiceField(queryset=Site.objects.all(), to_field_name='slug') asn = forms.IntegerField(required=False, label='ASN')
class VLANGroupFilterForm(BootstrapMixin, forms.Form): site = FilterChoiceField( queryset=Site.objects.annotate(filter_count=Count('vlan_groups')), to_field_name='slug', null_label='-- Global --' )
class TenantFilterForm(BootstrapMixin, CustomFieldFilterForm): model = Tenant group = FilterChoiceField( queryset=TenantGroup.objects.annotate(filter_count=Count('tenants')), to_field_name='slug', null_option=(0, 'None'))
class ProviderFilterForm(BootstrapMixin, CustomFieldFilterForm): model = Provider site = FilterChoiceField(queryset=Site.objects.all(), to_field_name='slug')
class VRFFilterForm(BootstrapMixin, CustomFieldFilterForm): model = VRF tenant = FilterChoiceField( queryset=Tenant.objects.annotate(filter_count=Count('vrfs')), to_field_name='slug', null_option=(0, None))
class VirtualMachineFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldFilterForm): model = VirtualMachine field_order = [ 'q', 'cluster_group', 'cluster_type', 'cluster_id', 'status', 'role', 'region', 'site', 'tenant_group', 'tenant', 'platform', 'mac_address', ] q = forms.CharField(required=False, label='Search') cluster_group = FilterChoiceField( queryset=ClusterGroup.objects.all(), to_field_name='slug', null_label='-- None --', widget=APISelectMultiple( api_url='/api/virtualization/cluster-groups/', value_field="slug", null_option=True, )) cluster_type = FilterChoiceField( queryset=ClusterType.objects.all(), to_field_name='slug', null_label='-- None --', widget=APISelectMultiple( api_url='/api/virtualization/cluster-types/', value_field="slug", null_option=True, )) cluster_id = FilterChoiceField( queryset=Cluster.objects.all(), label='Cluster', widget=APISelectMultiple(api_url='/api/virtualization/clusters/', )) region = FilterChoiceField(queryset=Region.objects.all(), to_field_name='slug', required=False, widget=APISelectMultiple( api_url='/api/dcim/regions/', value_field="slug", filter_for={'site': 'region'})) site = FilterChoiceField(queryset=Site.objects.all(), to_field_name='slug', null_label='-- None --', widget=APISelectMultiple( api_url='/api/dcim/sites/', value_field="slug", null_option=True, )) role = FilterChoiceField(queryset=DeviceRole.objects.filter(vm_role=True), to_field_name='slug', null_label='-- None --', widget=APISelectMultiple( api_url='/api/dcim/device-roles/', value_field="slug", null_option=True, additional_query_params={'vm_role': "True"})) status = forms.MultipleChoiceField(choices=VM_STATUS_CHOICES, required=False, widget=StaticSelect2Multiple()) platform = FilterChoiceField(queryset=Platform.objects.all(), to_field_name='slug', null_label='-- None --', widget=APISelectMultiple( api_url='/api/dcim/platforms/', value_field="slug", null_option=True, )) mac_address = forms.CharField(required=False, label='MAC address')
class VLANGroupFilterForm(forms.Form, BootstrapMixin): site = FilterChoiceField( queryset=Site.objects.annotate(filter_count=Count('vlan_groups')), to_field_name='slug')
class SecretFilterForm(forms.Form, BootstrapMixin): role = FilterChoiceField(queryset=SecretRole.objects.annotate(filter_count=Count('secrets')), to_field_name='slug')
class PrefixFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldFilterForm): model = Prefix field_order = [ 'q', 'within_include', 'family', 'mask_length', 'vrf_id', 'status', 'site', 'role', 'tenant_group', 'tenant', 'is_pool', 'expand', ] q = forms.CharField(required=False, label='Search') within_include = forms.CharField( required=False, widget=forms.TextInput(attrs={ 'placeholder': 'Prefix', }), label='Search within') family = forms.ChoiceField(required=False, choices=IP_FAMILY_CHOICES, label='Address family', widget=StaticSelect2()) mask_length = forms.ChoiceField(required=False, choices=PREFIX_MASK_LENGTH_CHOICES, label='Mask length', widget=StaticSelect2()) vrf_id = FilterChoiceField(queryset=VRF.objects.all(), label='VRF', null_label='-- Global --', widget=APISelectMultiple( api_url="/api/ipam/vrfs/", null_option=True, )) status = forms.MultipleChoiceField(choices=PREFIX_STATUS_CHOICES, required=False, widget=StaticSelect2Multiple()) site = FilterChoiceField(queryset=Site.objects.all(), to_field_name='slug', null_label='-- None --', widget=APISelectMultiple( api_url="/api/dcim/sites/", value_field="slug", null_option=True, )) role = FilterChoiceField(queryset=Role.objects.all(), to_field_name='slug', null_label='-- None --', widget=APISelectMultiple( api_url="/api/ipam/roles/", value_field="slug", null_option=True, )) is_pool = forms.NullBooleanField( required=False, label='Is a pool', widget=StaticSelect2(choices=BOOLEAN_WITH_BLANK_CHOICES)) expand = forms.BooleanField(required=False, label='Expand prefix hierarchy')
class VRFFilterForm(BootstrapMixin, CustomFieldFilterForm): model = VRF q = forms.CharField(required=False, label='Search') tenant = FilterChoiceField(queryset=Tenant.objects.annotate(filter_count=Count('vrfs')), to_field_name='slug', null_option=(0, None))
class AggregateFilterForm(BootstrapMixin, CustomFieldFilterForm): model = Aggregate family = forms.ChoiceField(required=False, choices=IP_FAMILY_CHOICES, label='Address Family') rir = FilterChoiceField(queryset=RIR.objects.annotate(filter_count=Count('aggregates')), to_field_name='slug', label='RIR')