| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- # -*- coding: utf-8 -*-
- from django.shortcuts import render
- from django.views.generic import ListView
- from apps.AppInfo.models import MyUser, Equip, Group
- from django import forms
- from django.db.models import Q
- import re
- import datetime
- # 分配设备
- class EquipAllot(ListView):
- def get(self, request):
- # 接收当前用户
- # current_user = request.session.get('username')
- current_user = MyUser.objects.get(username="admin")
- # print("current_user:", current_user)
- # current_user = MyUser.objects.get(username=current_user)
- page = request.GET.get("page")
- uname = request.GET.get("uname")
- user_list = MyUser.objects.all()
- nums = user_list.count()
- return render(request, 'backstageNet/equipallot/equipallot.html', context={"nums": nums,"page":page,"uname":uname})
- def post(self, request):
- pass
- def allot_user_list(request):
- if request.method == 'GET':
- page = int(request.GET.get('page'))
- print("page=", page)
- uname = request.GET.get("uname")
- # 接收当前用户
- # current_user = request.session.get('username')
- current_user = MyUser.objects.get(username="admin")
- # print("current_user:", current_user)
- # current_user = MyUser.objects.get(username=current_user)
- # if current_user.is_superuser == True:
- user_list = MyUser.objects.all().order_by(
- "-date_joined")[(10*(page-1)):(page*10)]
- if uname:
- user_list = MyUser.objects.filter(username__contains=uname).order_by(
- "-date_joined")[(10*(page-1)):(page*10)]
- return render(request, 'backstageNet/equipallot/allot_user_list.html', context={'user_list': user_list})
- elif request.method == 'POST':
- # current_user = request.session.get('username')
- # print("current_user:", current_user)
- current_user = MyUser.objects.get(username="admin")
- print("筛选:")
- f_name = request.POST.get('uname')
- page = int(request.POST.get('page'))
- print("page:", page)
- user_list = MyUser.objects.filter(username__contains=f_name)
- nums = user_list.count()
- user_list = user_list[(10*(page-1)):(page*10)]
- return render(request, 'backstageNet/equipallot/allot_user_list.html', context={'user_list': user_list, "nums": nums})
- from django.views.decorators.csrf import csrf_exempt
- @csrf_exempt
- def allot_equip_list(request):
- # 当前用户已拥有的设备的列表:
- equip_list1 = []
- # 未被分配的设备的列表:
- equip_list2 = []
- # 当前页的设备id列表:
- equip_ids = []
- if request.method == 'GET':
- # 选中需要进行分配设备的用户后:显示的设备列表;
- uname = request.GET.get('uname')
- print("uname=", uname)
- uname_obj = MyUser.objects.get(username=uname)
- page = int(request.GET.get('page'))
- print("page=", page)
- # 接收当前用户
- # current_user = request.session.get('username')
- # print("current_user:", current_user)
- current_user = MyUser.objects.get(username="admin")
- if current_user.is_superuser == True:
- equip_list = Equip.objects.filter(
- Q(equip_user=None) | Q(equip_user=uname_obj))
- equip_list = list(equip_list)
- print('type equip_list:', type(equip_list))
- # print('equip_list:', equip_list)
- for i in equip_list:
- if i.equip_user != None:
- equip_list1.append(i)
- else:
- equip_list2.append(i)
- # print('equip_list1:', equip_list1)
- # print('equip_list2:', equip_list2)
- equip_list = equip_list1+equip_list2
- equip_list = equip_list[(10*(page-1)):(page*10)]
- for i in equip_list:
- equip_ids.append(i.equip_id)
- equip_ids = ','.join(equip_ids)
- return render(request, 'backstageNet/equipallot/allot_equip_list.html', context={'equip_list': equip_list, 'equip_ids': equip_ids, "uname": uname})
- elif request.method == 'POST':
- # current_user = request.session.get('username')
- # print("current_user:", current_user)
- current_user = MyUser.objects.get(username="admin")
- print("筛选:")
- uname = request.POST.get('uname')
- print("uname=", uname)
- uname_obj = MyUser.objects.get(username=uname)
- f_type = request.POST.get('type')
- f_id = request.POST.get('f_id')
- print("f_type:", f_type)
- print("f_id:", f_id)
- page = int(request.POST.get('page'))
- print("page:", page)
- # 000
- if f_id == None and f_type == '0':
- equip_list = Equip.objects.filter(
- Q(equip_user=None) | Q(equip_user=uname_obj))
- # 010
- elif f_id == None and f_type != '0':
- equip_list = Equip.objects.filter(Q(equip_user=None, equip_type=f_type) | Q(
- equip_user=uname_obj, equip_type=f_type))
- # 100
- elif f_id != None and f_type == '0':
- equip_list = Equip.objects.filter(
- Q(equip_user=None, equip_id__contains=f_id) | Q(equip_user=uname_obj, equip_id__contains=f_id))
- # 110
- elif f_id != None and f_type != '0':
- equip_list = Equip.objects.filter(Q(equip_user=None, equip_id__contains=f_id, equip_type=f_type) | Q(
- equip_user=uname_obj, equip_id__contains=f_id, equip_type=f_type))
- nums = equip_list.count()
- equip_list = equip_list[(10*(page-1)):(page*10)]
- for i in equip_list:
- equip_ids.append(i.equip_id)
-
- equip_ids = ','.join(equip_ids)
- return render(request, 'backstageNet/equipallot/allot_equip_list.html', context={'equip_list': equip_list, 'equip_ids': equip_ids, "nums": nums})
- # 进入对应的用户分配设备页面
- def allot(request):
- if request.method == 'GET':
- # current_user = request.session.get('username')
- current_user = MyUser.objects.get(username="admin")
- print("current_user:", current_user)
- # current_user = MyUser.objects.get(username=current_user)
- uname = request.GET.get('uname')
- uname_obj = MyUser.objects.get(username=uname)
- print("uname=", uname)
- page = request.GET.get("currpage")
- f_name = request.GET.get("f_name")
- nums = Equip.objects.filter(
- Q(equip_user=None) | Q(equip_user=uname_obj)).count()
- print('nums:', nums)
- return render(request, 'backstageNet/equipallot/allot.html', context={"nums": nums, "uname": uname,"currpage":page,"f_name":f_name})
- if request.method == 'POST':
- # current_user = request.session.get('username')
- # print("current_user:", current_user)
- current_user = MyUser.objects.get(username="admin")
- uname = request.POST.get('uname')
- uname_obj = MyUser.objects.get(username=uname)
- print("uname=", uname)
- # 获得当前页的全部id:equip_ids
- equip_ids = request.POST.get('equip_ids')
- # print("equip_ids=", equip_ids)
- equip_ids = equip_ids.split(',')
- button = request.POST.get('submit')
- if button == "fenpei":
- # 获得选中的复选框:
- check_box_list = request.POST.getlist('check_box_list')
- print('check_box_list:', check_box_list)
- no_check_box_list = []
- for i in equip_ids:
- if i in check_box_list:
- pass
- else:
- no_check_box_list.append(i)
- # 分配复选框选中的设备:
- for checked_id in check_box_list:
- choose_equip = Equip.objects.get(equip_id=checked_id)
- # 如果选中的设备没有用户:即选中的设备 设备用户为None:
- if choose_equip.equip_user == None: # 只有当选中的设备id对应的设备 没有用户时才分配
- choose_equip.equip_user = uname_obj
- choose_equip.save() # 保存到数据库
- # 取消分配:给当前用户取消已分配的设备;
- for a in no_check_box_list:
- choose_equip = Equip.objects.get(equip_id=a)
- choose_equip.equip_user = None # 把设备的设备用户改为None,表示取消分配
- choose_equip.save()
- equip_list = Equip.objects.filter(
- Q(equip_user=None) | Q(equip_user=uname_obj))
- user_equip_list = Equip.objects.filter(equip_user=uname_obj)
- equip_type_list = []
- for i in user_equip_list:
- equip_type_list.append(i.equip_type.type_id)
- print('abcdef',equip_type_list)
- groups = Group.objects.filter(user=uname_obj)
- nums = equip_list.count()
- return render(request, 'backstageNet/equipallot/allot.html', context={'equip_list': equip_list, 'nums': nums, "uname": uname, 'allot_note': '设备分配成功!'})
|