Example #1
0
class ClusterGroupCSVForm(CustomFieldModelCSVForm):
    slug = SlugField()

    class Meta:
        model = ClusterGroup
        fields = ('name', 'slug', 'description')
Example #2
0
class SecretRoleForm(BootstrapMixin, forms.ModelForm):
    slug = SlugField()

    class Meta:
        model = SecretRole
        fields = ['name', 'slug', 'users', 'groups']
Example #3
0
class ProviderCSVForm(CustomFieldModelCSVForm):
    slug = SlugField()

    class Meta:
        model = Provider
        fields = Provider.csv_headers
Example #4
0
class VLANGroupForm(BootstrapMixin, forms.ModelForm):
    slug = SlugField()

    class Meta:
        model = VLANGroup
        fields = ['site', 'name', 'slug']
Example #5
0
class RoleCSVForm(CustomFieldModelCSVForm):
    slug = SlugField()

    class Meta:
        model = Role
        fields = ('name', 'slug', 'weight', 'description')
Example #6
0
class TagForm(BootstrapMixin, forms.ModelForm):
    slug = SlugField()

    class Meta:
        model = Tag
        fields = ['name', 'slug', 'color', 'description']
Example #7
0
class ClusterGroupForm(BootstrapMixin, forms.ModelForm):
    slug = SlugField()

    class Meta:
        model = ClusterGroup
        fields = ['name', 'slug']
Example #8
0
class DeviceRoleForm(forms.ModelForm, BootstrapMixin):
    slug = SlugField()

    class Meta:
        model = DeviceRole
        fields = ['name', 'slug', 'color']
Example #9
0
class PlatformForm(forms.ModelForm, BootstrapMixin):
    slug = SlugField()

    class Meta:
        model = Platform
        fields = ['name', 'slug']
Example #10
0
class SecretRoleForm(forms.ModelForm, BootstrapMixin):
    slug = SlugField()

    class Meta:
        model = SecretRole
        fields = ['name', 'slug']
Example #11
0
class ManufacturerForm(forms.ModelForm, BootstrapMixin):
    slug = SlugField()

    class Meta:
        model = Manufacturer
        fields = ['name', 'slug']
Example #12
0
class VLANGroupForm(BootstrapMixin, CustomFieldModelForm):
    scope_type = ContentTypeChoiceField(
        queryset=ContentType.objects.filter(model__in=VLANGROUP_SCOPE_TYPES),
        required=False,
        widget=StaticSelect)
    region = DynamicModelChoiceField(queryset=Region.objects.all(),
                                     required=False,
                                     initial_params={'sites': '$site'})
    sitegroup = DynamicModelChoiceField(queryset=SiteGroup.objects.all(),
                                        required=False,
                                        initial_params={'sites': '$site'},
                                        label='Site group')
    site = DynamicModelChoiceField(queryset=Site.objects.all(),
                                   required=False,
                                   initial_params={'locations': '$location'},
                                   query_params={
                                       'region_id': '$region',
                                       'group_id': '$sitegroup',
                                   })
    location = DynamicModelChoiceField(queryset=Location.objects.all(),
                                       required=False,
                                       initial_params={'racks': '$rack'},
                                       query_params={
                                           'site_id': '$site',
                                       })
    rack = DynamicModelChoiceField(queryset=Rack.objects.all(),
                                   required=False,
                                   query_params={
                                       'site_id': '$site',
                                       'location_id': '$location',
                                   })
    clustergroup = DynamicModelChoiceField(
        queryset=ClusterGroup.objects.all(),
        required=False,
        initial_params={'clusters': '$cluster'},
        label='Cluster group')
    cluster = DynamicModelChoiceField(queryset=Cluster.objects.all(),
                                      required=False,
                                      query_params={
                                          'group_id': '$clustergroup',
                                      })
    slug = SlugField()

    class Meta:
        model = VLANGroup
        fields = [
            'name',
            'slug',
            'description',
            'scope_type',
            'region',
            'sitegroup',
            'site',
            'location',
            'rack',
            'clustergroup',
            'cluster',
        ]
        fieldsets = (
            ('VLAN Group', ('name', 'slug', 'description')),
            ('Scope', ('scope_type', 'region', 'sitegroup', 'site', 'location',
                       'rack', 'clustergroup', 'cluster')),
        )
        widgets = {
            'scope_type': StaticSelect,
        }

    def __init__(self, *args, **kwargs):
        instance = kwargs.get('instance')
        initial = kwargs.get('initial', {})

        if instance is not None and instance.scope:
            initial[instance.scope_type.model] = instance.scope

            kwargs['initial'] = initial

        super().__init__(*args, **kwargs)

    def clean(self):
        super().clean()

        # Assign scope based on scope_type
        if self.cleaned_data.get('scope_type'):
            scope_field = self.cleaned_data['scope_type'].model
            self.instance.scope = self.cleaned_data.get(scope_field)
        else:
            self.instance.scope_id = None
