.
This commit is contained in:
@@ -25,6 +25,7 @@ import urllib
|
||||
from django.views import View
|
||||
from django_filters.views import FilterView
|
||||
from django_tables2.views import SingleTableMixin
|
||||
from generic.decorators import user_is_cid_user_manager
|
||||
from generic.filters import CidUserFilter
|
||||
|
||||
from generic.tables import CidUserTable
|
||||
@@ -951,6 +952,7 @@ class CidUserView(LoginRequiredMixin, SingleTableMixin, FilterView):
|
||||
|
||||
|
||||
@login_required
|
||||
@user_is_cid_user_manager
|
||||
def manage_cid_users(request):
|
||||
if request.is_ajax() and request.method == "POST":
|
||||
physics_exams = json.loads(request.POST.get("physics_exams"))
|
||||
@@ -959,10 +961,67 @@ def manage_cid_users(request):
|
||||
longs_exams = json.loads(request.POST.get("longs_exams"))
|
||||
anatomy_exams = json.loads(request.POST.get("anatomy_exams"))
|
||||
|
||||
selected_cids = json.loads(request.POST.get("selected_cids"))
|
||||
|
||||
new_cid = max(CidUser.objects.all().order_by("-cid")[0].cid + 1, 50000)
|
||||
|
||||
number_to_create = int(request.POST.get("number_to_create"))
|
||||
|
||||
delete = request.POST.get("deleted")
|
||||
activate = request.POST.get("activate")
|
||||
deactivate = request.POST.get("deactivate")
|
||||
add_exams = request.POST.get("add_exams")
|
||||
clear_exams = request.POST.get("clear_exams")
|
||||
|
||||
if delete:
|
||||
cids = CidUser.objects.filter(pk__in=selected_cids).delete()
|
||||
return JsonResponse({"status": "success"})
|
||||
|
||||
if activate:
|
||||
cids = CidUser.objects.filter(pk__in=selected_cids)
|
||||
for c in cids:
|
||||
c.active = True
|
||||
c.save()
|
||||
return JsonResponse({"status": "success"})
|
||||
|
||||
if deactivate:
|
||||
cids = CidUser.objects.filter(pk__in=selected_cids)
|
||||
for c in cids:
|
||||
c.active = False
|
||||
c.save()
|
||||
return JsonResponse({"status": "success"})
|
||||
|
||||
if clear_exams:
|
||||
cids = CidUser.objects.filter(pk__in=selected_cids)
|
||||
for c in cids:
|
||||
c.physics_exams.clear()
|
||||
c.rapid_exams.clear()
|
||||
c.sba_exams.clear()
|
||||
c.longs_exams.clear()
|
||||
c.anatomy_exams.clear()
|
||||
return JsonResponse({"status": "success"})
|
||||
|
||||
if add_exams:
|
||||
cids = CidUser.objects.filter(pk__in=selected_cids)
|
||||
for c in cids:
|
||||
if physics_exams:
|
||||
c.physics_exams.set(physics_exams)
|
||||
c.save()
|
||||
if rapid_exams:
|
||||
c.rapid_exams.set(rapid_exams)
|
||||
c.save()
|
||||
if sba_exams:
|
||||
c.sba_exams.set(sba_exams)
|
||||
c.save()
|
||||
if longs_exams:
|
||||
c.longs_exams.set(longs_exams)
|
||||
c.save()
|
||||
if anatomy_exams:
|
||||
c.anatomy_exams.set(anatomy_exams)
|
||||
c.save()
|
||||
return JsonResponse({"status": "success"})
|
||||
|
||||
|
||||
for n in range(number_to_create):
|
||||
passcode = "".join(random.choices(string.ascii_uppercase, k=4))
|
||||
c = CidUser(cid=new_cid, passcode=passcode)
|
||||
|
||||
Reference in New Issue
Block a user