mirror of https://github.com/jumpserver/jumpserver
user-group edit implement
parent
6c7e51041f
commit
65461a09a7
|
@ -13,18 +13,7 @@
|
|||
<div class="col-sm-12">
|
||||
<div class="ibox float-e-margins">
|
||||
<div class="ibox-title">
|
||||
<h5>{% trans 'Create user group' %}</h5>
|
||||
<div class="ibox-tools">
|
||||
<a class="collapse-link">
|
||||
<i class="fa fa-chevron-up"></i>
|
||||
</a>
|
||||
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
||||
<i class="fa fa-wrench"></i>
|
||||
</a>
|
||||
<a class="close-link">
|
||||
<i class="fa fa-times"></i>
|
||||
</a>
|
||||
</div>
|
||||
<h5>{{ action }}</h5>
|
||||
</div>
|
||||
<div class="ibox-content">
|
||||
<form method="post" class="form-horizontal" action="" >
|
||||
|
@ -32,9 +21,9 @@
|
|||
{{ form.name|bootstrap_horizontal }}
|
||||
|
||||
<div class="form-group">
|
||||
<label for="users" class="col-sm-2 control-label">用户</label>
|
||||
<label for="users" class="col-sm-2 control-label">{% trans 'Users' %}</label>
|
||||
<div class="col-sm-9">
|
||||
<select name="users" id="users" data-placeholder="选择用户" class="select2 form-control m-b" multiple tabindex="2">
|
||||
<select name="users" id="users" data-placeholder="{% trans 'Select User' %}" class="select2 form-control m-b" multiple tabindex="2">
|
||||
{% for user in users %}
|
||||
<option value="{{ user.id }}">{{ user.name }}</option>
|
||||
{% endfor %}
|
||||
|
@ -46,8 +35,8 @@
|
|||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-4 col-sm-offset-2">
|
||||
<button class="btn btn-white" type="reset">取消</button>
|
||||
<button id="submit_button" class="btn btn-primary" type="submit">确认保存</button>
|
||||
<button class="btn btn-white" type="reset">{% trans 'Cancel' %}</button>
|
||||
<button id="submit_button" class="btn btn-primary" type="submit">{% trans 'confirm' %}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
@ -58,9 +47,9 @@
|
|||
</div>
|
||||
{% endblock %}
|
||||
{% block custom_foot_js %}
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$('.select2').select2();
|
||||
})
|
||||
</script>
|
||||
{% endblock %}
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$('.select2').select2().val([{{ group_users }}]).trigger("change");
|
||||
})
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
|
|
@ -9,7 +9,7 @@ from django.contrib.messages.views import SuccessMessageMixin
|
|||
from django.core.files.storage import default_storage
|
||||
from django.db.models import Q
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.shortcuts import get_object_or_404, reverse, redirect
|
||||
from django.shortcuts import reverse, redirect
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.utils.translation import ugettext as _
|
||||
from django.urls import reverse_lazy
|
||||
|
@ -21,6 +21,7 @@ from django.views.generic.list import ListView
|
|||
from django.views.generic.edit import CreateView, DeleteView, UpdateView, FormView, SingleObjectMixin, \
|
||||
FormMixin
|
||||
from django.views.generic.detail import DetailView
|
||||
|
||||
from formtools.wizard.views import SessionWizardView
|
||||
|
||||
from common.utils import get_object_or_none, get_logger
|
||||
|
@ -223,15 +224,40 @@ class UserGroupCreateView(AdminUserRequiredMixin, CreateView):
|
|||
def form_valid(self, form):
|
||||
user_group = form.save()
|
||||
users_id_list = self.request.POST.getlist('users', [])
|
||||
users = [get_object_or_404(User, id=user_id) for user_id in users_id_list]
|
||||
users = User.objects.filter(id__in=users_id_list)
|
||||
user_group.created_by = self.request.user.username or 'Admin'
|
||||
user_group.users.add(*tuple(users))
|
||||
user_group.users.add(*users)
|
||||
user_group.save()
|
||||
return super(UserGroupCreateView, self).form_valid(form)
|
||||
|
||||
|
||||
class UserGroupUpdateView(UpdateView):
|
||||
pass
|
||||
class UserGroupUpdateView(AdminUserRequiredMixin, UpdateView):
|
||||
model = UserGroup
|
||||
form_class = UserGroupForm
|
||||
template_name = 'users/user_group_create.html'
|
||||
success_url = reverse_lazy('users:user-group-list')
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
self.object = self.get_object()
|
||||
context = super(UserGroupUpdateView, self).get_context_data(**kwargs)
|
||||
users = User.objects.all()
|
||||
group_users = ",".join([str(u.id) for u in self.object.users.all()])
|
||||
context.update({
|
||||
'app': _('Users'),
|
||||
'action': _('Update User Group'),
|
||||
'users': users,
|
||||
'group_users': group_users
|
||||
})
|
||||
return context
|
||||
|
||||
def form_valid(self, form):
|
||||
user_group = form.save()
|
||||
users_id_list = self.request.POST.getlist('users', [])
|
||||
users = User.objects.filter(id__in=users_id_list)
|
||||
user_group.users.clear()
|
||||
user_group.users.add(*users)
|
||||
user_group.save()
|
||||
return super(UserGroupUpdateView, self).form_valid(form)
|
||||
|
||||
|
||||
class UserGroupDetailView(AdminUserRequiredMixin, DetailView):
|
||||
|
|
Loading…
Reference in New Issue