Ejemplo n.º 1
0
Archivo: forms.py Proyecto: ypid/netbox
class VLANFilterForm(BootstrapMixin, TenancyFilterForm, 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,
                                             widget=APISelectMultiple(
                                                 value_field="slug",
                                                 filter_for={
                                                     'site': 'region',
                                                     'group_id': 'region'
                                                 }))
    site = DynamicModelMultipleChoiceField(queryset=Site.objects.all(),
                                           to_field_name='slug',
                                           required=False,
                                           widget=APISelectMultiple(
                                               value_field="slug",
                                               null_option=True,
                                           ))
    group_id = DynamicModelMultipleChoiceField(
        queryset=VLANGroup.objects.all(),
        required=False,
        label='VLAN group',
        widget=APISelectMultiple(null_option=True, ))
    status = forms.MultipleChoiceField(choices=VLANStatusChoices,
                                       required=False,
                                       widget=StaticSelect2Multiple())
    role = DynamicModelMultipleChoiceField(queryset=Role.objects.all(),
                                           to_field_name='slug',
                                           required=False,
                                           widget=APISelectMultiple(
                                               value_field="slug",
                                               null_option=True,
                                           ))
    tag = TagFilterField(model)
Ejemplo n.º 2
0
class VMInterfaceFilterForm(forms.Form):
    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)
Ejemplo n.º 3
0
class TenancyFilterForm(forms.Form):
    tenant_group = DynamicModelMultipleChoiceField(
        queryset=TenantGroup.objects.all(),
        to_field_name='slug',
        required=False,
        widget=APISelectMultiple(
            value_field="slug",
            null_option=True,
            filter_for={
                'tenant': 'group'
            }
        )
    )
    tenant = DynamicModelMultipleChoiceField(
        queryset=Tenant.objects.all(),
        to_field_name='slug',
        required=False,
        widget=APISelectMultiple(
            value_field="slug",
            null_option=True,
        )
    )
Ejemplo n.º 4
0
class ConfigContextFilterForm(BootstrapMixin, forms.Form):
    q = forms.CharField(required=False, label='Search')
    region = DynamicModelMultipleChoiceField(queryset=Region.objects.all(),
                                             to_field_name='slug',
                                             required=False,
                                             widget=APISelectMultiple(
                                                 value_field="slug", ))
    site = DynamicModelMultipleChoiceField(queryset=Site.objects.all(),
                                           to_field_name='slug',
                                           required=False,
                                           widget=APISelectMultiple(
                                               value_field="slug", ))
    role = DynamicModelMultipleChoiceField(queryset=DeviceRole.objects.all(),
                                           to_field_name='slug',
                                           required=False,
                                           widget=APISelectMultiple(
                                               value_field="slug", ))
    platform = DynamicModelMultipleChoiceField(queryset=Platform.objects.all(),
                                               to_field_name='slug',
                                               required=False,
                                               widget=APISelectMultiple(
                                                   value_field="slug", ))
    cluster_group = DynamicModelMultipleChoiceField(
        queryset=ClusterGroup.objects.all(),
        to_field_name='slug',
        required=False,
        widget=APISelectMultiple(value_field="slug", ))
    cluster_id = DynamicModelMultipleChoiceField(
        queryset=Cluster.objects.all(), required=False, label='Cluster')
    tenant_group = DynamicModelMultipleChoiceField(
        queryset=TenantGroup.objects.all(),
        to_field_name='slug',
        required=False,
        widget=APISelectMultiple(value_field="slug", ))
    tenant = DynamicModelMultipleChoiceField(queryset=Tenant.objects.all(),
                                             to_field_name='slug',
                                             required=False,
                                             widget=APISelectMultiple(
                                                 value_field="slug", ))
    tag = DynamicModelMultipleChoiceField(queryset=Tag.objects.all(),
                                          to_field_name='slug',
                                          required=False,
                                          widget=APISelectMultiple(
                                              value_field="slug", ))
Ejemplo n.º 5
0
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,
        widget=APISelectMultiple(
            api_url="/api/tenancy/tenant-groups/",
            value_field="slug",
            null_option=True,
        ))
    tag = TagFilterField(model)
