class CircuitFilterForm(BootstrapMixin, TenancyFilterForm, StatusFilterFormMixin, CustomFieldFilterForm): model = Circuit field_order = [ "q", "type", "provider", "status", "region", "site", "tenant_group", "tenant", "commit_rate", ] q = forms.CharField(required=False, label="Search") type = DynamicModelMultipleChoiceField(queryset=CircuitType.objects.all(), to_field_name="slug", required=False) provider = DynamicModelMultipleChoiceField(queryset=Provider.objects.all(), to_field_name="slug", required=False) region = DynamicModelMultipleChoiceField(queryset=Region.objects.all(), to_field_name="slug", required=False) site = DynamicModelMultipleChoiceField( queryset=Site.objects.all(), to_field_name="slug", required=False, query_params={"region": "$region"}, ) commit_rate = forms.IntegerField(required=False, min_value=0, label="Commit rate (Kbps)") tag = TagFilterField(model)
class ProviderNetworkFilterForm(BootstrapMixin, CustomFieldFilterForm): model = ProviderNetwork field_order = ["q", "provider_id"] q = forms.CharField(required=False, label="Search") provider_id = DynamicModelMultipleChoiceField( queryset=Provider.objects.all(), required=False, label="Provider") tag = TagFilterField(model)
class SecretFilterForm(BootstrapMixin, CustomFieldFilterForm): model = Secret q = forms.CharField(required=False, label="Search") provider = forms.MultipleChoiceField(choices=provider_choices_with_blank, widget=StaticSelect2Multiple(), required=False) tag = TagFilterField(model)
class ClusterFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldFilterForm): model = Cluster field_order = [ "q", "type", "region", "site", "group", "tenant_group", "tenant" ] q = forms.CharField(required=False, label="Search") type = DynamicModelMultipleChoiceField(queryset=ClusterType.objects.all(), to_field_name="slug", required=False) region = DynamicModelMultipleChoiceField(queryset=Region.objects.all(), to_field_name="slug", required=False) site = DynamicModelMultipleChoiceField( queryset=Site.objects.all(), to_field_name="slug", required=False, null_option="None", query_params={"region": "$region"}, ) group = DynamicModelMultipleChoiceField( queryset=ClusterGroup.objects.all(), to_field_name="slug", required=False, null_option="None", ) tag = TagFilterField(model)
class VirtualMachineFilterForm( BootstrapMixin, TenancyFilterForm, StatusFilterFormMixin, CustomFieldFilterForm, LocalContextFilterForm ): 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 = DynamicModelMultipleChoiceField( queryset=ClusterGroup.objects.all(), to_field_name="slug", required=False, null_option="None", ) cluster_type = DynamicModelMultipleChoiceField( queryset=ClusterType.objects.all(), to_field_name="slug", required=False, null_option="None", ) cluster_id = DynamicModelMultipleChoiceField(queryset=Cluster.objects.all(), required=False, label="Cluster") region = DynamicModelMultipleChoiceField(queryset=Region.objects.all(), to_field_name="slug", required=False) site = DynamicModelMultipleChoiceField( queryset=Site.objects.all(), to_field_name="slug", required=False, null_option="None", query_params={"region": "$region"}, ) role = DynamicModelMultipleChoiceField( queryset=DeviceRole.objects.filter(vm_role=True), to_field_name="slug", required=False, null_option="None", query_params={"vm_role": "True"}, ) platform = DynamicModelMultipleChoiceField( queryset=Platform.objects.all(), to_field_name="slug", required=False, null_option="None", ) mac_address = forms.CharField(required=False, label="MAC address") has_primary_ip = forms.NullBooleanField( required=False, label="Has a primary IP", widget=StaticSelect2(choices=BOOLEAN_WITH_BLANK_CHOICES), ) tag = TagFilterField(model)
class VLANFilterForm(BootstrapMixin, TenancyFilterForm, StatusFilterFormMixin, CustomFieldFilterForm): model = VLAN field_order = [ "q", "region", "site", "group_id", "status", "role", "tenant_group", "tenant", ] q = forms.CharField(required=False, label="Search") region = DynamicModelMultipleChoiceField(queryset=Region.objects.all(), to_field_name="slug", required=False) site = DynamicModelMultipleChoiceField( queryset=Site.objects.all(), to_field_name="slug", required=False, null_option="None", query_params={"region": "$region"}, ) group_id = DynamicModelMultipleChoiceField( queryset=VLANGroup.objects.all(), required=False, label="VLAN group", null_option="None", query_params={"region": "$region"}, ) role = DynamicModelMultipleChoiceField( queryset=Role.objects.all(), to_field_name="slug", required=False, null_option="None", ) tag = TagFilterField(model)
class ServiceFilterForm(BootstrapMixin, CustomFieldFilterForm): model = Service q = forms.CharField(required=False, label="Search") protocol = forms.ChoiceField( choices=add_blank_choice(ServiceProtocolChoices), required=False, widget=StaticSelect2Multiple(), ) port = forms.IntegerField(required=False, ) tag = TagFilterField(model)
class TenantFilterForm(BootstrapMixin, CustomFieldFilterForm): model = Tenant q = forms.CharField(required=False, label="Search") group = DynamicModelMultipleChoiceField( queryset=TenantGroup.objects.all(), to_field_name="slug", required=False, null_option="None", ) tag = TagFilterField(model)
class IPAddressFilterForm(BootstrapMixin, TenancyFilterForm, StatusFilterFormMixin, CustomFieldFilterForm): model = IPAddress field_order = [ "q", "parent", "family", "mask_length", "vrf_id", "present_in_vrf_id", "status", "role", "assigned_to_interface", "tenant_group", "tenant", ] q = forms.CharField(required=False, label="Search") parent = forms.CharField( required=False, widget=forms.TextInput(attrs={ "placeholder": "Prefix", }), label="Parent Prefix", ) family = forms.ChoiceField( required=False, choices=add_blank_choice(IPAddressFamilyChoices), label="Address family", widget=StaticSelect2(), ) mask_length = forms.ChoiceField( required=False, choices=IPADDRESS_MASK_LENGTH_CHOICES, label="Mask length", widget=StaticSelect2(), ) vrf_id = DynamicModelMultipleChoiceField( queryset=VRF.objects.all(), required=False, label="Assigned VRF", null_option="Global", ) present_in_vrf_id = DynamicModelChoiceField(queryset=VRF.objects.all(), required=False, label="Present in VRF") role = forms.MultipleChoiceField(choices=IPAddressRoleChoices, required=False, widget=StaticSelect2Multiple()) assigned_to_interface = forms.NullBooleanField( required=False, label="Assigned to an interface", widget=StaticSelect2(choices=BOOLEAN_WITH_BLANK_CHOICES), ) tag = TagFilterField(model)
class VMInterfaceFilterForm(BootstrapMixin, CustomFieldFilterForm): model = VMInterface cluster_id = DynamicModelMultipleChoiceField(queryset=Cluster.objects.all(), required=False, label="Cluster") virtual_machine_id = DynamicModelMultipleChoiceField( queryset=VirtualMachine.objects.all(), required=False, label="Virtual machine", query_params={"cluster_id": "$cluster_id"}, ) enabled = forms.NullBooleanField(required=False, widget=StaticSelect2(choices=BOOLEAN_WITH_BLANK_CHOICES)) tag = TagFilterField(model)
class AggregateFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldFilterForm): model = Aggregate q = forms.CharField(required=False, label="Search") family = forms.ChoiceField( required=False, choices=add_blank_choice(IPAddressFamilyChoices), label="Address family", widget=StaticSelect2(), ) rir = DynamicModelMultipleChoiceField(queryset=RIR.objects.all(), to_field_name="slug", required=False, label="RIR") tag = TagFilterField(model)
class VRFFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldFilterForm): model = VRF field_order = ["q", "import_target", "export_target", "tenant_group", "tenant"] q = forms.CharField(required=False, label="Search") import_target = DynamicModelMultipleChoiceField( queryset=RouteTarget.objects.all(), to_field_name="name", required=False ) export_target = DynamicModelMultipleChoiceField( queryset=RouteTarget.objects.all(), to_field_name="name", required=False ) tag = TagFilterField(model)
class ProviderFilterForm(BootstrapMixin, CustomFieldFilterForm): model = Provider q = forms.CharField(required=False, label="Search") region = DynamicModelMultipleChoiceField(queryset=Region.objects.all(), to_field_name="slug", required=False) site = DynamicModelMultipleChoiceField( queryset=Site.objects.all(), to_field_name="slug", required=False, query_params={"region": "$region"}, ) asn = forms.IntegerField(required=False, label="ASN") tag = TagFilterField(model)
class RouteTargetFilterForm(BootstrapMixin, TenancyFilterForm, CustomFieldFilterForm): model = RouteTarget field_order = [ "q", "name", "tenant_group", "tenant", "importing_vrfs", "exporting_vrfs", ] q = forms.CharField(required=False, label="Search") importing_vrf_id = DynamicModelMultipleChoiceField( queryset=VRF.objects.all(), required=False, label="Imported by VRF") exporting_vrf_id = DynamicModelMultipleChoiceField( queryset=VRF.objects.all(), required=False, label="Exported by VRF") tag = TagFilterField(model)
class PrefixFilterForm(BootstrapMixin, TenancyFilterForm, StatusFilterFormMixin, CustomFieldFilterForm): model = Prefix field_order = [ "q", "within_include", "family", "mask_length", "vrf_id", "present_in_vrf_id", "status", "region", "site", "role", "tenant_group", "tenant", "is_pool", "expand", ] mask_length__lte = forms.IntegerField(widget=forms.HiddenInput()) 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=add_blank_choice(IPAddressFamilyChoices), label="Address family", widget=StaticSelect2(), ) mask_length = forms.ChoiceField( required=False, choices=PREFIX_MASK_LENGTH_CHOICES, label="Mask length", widget=StaticSelect2(), ) vrf_id = DynamicModelMultipleChoiceField( queryset=VRF.objects.all(), required=False, label="Assigned VRF", null_option="Global", ) present_in_vrf_id = DynamicModelChoiceField(queryset=VRF.objects.all(), required=False, label="Present in VRF") region = DynamicModelMultipleChoiceField(queryset=Region.objects.all(), to_field_name="slug", required=False) site = DynamicModelMultipleChoiceField( queryset=Site.objects.all(), to_field_name="slug", required=False, null_option="None", query_params={"region": "$region"}, ) role = DynamicModelMultipleChoiceField( queryset=Role.objects.all(), to_field_name="slug", required=False, null_option="None", ) is_pool = forms.NullBooleanField( required=False, label="Is a pool", widget=StaticSelect2(choices=BOOLEAN_WITH_BLANK_CHOICES), ) tag = TagFilterField(model)