Example #13
0
class SecretRoleForm(BootstrapMixin, forms.ModelForm):
    slug = SlugField()

    class Meta:
        model = SecretRole
        fields = ('name', 'slug', 'description')
Example #14
0
class SiteForm(BootstrapMixin, TenancyForm, CustomFieldModelForm):
    region = DynamicModelChoiceField(queryset=Region.objects.all(),
                                     required=False)
    group = DynamicModelChoiceField(queryset=SiteGroup.objects.all(),
                                    required=False)
    slug = SlugField()
    time_zone = TimeZoneFormField(choices=add_blank_choice(
        TimeZoneFormField().choices),
                                  required=False,
                                  widget=StaticSelect())
    comments = CommentField()
    tags = DynamicModelMultipleChoiceField(queryset=Tag.objects.all(),
                                           required=False)

    class Meta:
        model = Site
        fields = [
            'name',
            'slug',
            'status',
            'region',
            'group',
            'tenant_group',
            'tenant',
            'facility',
            'asn',
            'time_zone',
            'description',
            'physical_address',
            'shipping_address',
            'latitude',
            'longitude',
            'contact_name',
            'contact_phone',
            'contact_email',
            'comments',
            'tags',
        ]
        fieldsets = (
            ('Site', (
                'name',
                'slug',
                'status',
                'region',
                'group',
                'facility',
                'asn',
                'time_zone',
                'description',
                'tags',
            )),
            ('Tenancy', ('tenant_group', 'tenant')),
            ('Contact Info', (
                'physical_address',
                'shipping_address',
                'latitude',
                'longitude',
                'contact_name',
                'contact_phone',
                'contact_email',
            )),
        )
        widgets = {
            'physical_address': SmallTextarea(attrs={
                'rows': 3,
            }),
            'shipping_address': SmallTextarea(attrs={
                'rows': 3,
            }),
            'status': StaticSelect(),
            'time_zone': StaticSelect(),
        }
        help_texts = {
            'name': "Full name of the site",
            'facility': "Data center provider and facility (e.g. Equinix NY7)",
            'asn': "BGP autonomous system number",
            'time_zone': "Local time zone",
            'description': "Short description (will appear in sites list)",
            'physical_address':
            "Physical location of the building (e.g. for GPS)",
            'shipping_address': "If different from the physical address",
            'latitude': "Latitude in decimal format (xx.yyyyyy)",
            'longitude': "Longitude in decimal format (xx.yyyyyy)"
        }
Example #15
0
class ClusterTypeCSVForm(CSVModelForm):
    slug = SlugField()

    class Meta:
        model = ClusterType
        fields = ClusterType.csv_headers
Example #16
0
class RackGroupForm(forms.ModelForm, BootstrapMixin):
    slug = SlugField()

    class Meta:
        model = RackGroup
        fields = ['site', 'name', 'slug']
Example #17
0
class ClusterGroupCSVForm(CSVModelForm):
    slug = SlugField()

    class Meta:
        model = ClusterGroup
        fields = ClusterGroup.csv_headers
Example #18
0
class RoleCSVForm(CSVModelForm):
    slug = SlugField()

    class Meta:
        model = Role
        fields = Role.csv_headers
Example #19
0
class CircuitTypeForm(forms.ModelForm, BootstrapMixin):
    slug = SlugField()

    class Meta:
        model = CircuitType
        fields = ['name', 'slug']
Example #20
0
File: forms.py Project: puck/netbox
class RIRForm(forms.ModelForm, BootstrapMixin):
    slug = SlugField()

    class Meta:
        model = RIR
        fields = ['name', 'slug']
Example #21
0
class RIRForm(BootstrapMixin, forms.ModelForm):
    slug = SlugField()

    class Meta:
        model = RIR
        fields = ['name', 'slug', 'is_private']
Example #22
0
class TenantGroupForm(forms.ModelForm, BootstrapMixin):
    slug = SlugField()

    class Meta:
        model = TenantGroup
        fields = ['name', 'slug']
Example #23
0
class RoleForm(BootstrapMixin, forms.ModelForm):
    slug = SlugField()

    class Meta:
        model = Role
        fields = ['name', 'slug']
Example #24
0
class ContactRoleCSVForm(CustomFieldModelCSVForm):
    slug = SlugField()

    class Meta:
        model = ContactRole
        fields = ('name', 'slug', 'description')