Ejemplo n.º 6
0
class VirtualChassisFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
    model = VirtualChassis
    field_groups = [
        ['q', 'tag'],
        ['region_id', 'site_group_id', 'site_id'],
        ['tenant_group_id', 'tenant_id'],
    ]
    region_id = DynamicModelMultipleChoiceField(queryset=Region.objects.all(),
                                                required=False,
                                                label=_('Region'))
    site_group_id = DynamicModelMultipleChoiceField(
        queryset=SiteGroup.objects.all(),
        required=False,
        label=_('Site group'))
    site_id = DynamicModelMultipleChoiceField(queryset=Site.objects.all(),
                                              required=False,
                                              query_params={
                                                  'region_id': '$region_id',
                                                  'group_id': '$site_group_id',
                                              },
                                              label=_('Site'))
    tag = TagFilterField(model)
Ejemplo n.º 7
0
class AggregateFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
    model = Aggregate
    field_groups = [['q', 'tag'], ['family', 'rir_id'],
                    ['tenant_group_id', 'tenant_id']]
    family = forms.ChoiceField(
        required=False,
        choices=add_blank_choice(IPAddressFamilyChoices),
        label=_('Address family'),
        widget=StaticSelect())
    rir_id = DynamicModelMultipleChoiceField(queryset=RIR.objects.all(),
                                             required=False,
                                             label=_('RIR'))
    tag = TagFilterField(model)
Ejemplo n.º 8
0
class RackFilterForm(TenancyFilterForm, CustomFieldModelFilterForm):
    model = Rack
    field_groups = [
        ['q', 'tag'],
        ['region_id', 'site_id', 'location_id'],
        ['status', 'role_id'],
        ['type', 'width', 'serial', 'asset_tag'],
        ['tenant_group_id', 'tenant_id'],
    ]
    region_id = DynamicModelMultipleChoiceField(queryset=Region.objects.all(),
                                                required=False,
                                                label=_('Region'))
    site_id = DynamicModelMultipleChoiceField(
        queryset=Site.objects.all(),
        required=False,
        query_params={'region_id': '$region_id'},
        label=_('Site'))
    location_id = DynamicModelMultipleChoiceField(
        queryset=Location.objects.all(),
        required=False,
        null_option='None',
        query_params={'site_id': '$site_id'},
        label=_('Location'))
    status = forms.MultipleChoiceField(choices=RackStatusChoices,
                                       required=False,
                                       widget=StaticSelectMultiple())
    type = forms.MultipleChoiceField(choices=RackTypeChoices,
                                     required=False,
                                     widget=StaticSelectMultiple())
    width = forms.MultipleChoiceField(choices=RackWidthChoices,
                                      required=False,
                                      widget=StaticSelectMultiple())
    role_id = DynamicModelMultipleChoiceField(queryset=RackRole.objects.all(),
                                              required=False,
                                              null_option='None',
                                              label=_('Role'))
    serial = forms.CharField(required=False)
    asset_tag = forms.CharField(required=False)
    tag = TagFilterField(model)
Ejemplo n.º 9
0
class ClusterGroupForm(CustomFieldModelForm):
    slug = SlugField()
    tags = DynamicModelMultipleChoiceField(queryset=Tag.objects.all(),
                                           required=False)

    class Meta:
        model = ClusterGroup
        fields = (
            'name',
            'slug',
            'description',
            'tags',
        )
Ejemplo n.º 10
0
class ProviderFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
    model = Provider
    field_groups = [
        ['q', 'tag'],
        ['region_id', 'site_group_id', 'site_id'],
        ['asn'],
    ]
    q = forms.CharField(
        required=False,
        widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
        label=_('Search')
    )
    region_id = DynamicModelMultipleChoiceField(
        queryset=Region.objects.all(),
        required=False,
        label=_('Region'),
        fetch_trigger='open'
    )
    site_group_id = DynamicModelMultipleChoiceField(
        queryset=SiteGroup.objects.all(),
        required=False,
        label=_('Site group'),
        fetch_trigger='open'
    )
    site_id = DynamicModelMultipleChoiceField(
        queryset=Site.objects.all(),
        required=False,
        query_params={
            'region_id': '$region_id',
            'site_group_id': '$site_group_id',
        },
        label=_('Site'),
        fetch_trigger='open'
    )
    asn = forms.IntegerField(
        required=False,
        label=_('ASN')
    )
    tag = TagFilterField(model)
