Finish bulk edit & import forms

This commit is contained in:
Jeremy Stretch 2023-07-25 11:42:23 -04:00
parent 4342ebc027
commit 29e5802840
2 changed files with 33 additions and 4 deletions

View File

@ -1,9 +1,12 @@
from django import forms from django import forms
from django.contrib.postgres.forms import SimpleArrayField
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
from ipam.formfields import IPNetworkFormField
from ipam.validators import prefix_validator
from users.models import * from users.models import *
from utilities.forms import BootstrapMixin, BulkEditForm from utilities.forms import BootstrapMixin, BulkEditForm
from utilities.forms.widgets import BulkEditNullBooleanSelect from utilities.forms.widgets import BulkEditNullBooleanSelect, DateTimePicker
__all__ = ( __all__ = (
'ObjectPermissionBulkEditForm', 'ObjectPermissionBulkEditForm',
@ -78,7 +81,31 @@ class TokenBulkEditForm(BulkEditForm):
queryset=Token.objects.all(), queryset=Token.objects.all(),
widget=forms.MultipleHiddenInput widget=forms.MultipleHiddenInput
) )
write_enabled = forms.NullBooleanField(
required=False,
widget=BulkEditNullBooleanSelect,
label=_('Write enabled')
)
description = forms.CharField( description = forms.CharField(
max_length=200, max_length=200,
required=False required=False,
label=_('Description')
)
expires = forms.DateTimeField(
required=False,
widget=DateTimePicker(),
label=_('Expires')
)
allowed_ips = SimpleArrayField(
base_field=IPNetworkFormField(validators=[prefix_validator]),
required=False,
label=_('Allowed IPs')
)
model = Token
fieldsets = (
(None, ('write_enabled', 'description', 'expires', 'allowed_ips')),
)
nullable_fields = (
'expires', 'description', 'allowed_ips',
) )

View File

@ -38,9 +38,11 @@ class UserImportForm(CSVModelForm):
class TokenImportForm(CSVModelForm): class TokenImportForm(CSVModelForm):
key = forms.CharField( key = forms.CharField(
label=_('Key'), required=False, help_text=_("If no key is provided, one will be generated automatically.") label=_('Key'),
required=False,
help_text=_("If no key is provided, one will be generated automatically.")
) )
class Meta: class Meta:
model = Token model = Token
fields = ('key', 'user', 'expires', 'description',) fields = ('user', 'key', 'write_enabled', 'expires', 'description',)