1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Use FieldSet instances for all forms

This commit is contained in:
Jeremy Stretch
2024-03-18 15:08:28 -04:00
parent 3b28e8e615
commit 72d3c17b48
35 changed files with 800 additions and 757 deletions

View File

@@ -6,6 +6,7 @@ from ipam.formfields import IPNetworkFormField
from ipam.validators import prefix_validator
from users.models import *
from utilities.forms import BulkEditForm
from utilities.forms.rendering import FieldSet
from utilities.forms.widgets import BulkEditNullBooleanSelect, DateTimePicker
__all__ = (
@@ -48,7 +49,7 @@ class UserBulkEditForm(forms.Form):
model = User
fieldsets = (
(None, ('first_name', 'last_name', 'is_active', 'is_staff', 'is_superuser')),
FieldSet('first_name', 'last_name', 'is_active', 'is_staff', 'is_superuser'),
)
nullable_fields = ('first_name', 'last_name')
@@ -71,7 +72,7 @@ class ObjectPermissionBulkEditForm(forms.Form):
model = ObjectPermission
fieldsets = (
(None, ('enabled', 'description')),
FieldSet('enabled', 'description'),
)
nullable_fields = ('description',)
@@ -104,7 +105,7 @@ class TokenBulkEditForm(BulkEditForm):
model = Token
fieldsets = (
(None, ('write_enabled', 'description', 'expires', 'allowed_ips')),
FieldSet('write_enabled', 'description', 'expires', 'allowed_ips'),
)
nullable_fields = (
'expires', 'description', 'allowed_ips',

View File

@@ -7,6 +7,7 @@ from netbox.forms.mixins import SavedFiltersMixin
from users.models import Group, ObjectPermission, Token, User
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES, FilterForm
from utilities.forms.fields import DynamicModelMultipleChoiceField
from utilities.forms.rendering import FieldSet
from utilities.forms.widgets import DateTimePicker
__all__ = (
@@ -20,16 +21,16 @@ __all__ = (
class GroupFilterForm(NetBoxModelFilterSetForm):
model = Group
fieldsets = (
(None, ('q', 'filter_id',)),
FieldSet('q', 'filter_id',),
)
class UserFilterForm(NetBoxModelFilterSetForm):
model = User
fieldsets = (
(None, ('q', 'filter_id',)),
(_('Group'), ('group_id',)),
(_('Status'), ('is_active', 'is_staff', 'is_superuser')),
FieldSet('q', 'filter_id',),
FieldSet('group_id', name=_('Group')),
FieldSet('is_active', 'is_staff', 'is_superuser', name=_('Status')),
)
group_id = DynamicModelMultipleChoiceField(
queryset=Group.objects.all(),
@@ -62,9 +63,9 @@ class UserFilterForm(NetBoxModelFilterSetForm):
class ObjectPermissionFilterForm(NetBoxModelFilterSetForm):
model = ObjectPermission
fieldsets = (
(None, ('q', 'filter_id',)),
(_('Permission'), ('enabled', 'group_id', 'user_id')),
(_('Actions'), ('can_view', 'can_add', 'can_change', 'can_delete')),
FieldSet('q', 'filter_id',),
FieldSet('enabled', 'group_id', 'user_id', name=_('Permission')),
FieldSet('can_view', 'can_add', 'can_change', 'can_delete', name=_('Actions')),
)
enabled = forms.NullBooleanField(
label=_('Enabled'),
@@ -116,8 +117,8 @@ class ObjectPermissionFilterForm(NetBoxModelFilterSetForm):
class TokenFilterForm(SavedFiltersMixin, FilterForm):
model = Token
fieldsets = (
(None, ('q', 'filter_id',)),
(_('Token'), ('user_id', 'write_enabled', 'expires', 'last_used')),
FieldSet('q', 'filter_id',),
FieldSet('user_id', 'write_enabled', 'expires', 'last_used', name=_('Token')),
)
user_id = DynamicModelMultipleChoiceField(
queryset=get_user_model().objects.all(),

View File

@@ -13,6 +13,7 @@ from netbox.preferences import PREFERENCES
from users.constants import *
from users.models import *
from utilities.forms.fields import ContentTypeMultipleChoiceField, DynamicModelMultipleChoiceField
from utilities.forms.rendering import FieldSet
from utilities.forms.widgets import DateTimePicker
from utilities.permissions import qs_filter_from_constraints
from utilities.utils import flatten_dict
@@ -53,15 +54,10 @@ class UserConfigFormMetaclass(forms.models.ModelFormMetaclass):
class UserConfigForm(forms.ModelForm, metaclass=UserConfigFormMetaclass):
fieldsets = (
(_('User Interface'), (
'locale.language',
'pagination.per_page',
'pagination.placement',
'ui.colormode',
)),
(_('Miscellaneous'), (
'data_format',
)),
FieldSet(
'locale.language', 'pagination.per_page', 'pagination.placement', 'ui.colormode', name=_('User Interface')
),
FieldSet('data_format', name=_('Miscellaneous')),
)
# List of clearable preferences
pk = forms.MultipleChoiceField(
@@ -189,10 +185,10 @@ class UserForm(forms.ModelForm):
)
fieldsets = (
(_('User'), ('username', 'password', 'confirm_password', 'first_name', 'last_name', 'email')),
(_('Groups'), ('groups', )),
(_('Status'), ('is_active', 'is_staff', 'is_superuser')),
(_('Permissions'), ('object_permissions',)),
FieldSet('username', 'password', 'confirm_password', 'first_name', 'last_name', 'email', name=_('User')),
FieldSet('groups', name=_('Groups')),
FieldSet('is_active', 'is_staff', 'is_superuser', name=_('Status')),
FieldSet('object_permissions', name=_('Permissions')),
)
class Meta:
@@ -246,9 +242,9 @@ class GroupForm(forms.ModelForm):
)
fieldsets = (
(None, ('name', )),
(_('Users'), ('users', )),
(_('Permissions'), ('object_permissions', )),
FieldSet('name'),
FieldSet('users', name=_('Users')),
FieldSet('object_permissions', name=_('Permissions')),
)
class Meta:
@@ -312,11 +308,11 @@ class ObjectPermissionForm(forms.ModelForm):
)
fieldsets = (
(None, ('name', 'description', 'enabled',)),
(_('Actions'), ('can_view', 'can_add', 'can_change', 'can_delete', 'actions')),
(_('Objects'), ('object_types', )),
(_('Assignment'), ('groups', 'users')),
(_('Constraints'), ('constraints',))
FieldSet('name', 'description', 'enabled'),
FieldSet('can_view', 'can_add', 'can_change', 'can_delete', 'actions', name=_('Actions')),
FieldSet('object_types', name=_('Objects')),
FieldSet('groups', 'users', name=_('Assignment')),
FieldSet('constraints', name=_('Constraints'))
)
class Meta: