jeremystretch 4 лет назад
Родитель
Сommit
dba9602c75

+ 0 - 196
netbox/tenancy/forms.py

@@ -1,196 +0,0 @@
-from django import forms
-from django.utils.translation import gettext as _
-
-from extras.forms import (
-    AddRemoveTagsForm, CustomFieldModelForm, CustomFieldModelBulkEditForm, CustomFieldModelFilterForm, CustomFieldModelCSVForm,
-)
-from extras.models import Tag
-from utilities.forms import (
-    BootstrapMixin, CommentField, CSVModelChoiceField, DynamicModelChoiceField, DynamicModelMultipleChoiceField,
-    SlugField, TagFilterField,
-)
-from .models import Tenant, TenantGroup
-
-
-#
-# Tenant groups
-#
-
-class TenantGroupForm(BootstrapMixin, CustomFieldModelForm):
-    parent = DynamicModelChoiceField(
-        queryset=TenantGroup.objects.all(),
-        required=False
-    )
-    slug = SlugField()
-
-    class Meta:
-        model = TenantGroup
-        fields = [
-            'parent', 'name', 'slug', 'description',
-        ]
-
-
-class TenantGroupCSVForm(CustomFieldModelCSVForm):
-    parent = CSVModelChoiceField(
-        queryset=TenantGroup.objects.all(),
-        required=False,
-        to_field_name='name',
-        help_text='Parent group'
-    )
-    slug = SlugField()
-
-    class Meta:
-        model = TenantGroup
-        fields = ('name', 'slug', 'parent', 'description')
-
-
-class TenantGroupBulkEditForm(BootstrapMixin, CustomFieldModelBulkEditForm):
-    pk = forms.ModelMultipleChoiceField(
-        queryset=TenantGroup.objects.all(),
-        widget=forms.MultipleHiddenInput
-    )
-    parent = DynamicModelChoiceField(
-        queryset=TenantGroup.objects.all(),
-        required=False
-    )
-    description = forms.CharField(
-        max_length=200,
-        required=False
-    )
-
-    class Meta:
-        nullable_fields = ['parent', 'description']
-
-
-class TenantGroupFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
-    model = TenantGroup
-    q = forms.CharField(
-        required=False,
-        widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
-        label=_('Search')
-    )
-    parent_id = DynamicModelMultipleChoiceField(
-        queryset=TenantGroup.objects.all(),
-        required=False,
-        label=_('Parent group'),
-        fetch_trigger='open'
-    )
-
-
-#
-# Tenants
-#
-
-class TenantForm(BootstrapMixin, CustomFieldModelForm):
-    slug = SlugField()
-    group = DynamicModelChoiceField(
-        queryset=TenantGroup.objects.all(),
-        required=False
-    )
-    comments = CommentField()
-    tags = DynamicModelMultipleChoiceField(
-        queryset=Tag.objects.all(),
-        required=False
-    )
-
-    class Meta:
-        model = Tenant
-        fields = (
-            'name', 'slug', 'group', 'description', 'comments', 'tags',
-        )
-        fieldsets = (
-            ('Tenant', ('name', 'slug', 'group', 'description', 'tags')),
-        )
-
-
-class TenantCSVForm(CustomFieldModelCSVForm):
-    slug = SlugField()
-    group = CSVModelChoiceField(
-        queryset=TenantGroup.objects.all(),
-        required=False,
-        to_field_name='name',
-        help_text='Assigned group'
-    )
-
-    class Meta:
-        model = Tenant
-        fields = ('name', 'slug', 'group', 'description', 'comments')
-
-
-class TenantBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm):
-    pk = forms.ModelMultipleChoiceField(
-        queryset=Tenant.objects.all(),
-        widget=forms.MultipleHiddenInput()
-    )
-    group = DynamicModelChoiceField(
-        queryset=TenantGroup.objects.all(),
-        required=False
-    )
-
-    class Meta:
-        nullable_fields = [
-            'group',
-        ]
-
-
-class TenantFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
-    model = Tenant
-    field_groups = (
-        ('q', 'tag'),
-        ('group_id',),
-    )
-    q = forms.CharField(
-        required=False,
-        widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
-        label=_('Search')
-    )
-    group_id = DynamicModelMultipleChoiceField(
-        queryset=TenantGroup.objects.all(),
-        required=False,
-        null_option='None',
-        label=_('Group'),
-        fetch_trigger='open'
-    )
-    tag = TagFilterField(model)
-
-
-#
-# Form extensions
-#
-
-class TenancyForm(forms.Form):
-    tenant_group = DynamicModelChoiceField(
-        queryset=TenantGroup.objects.all(),
-        required=False,
-        null_option='None',
-        initial_params={
-            'tenants': '$tenant'
-        }
-    )
-    tenant = DynamicModelChoiceField(
-        queryset=Tenant.objects.all(),
-        required=False,
-        query_params={
-            'group_id': '$tenant_group'
-        }
-    )
-
-
-class TenancyFilterForm(forms.Form):
-    tenant_group_id = DynamicModelMultipleChoiceField(
-        queryset=TenantGroup.objects.all(),
-        required=False,
-        null_option='None',
-        label=_('Tenant group'),
-        fetch_trigger='open'
-    )
-    tenant_id = DynamicModelMultipleChoiceField(
-        queryset=Tenant.objects.all(),
-        required=False,
-        null_option='None',
-        query_params={
-            'group_id': '$tenant_group_id'
-        },
-        label=_('Tenant'),
-        fetch_trigger='open'
-    )

