Esempio n. 1
0
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')
Esempio n. 2
0
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')
Esempio n. 3
0
class VLANGroupFilterForm(BootstrapMixin, forms.Form):
    site = FilterChoiceField(
        queryset=Site.objects.annotate(filter_count=Count('vlan_groups')),
        to_field_name='slug',
        null_label='-- Global --'
    )
Esempio n. 4
0
class TenantFilterForm(BootstrapMixin, CustomFieldFilterForm):
    model = Tenant
    group = FilterChoiceField(
        queryset=TenantGroup.objects.annotate(filter_count=Count('tenants')),
        to_field_name='slug',
        null_option=(0, 'None'))
Esempio n. 5
0
class ProviderFilterForm(BootstrapMixin, CustomFieldFilterForm):
    model = Provider
    site = FilterChoiceField(queryset=Site.objects.all(), to_field_name='slug')
Esempio n. 6
0
class VRFFilterForm(BootstrapMixin, CustomFieldFilterForm):
    model = VRF
    tenant = FilterChoiceField(
        queryset=Tenant.objects.annotate(filter_count=Count('vrfs')),
        to_field_name='slug',
        null_option=(0, None))
Esempio n. 7
0
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')
Esempio n. 8
0
class VLANGroupFilterForm(forms.Form, BootstrapMixin):
    site = FilterChoiceField(
        queryset=Site.objects.annotate(filter_count=Count('vlan_groups')),
        to_field_name='slug')
Esempio n. 9
0
class SecretFilterForm(forms.Form, BootstrapMixin):
    role = FilterChoiceField(queryset=SecretRole.objects.annotate(filter_count=Count('secrets')), to_field_name='slug')
Esempio n. 10
0
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')
Esempio n. 11
0
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))
Esempio n. 12
0
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')