Ejemplo n.º 11
0
class RackReservationForm(TenancyForm, CustomFieldModelForm):
    region = DynamicModelChoiceField(queryset=Region.objects.all(),
                                     required=False,
                                     initial_params={'sites': '$site'})
    site_group = DynamicModelChoiceField(queryset=SiteGroup.objects.all(),
                                         required=False,
                                         initial_params={'sites': '$site'})
    site = DynamicModelChoiceField(queryset=Site.objects.all(),
                                   required=False,
                                   query_params={
                                       'region_id': '$region',
                                       'group_id': '$site_group',
                                   })
    location = DynamicModelChoiceField(queryset=Location.objects.all(),
                                       required=False,
                                       query_params={'site_id': '$site'})
    rack = DynamicModelChoiceField(queryset=Rack.objects.all(),
                                   query_params={
                                       'site_id': '$site',
                                       'location_id': '$location',
                                   })
    units = NumericArrayField(
        base_field=forms.IntegerField(),
        help_text=
        "Comma-separated list of numeric unit IDs. A range may be specified using a hyphen."
    )
    user = forms.ModelChoiceField(queryset=User.objects.order_by('username'),
                                  widget=StaticSelect())
    tags = DynamicModelMultipleChoiceField(queryset=Tag.objects.all(),
                                           required=False)

    class Meta:
        model = RackReservation
        fields = [
            'region',
            'site_group',
            'site',
            'location',
            'rack',
            'units',
            'user',
            'tenant_group',
            'tenant',
            'description',
            'tags',
        ]
        fieldsets = (
            ('Reservation', ('region', 'site', 'location', 'rack', 'units',
                             'user', 'description', 'tags')),
            ('Tenancy', ('tenant_group', 'tenant')),
        )
Ejemplo n.º 12
0
class ConnectCableToCircuitTerminationForm(BootstrapMixin,
                                           CustomFieldModelForm):
    termination_b_provider = DynamicModelChoiceField(
        queryset=Provider.objects.all(), label='Provider', required=False)
    termination_b_region = DynamicModelChoiceField(
        queryset=Region.objects.all(), label='Region', required=False)
    termination_b_site_group = DynamicModelChoiceField(
        queryset=SiteGroup.objects.all(), label='Site group', required=False)
    termination_b_site = DynamicModelChoiceField(
        queryset=Site.objects.all(),
        label='Site',
        required=False,
        query_params={
            'region_id': '$termination_b_region',
            'group_id': '$termination_b_site_group',
        })
    termination_b_circuit = DynamicModelChoiceField(
        queryset=Circuit.objects.all(),
        label='Circuit',
        query_params={
            'provider_id': '$termination_b_provider',
            'site_id': '$termination_b_site',
        })
    termination_b_id = DynamicModelChoiceField(
        queryset=CircuitTermination.objects.all(),
        label='Side',
        disabled_indicator='_occupied',
        query_params={'circuit_id': '$termination_b_circuit'})
    tags = DynamicModelMultipleChoiceField(queryset=Tag.objects.all(),
                                           required=False)

    class Meta:
        model = Cable
        fields = [
            'termination_b_provider',
            'termination_b_region',
            'termination_b_site',
            'termination_b_circuit',
            'termination_b_id',
            'type',
            'status',
            'label',
            'color',
            'length',
            'length_unit',
            'tags',
        ]

    def clean_termination_b_id(self):
        # Return the PK rather than the object
        return getattr(self.cleaned_data['termination_b_id'], 'pk', None)
Ejemplo n.º 13
0
class ConfigContextForm(BootstrapMixin, forms.ModelForm):
    regions = TreeNodeMultipleChoiceField(
        queryset=Region.objects.all(),
        required=False,
        widget=StaticSelect2Multiple()
    )
    sites = DynamicModelMultipleChoiceField(
        queryset=Site.objects.all(),
        required=False
    )
    roles = DynamicModelMultipleChoiceField(
        queryset=DeviceRole.objects.all(),
        required=False
    )
    platforms = DynamicModelMultipleChoiceField(
        queryset=Platform.objects.all(),
        required=False
    )
    cluster_groups = DynamicModelMultipleChoiceField(
        queryset=ClusterGroup.objects.all(),
        required=False
    )
    clusters = DynamicModelMultipleChoiceField(
        queryset=Cluster.objects.all(),
        required=False
    )
    tenant_groups = DynamicModelMultipleChoiceField(
        queryset=TenantGroup.objects.all(),
        required=False
    )
    tenants = DynamicModelMultipleChoiceField(
        queryset=Tenant.objects.all(),
        required=False
    )
    tags = DynamicModelMultipleChoiceField(
        queryset=Tag.objects.all(),
        required=False
    )
    data = JSONField(
        label=''
    )

    class Meta:
        model = ConfigContext
        fields = (
            'name', 'weight', 'description', 'is_active', 'regions', 'sites', 'roles', 'platforms', 'cluster_groups',
            'clusters', 'tenant_groups', 'tenants', 'tags', 'data',
        )