+ 5 - 0
netbox/tenancy/forms/__init__.py

@@ -0,0 +1,5 @@
+from .forms import *
+from .models import *
+from .filtersets import *
+from .bulk_edit import *
+from .bulk_import import *

+ 44 - 0
netbox/tenancy/forms/bulk_edit.py

@@ -0,0 +1,44 @@
+from django import forms
+
+from extras.forms import AddRemoveTagsForm, CustomFieldModelBulkEditForm
+from tenancy.models import Tenant, TenantGroup
+from utilities.forms import BootstrapMixin, DynamicModelChoiceField
+
+__all__ = (
+    'TenantBulkEditForm',
+    'TenantGroupBulkEditForm',
+)
+
+
+class TenantGroupBulkEditForm(BootstrapMixin, CustomFieldModelBulkEditForm):
+    pk = forms.ModelMultipleChoiceField(
+        queryset=TenantGroup.objects.all(),
+        widget=forms.MultipleHiddenInput
+    )
+    parent = DynamicModelChoiceField(
+        queryset=TenantGroup.objects.all(),
+        required=False
+    )
+    description = forms.CharField(
+        max_length=200,
+        required=False
+    )
+
+    class Meta:
+        nullable_fields = ['parent', 'description']
+
+
+class TenantBulkEditForm(BootstrapMixin, AddRemoveTagsForm, CustomFieldModelBulkEditForm):
+    pk = forms.ModelMultipleChoiceField(
+        queryset=Tenant.objects.all(),
+        widget=forms.MultipleHiddenInput()
+    )
+    group = DynamicModelChoiceField(
+        queryset=TenantGroup.objects.all(),
+        required=False
+    )
+
+    class Meta:
+        nullable_fields = [
+            'group',
+        ]

+ 36 - 0
netbox/tenancy/forms/bulk_import.py

@@ -0,0 +1,36 @@
+from extras.forms import CustomFieldModelCSVForm
+from tenancy.models import Tenant, TenantGroup
+from utilities.forms import CSVModelChoiceField, SlugField
+
+__all__ = (
+    'TenantCSVForm',
+    'TenantGroupCSVForm',
+)
+
+
+class TenantGroupCSVForm(CustomFieldModelCSVForm):
+    parent = CSVModelChoiceField(
+        queryset=TenantGroup.objects.all(),
+        required=False,
+        to_field_name='name',
+        help_text='Parent group'
+    )
+    slug = SlugField()
+
+    class Meta:
+        model = TenantGroup
+        fields = ('name', 'slug', 'parent', 'description')
+
+
+class TenantCSVForm(CustomFieldModelCSVForm):
+    slug = SlugField()
+    group = CSVModelChoiceField(
+        queryset=TenantGroup.objects.all(),
+        required=False,
+        to_field_name='name',
+        help_text='Assigned group'
+    )
+
+    class Meta:
+        model = Tenant
+        fields = ('name', 'slug', 'group', 'description', 'comments')

+ 42 - 0
netbox/tenancy/forms/filtersets.py

