structure2user

This commit is contained in:
RobbieHan
2018-10-23 19:10:55 +08:00
parent b85d89642d
commit 45630bd451
8 changed files with 305 additions and 250 deletions

View File

@@ -11,5 +11,6 @@ urlpatterns = [
path('basic/structure/create/', views_structure.StructureCreateView.as_view(), name='basic-structure-create'),
path('basic/structure/list/', views_structure.StructureListView.as_view(), name='basic-structure-list'),
path('basic/structure/delete/', views_structure.StructureDeleteView.as_view(), name='basic-structure-delete'),
path('basic/structure/add_user/', views_structure.Structure2UserView.as_view(), name='basic-structure-add_user'),
]

View File

@@ -9,11 +9,14 @@ from django.views.generic.base import View
from django.shortcuts import render
from django.shortcuts import HttpResponse
from django.shortcuts import get_object_or_404
from django.contrib.auth import get_user_model
from .mixin import LoginRequiredMixin
from .models import Structure
from .forms import StructureForm
User = get_user_model()
class StructureView(LoginRequiredMixin, TemplateView):
@@ -58,4 +61,29 @@ class StructureDeleteView(LoginRequiredMixin, View):
id_list = map(int, request.POST['id'].split(','))
Structure.objects.filter(id__in=id_list).delete()
ret['result'] = True
return HttpResponse(json.dumps(ret), content_type='application/json')
return HttpResponse(json.dumps(ret), content_type='application/json')
class Structure2UserView(LoginRequiredMixin, View):
def get(self, request):
if 'id' in request.GET and request.GET['id']:
structure = get_object_or_404(Structure, pk=int(request.GET['id']))
added_users = structure.userprofile_set.all()
all_users = User.objects.all()
un_add_users = set(all_users).difference(added_users)
ret = dict(structure=structure, added_users=added_users, un_add_users=list(un_add_users))
return render(request, 'system/structure/structure_user.html', ret)
def post(self, request):
res = dict(result=False)
id_list = None
structure = get_object_or_404(Structure, pk=int(request.POST['id']))
if 'to' in request.POST and request.POST.getlist('to', []):
id_list = map(int, request.POST.getlist('to', []))
structure.userprofile_set.clear()
if id_list:
for user in User.objects.filter(id__in=id_list):
structure.userprofile_set.add(user)
res['result'] = True
return HttpResponse(json.dumps(res), content_type='application/json')