Ejemplo n.º 14
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 = 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"})
    status = forms.MultipleChoiceField(choices=VirtualMachineStatusChoices,
                                       required=False,
                                       widget=StaticSelect2Multiple())
    platform = DynamicModelMultipleChoiceField(queryset=Platform.objects.all(),
                                               to_field_name='slug',
                                               required=False,
                                               null_option='None')
    mac_address = forms.CharField(required=False, label='MAC address')
    tag = TagFilterField(model)
Ejemplo n.º 15
0
class PowerPanelFilterForm(CustomFieldModelFilterForm):
    model = PowerPanel
    field_groups = (('q', 'tag'), ('region_id', 'site_group_id', 'site_id',
                                   'location_id'))
    region_id = DynamicModelMultipleChoiceField(queryset=Region.objects.all(),
                                                required=False,
                                                label='Region')
    site_group_id = DynamicModelMultipleChoiceField(
        queryset=SiteGroup.objects.all(), required=False, label='Site group')
    site_id = DynamicModelMultipleChoiceField(queryset=Site.objects.all(),
                                              required=False,
                                              query_params={
                                                  'region_id': '$region_id',
                                                  'group_id': '$site_group_id',
                                              },
                                              label='Site')
    location_id = DynamicModelMultipleChoiceField(
        queryset=Location.objects.all(),
        required=False,
        null_option='None',
        query_params={'site_id': '$site_id'},
        label='Location')
    tag = TagFilterField(model)
Ejemplo n.º 16
0
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)
Ejemplo n.º 17
0
class BGPPeerGroupForm(NetBoxModelForm):
    import_policies = DynamicModelMultipleChoiceField(
        queryset=RoutingPolicy.objects.all(),
        required=False,
        widget=APISelectMultiple(
            api_url='/api/plugins/bgp/routing-policy/'
        )
    )
    export_policies = DynamicModelMultipleChoiceField(
        queryset=RoutingPolicy.objects.all(),
        required=False,
        widget=APISelectMultiple(
            api_url='/api/plugins/bgp/routing-policy/'
        )
    )
    tags = DynamicModelMultipleChoiceField(
        queryset=Tag.objects.all(),
        required=False
    )

    class Meta:
        model = BGPPeerGroup
        fields = ['name', 'description', 'import_policies', 'export_policies', 'tags']
Ejemplo n.º 18
0
class RouteTargetFilterForm(BootstrapMixin, TenancyFilterForm,
                            CustomFieldModelFilterForm):
    model = RouteTarget
    field_groups = [
        ['q', 'tag'],
        ['importing_vrf_id', 'exporting_vrf_id'],
        ['tenant_group_id', 'tenant_id'],
    ]
    q = forms.CharField(
        required=False,
        widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
        label=_('Search'))
    importing_vrf_id = DynamicModelMultipleChoiceField(
        queryset=VRF.objects.all(),
        required=False,
        label=_('Imported by VRF'),
        fetch_trigger='open')
    exporting_vrf_id = DynamicModelMultipleChoiceField(
        queryset=VRF.objects.all(),
        required=False,
        label=_('Exported by VRF'),
        fetch_trigger='open')
    tag = TagFilterField(model)
Ejemplo n.º 19
0
class RackRoleForm(CustomFieldModelForm):
    slug = SlugField()
    tags = DynamicModelMultipleChoiceField(queryset=Tag.objects.all(),
                                           required=False)

    class Meta:
        model = RackRole
        fields = [
            'name',
            'slug',
            'color',
            'description',
            'tags',
        ]
