mirror of https://github.com/jumpserver/jumpserver
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.1 KiB
45 lines
1.1 KiB
5 years ago
|
# -*- coding: utf-8 -*-
|
||
|
#
|
||
|
from django import forms
|
||
|
from django.utils.translation import gettext_lazy as _
|
||
|
|
||
|
from orgs.mixins.forms import OrgModelForm
|
||
|
from ..models import User, UserGroup
|
||
|
|
||
|
__all__ = ['UserGroupForm']
|
||
|
|
||
|
|
||
|
class UserGroupForm(OrgModelForm):
|
||
|
users = forms.ModelMultipleChoiceField(
|
||
|
queryset=User.objects.none(),
|
||
|
label=_("User"),
|
||
|
widget=forms.SelectMultiple(
|
||
|
attrs={
|
||
|
'class': 'users-select2',
|
||
|
'data-placeholder': _('Select users')
|
||
|
}
|
||
|
),
|
||
|
required=False,
|
||
|
)
|
||
|
|
||
|
def __init__(self, **kwargs):
|
||
|
super().__init__(**kwargs)
|
||
|
self.set_fields_queryset()
|
||
|
|
||
|
def set_fields_queryset(self):
|
||
|
users_field = self.fields.get('users')
|
||
|
if self.instance:
|
||
|
users_field.initial = self.instance.users.all()
|
||
|
users_field.queryset = self.instance.users.all()
|
||
|
else:
|
||
|
users_field.queryset = User.objects.none()
|
||
|
|
||
|
def save(self, commit=True):
|
||
|
raise Exception("Save by restful api")
|
||
|
|
||
|
class Meta:
|
||
|
model = UserGroup
|
||
|
fields = [
|
||
|
'name', 'users', 'comment',
|
||
|
]
|