@@ -0,0 +1,42 @@
+from django import forms
+from django.utils.translation import gettext as _
+
+from extras.forms import CustomFieldModelFilterForm
+from tenancy.models import Tenant, TenantGroup
+from utilities.forms import BootstrapMixin, DynamicModelMultipleChoiceField, TagFilterField
+
+
+class TenantGroupFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
+    model = TenantGroup
+    q = forms.CharField(
+        required=False,
+        widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
+        label=_('Search')
+    )
+    parent_id = DynamicModelMultipleChoiceField(
+        queryset=TenantGroup.objects.all(),
+        required=False,
+        label=_('Parent group'),
+        fetch_trigger='open'
+    )
+
+
+class TenantFilterForm(BootstrapMixin, CustomFieldModelFilterForm):
+    model = Tenant
+    field_groups = (
+        ('q', 'tag'),
+        ('group_id',),
+    )
+    q = forms.CharField(
+        required=False,
+        widget=forms.TextInput(attrs={'placeholder': _('All Fields')}),
+        label=_('Search')
+    )
+    group_id = DynamicModelMultipleChoiceField(
+        queryset=TenantGroup.objects.all(),
+        required=False,
+        null_option='None',
+        label=_('Group'),
+        fetch_trigger='open'
+    )
+    tag = TagFilterField(model)

+ 48 - 0
netbox/tenancy/forms/forms.py

@@ -0,0 +1,48 @@
+from django import forms
+from django.utils.translation import gettext as _
+
+from tenancy.models import Tenant, TenantGroup
+from utilities.forms import DynamicModelChoiceField, DynamicModelMultipleChoiceField
+
+__all__ = (
+    'TenancyForm',
+    'TenancyFilterForm',
+)
+
+
+class TenancyForm(forms.Form):
+    tenant_group = DynamicModelChoiceField(
+        queryset=TenantGroup.objects.all(),
+        required=False,
+        null_option='None',
+        initial_params={
+            'tenants': '$tenant'
+        }
+    )
+    tenant = DynamicModelChoiceField(
+        queryset=Tenant.objects.all(),
+        required=False,
+        query_params={
+            'group_id': '$tenant_group'
+        }
+    )
+
+
+class TenancyFilterForm(forms.Form):
+    tenant_group_id = DynamicModelMultipleChoiceField(
+        queryset=TenantGroup.objects.all(),
+        required=False,
+        null_option='None',
+        label=_('Tenant group'),
+        fetch_trigger='open'
+    )
+    tenant_id = DynamicModelMultipleChoiceField(
+        queryset=Tenant.objects.all(),
+        required=False,
+        null_option='None',
+        query_params={
+            'group_id': '$tenant_group_id'
+        },
+        label=_('Tenant'),
+        fetch_trigger='open'
+    )

+ 47 - 0
netbox/tenancy/forms/models.py

@@ -0,0 +1,47 @@
+from extras.forms import CustomFieldModelForm
+from extras.models import Tag
+from tenancy.models import Tenant, TenantGroup
+from utilities.forms import (
+    BootstrapMixin, CommentField, DynamicModelChoiceField, DynamicModelMultipleChoiceField, SlugField,
+)
+
+__all__ = (
+    'TenantForm',
+    'TenantGroupForm',
+)
+
+
+class TenantGroupForm(BootstrapMixin, CustomFieldModelForm):
+    parent = DynamicModelChoiceField(
+        queryset=TenantGroup.objects.all(),
+        required=False
+    )
+    slug = SlugField()
+
+    class Meta:
+        model = TenantGroup
+        fields = [
+            'parent', 'name', 'slug', 'description',
+        ]
+
+
+class TenantForm(BootstrapMixin, CustomFieldModelForm):
+    slug = SlugField()
+    group = DynamicModelChoiceField(
+        queryset=TenantGroup.objects.all(),
+        required=False
+    )
+    comments = CommentField()
+    tags = DynamicModelMultipleChoiceField(
+        queryset=Tag.objects.all(),
+        required=False
+    )
+
+    class Meta:
+        model = Tenant
+        fields = (
+            'name', 'slug', 'group', 'description', 'comments', 'tags',
+        )
+        fieldsets = (
+            ('Tenant', ('name', 'slug', 'group', 'description', 'tags')),
+        )