Ejemplo n.º 20
0
class ObjectChangeFilterForm(BootstrapMixin, forms.Form):
    model = ObjectChange
    q = forms.CharField(required=False, label=_('Search'))
    time_after = forms.DateTimeField(required=False,
                                     label=_('After'),
                                     widget=DateTimePicker())
    time_before = forms.DateTimeField(required=False,
                                      label=_('Before'),
                                      widget=DateTimePicker())
    action = forms.ChoiceField(
        choices=add_blank_choice(ObjectChangeActionChoices),
        required=False,
        widget=StaticSelect2())
    user_id = DynamicModelMultipleChoiceField(
        queryset=User.objects.all(),
        required=False,
        label=_('User'),
        widget=APISelectMultiple(api_url='/api/users/users/', ))
    changed_object_type_id = DynamicModelMultipleChoiceField(
        queryset=ContentType.objects.all(),
        required=False,
        label=_('Object Type'),
        widget=APISelectMultiple(api_url='/api/extras/content-types/', ))
Ejemplo n.º 21
0
class VLANGroupFilterForm(BootstrapMixin, forms.Form):
    region = DynamicModelMultipleChoiceField(
        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 = DynamicModelMultipleChoiceField(
        queryset=Site.objects.all(),
        to_field_name='slug',
        required=False,
        widget=APISelectMultiple(
            api_url="/api/dcim/sites/",
            value_field="slug",
            null_option=True,
        )
    )
Ejemplo n.º 22
0
class RegionFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
    model = Region
    field_groups = [
        ['q'],
        ['parent_id'],
    ]
    q = forms.CharField(
        required=False,
        widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
        label=_('Search'))
    parent_id = DynamicModelMultipleChoiceField(queryset=Region.objects.all(),
                                                required=False,
                                                label=_('Parent region'),
                                                fetch_trigger='open')
Ejemplo n.º 23
0
class JournalEntryFilterForm(BootstrapMixin, forms.Form):
    model = JournalEntry
    q = forms.CharField(
        required=False,
        label=_('Search')
    )
    created_after = forms.DateTimeField(
        required=False,
        label=_('After'),
        widget=DateTimePicker()
    )
    created_before = forms.DateTimeField(
        required=False,
        label=_('Before'),
        widget=DateTimePicker()
    )
    created_by_id = DynamicModelMultipleChoiceField(
        queryset=User.objects.all(),
        required=False,
        label=_('User'),
        widget=APISelectMultiple(
            api_url='/api/users/users/',
        )
    )
    assigned_object_type_id = DynamicModelMultipleChoiceField(
        queryset=ContentType.objects.all(),
        required=False,
        label=_('Object Type'),
        widget=APISelectMultiple(
            api_url='/api/extras/content-types/',
        )
    )
    kind = forms.ChoiceField(
        choices=add_blank_choice(JournalEntryKindChoices),
        required=False,
        widget=StaticSelect2()
    )
Ejemplo n.º 24
0
class DeviceTypeFilterForm(CustomFieldModelFilterForm):
    model = DeviceType
    field_groups = [
        ['q', 'tag'],
        ['manufacturer_id', 'subdevice_role', 'airflow'],
        [
            'console_ports', 'console_server_ports', 'power_ports',
            'power_outlets', 'interfaces', 'pass_through_ports'
        ],
    ]
    manufacturer_id = DynamicModelMultipleChoiceField(
        queryset=Manufacturer.objects.all(),
        required=False,
        label='Manufacturer')
    subdevice_role = forms.MultipleChoiceField(
        label='subdevice_role',
        choices=add_blank_choice(SubdeviceRoleChoices),
        required=False,
        widget=StaticSelectMultiple())
    airflow = forms.MultipleChoiceField(
        label='airflow',
        choices=add_blank_choice(DeviceAirflowChoices),
        required=False,
        widget=StaticSelectMultiple())
    console_ports = forms.NullBooleanField(
        required=False,
        label='Has console ports',
        widget=StaticSelect(choices=BOOLEAN_WITH_BLANK_CHOICES))
    console_server_ports = forms.NullBooleanField(
        required=False,
        label='Has console server ports',
        widget=StaticSelect(choices=BOOLEAN_WITH_BLANK_CHOICES))
    power_ports = forms.NullBooleanField(
        required=False,
        label='Has power ports',
        widget=StaticSelect(choices=BOOLEAN_WITH_BLANK_CHOICES))
    power_outlets = forms.NullBooleanField(
        required=False,
        label='Has power outlets',
        widget=StaticSelect(choices=BOOLEAN_WITH_BLANK_CHOICES))
    interfaces = forms.NullBooleanField(
        required=False,
        label='Has interfaces',
        widget=StaticSelect(choices=BOOLEAN_WITH_BLANK_CHOICES))
    pass_through_ports = forms.NullBooleanField(
        required=False,
        label='Has pass-through ports',
        widget=StaticSelect(choices=BOOLEAN_WITH_BLANK_CHOICES))
    tag = TagFilterField(model)
Ejemplo n.º 25
0
class IPAddressFilterForm(BootstrapMixin, TenancyFilterForm,
                          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')
    status = forms.MultipleChoiceField(choices=IPAddressStatusChoices,
                                       required=False,
                                       widget=StaticSelect2Multiple())
    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)
Ejemplo n.º 26
0
class CircuitFilterForm(BootstrapMixin, TenancyFilterForm,
                        CustomFieldModelFilterForm):
    model = Circuit
    field_groups = [
        ['q', 'tag'],
        ['provider_id', 'provider_network_id'],
        ['type_id', 'status', 'commit_rate'],
        ['region_id', 'site_group_id', 'site_id'],
        ['tenant_group_id', 'tenant_id'],
    ]
    q = forms.CharField(
        required=False,
        widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
        label=_('Search'))
    type_id = DynamicModelMultipleChoiceField(
        queryset=CircuitType.objects.all(),
        required=False,
        label=_('Type'),
        fetch_trigger='open')
    provider_id = DynamicModelMultipleChoiceField(
        queryset=Provider.objects.all(),
        required=False,
        label=_('Provider'),
        fetch_trigger='open')
    provider_network_id = DynamicModelMultipleChoiceField(
        queryset=ProviderNetwork.objects.all(),
        required=False,
        query_params={'provider_id': '$provider_id'},
        label=_('Provider network'),
        fetch_trigger='open')
    status = forms.MultipleChoiceField(choices=CircuitStatusChoices,
                                       required=False,
                                       widget=StaticSelectMultiple())
    region_id = DynamicModelMultipleChoiceField(queryset=Region.objects.all(),
                                                required=False,
                                                label=_('Region'),
                                                fetch_trigger='open')
    site_group_id = DynamicModelMultipleChoiceField(
        queryset=SiteGroup.objects.all(),
        required=False,
        label=_('Site group'),
        fetch_trigger='open')
    site_id = DynamicModelMultipleChoiceField(queryset=Site.objects.all(),
                                              required=False,
                                              query_params={
                                                  'region_id':
                                                  '$region_id',
                                                  'site_group_id':
                                                  '$site_group_id',
                                              },
                                              label=_('Site'),
                                              fetch_trigger='open')
    commit_rate = forms.IntegerField(required=False,
                                     min_value=0,
                                     label=_('Commit rate (Kbps)'))
    tag = TagFilterField(model)
Ejemplo n.º 27
0
class SecretFilterForm(BootstrapMixin, CustomFieldFilterForm):
    model = Secret
    q = forms.CharField(
        required=False,
        label='Search'
    )
    role = DynamicModelMultipleChoiceField(
        queryset=SecretRole.objects.all(),
        to_field_name='slug',
        required=False,
        widget=APISelectMultiple(
            value_field="slug",
        )
    )
    tag = TagFilterField(model)
Ejemplo n.º 28
0
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)
Ejemplo n.º 29
0
class CommunityForm(BootstrapMixin, forms.ModelForm):
    tags = DynamicModelMultipleChoiceField(queryset=Tag.objects.all(),
                                           required=False)
    tenant = DynamicModelChoiceField(queryset=Tenant.objects.all(),
                                     required=False)

    class Meta:
        model = Community
        fields = [
            'value',
            'description',
            'status',
            'tenant',
            'tags',
        ]
Ejemplo n.º 30
0
class ComponentCreateForm(CustomFieldsMixin, ComponentForm):
    """
    Base form for the creation of device components (models subclassed from ComponentModel).
    """
    device = DynamicModelChoiceField(
        queryset=Device.objects.all()
    )
    description = forms.CharField(
        max_length=200,
        required=False
    )
    tags = DynamicModelMultipleChoiceField(
        queryset=Tag.objects.all(),
        required=False
    )