.
This commit is contained in:
@@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 3.2.8 on 2021-12-14 18:03
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('generic', '0018_auto_20211214_1745'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='cidusergroup',
|
||||||
|
name='archive',
|
||||||
|
field=models.BooleanField(default=False),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -230,6 +230,7 @@ class CidUserExam(models.Model):
|
|||||||
|
|
||||||
class CidUserGroup(models.Model):
|
class CidUserGroup(models.Model):
|
||||||
name = models.CharField(blank=True, max_length=50)
|
name = models.CharField(blank=True, max_length=50)
|
||||||
|
archive = models.BooleanField(default=False)
|
||||||
|
|
||||||
def __str__(self) -> str:
|
def __str__(self) -> str:
|
||||||
return str(self.name)
|
return str(self.name)
|
||||||
|
|||||||
@@ -46,5 +46,7 @@ class CidUserTable(tables.Table):
|
|||||||
"cid",
|
"cid",
|
||||||
"passcode",
|
"passcode",
|
||||||
"active",
|
"active",
|
||||||
|
"group"
|
||||||
|
"internal"
|
||||||
)
|
)
|
||||||
# sequence = ("view")
|
# sequence = ("view")
|
||||||
|
|||||||
@@ -74,6 +74,16 @@
|
|||||||
</span>
|
</span>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
Groups<br/>
|
||||||
|
<select id="cid-groups" multiple="multiple">
|
||||||
|
{% for name, id in cid_user_groups %}
|
||||||
|
<option value="{{id}}">{{name}}</option>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
</select>
|
||||||
|
<button id="add-group">Add Group to users</button>
|
||||||
</div>
|
</div>
|
||||||
<button id="add-new-cids">Add New Users</button>
|
<button id="add-new-cids">Add New Users</button>
|
||||||
<input type="number" id="add-number" value="number to add">
|
<input type="number" id="add-number" value="number to add">
|
||||||
@@ -121,6 +131,7 @@
|
|||||||
sba_exams: JSON.stringify($("#sbas-exams").val()),
|
sba_exams: JSON.stringify($("#sbas-exams").val()),
|
||||||
longs_exams: JSON.stringify($("#longs-exams").val()),
|
longs_exams: JSON.stringify($("#longs-exams").val()),
|
||||||
anatomy_exams: JSON.stringify($("#anatomy-exams").val()),
|
anatomy_exams: JSON.stringify($("#anatomy-exams").val()),
|
||||||
|
cid_groups: JSON.stringify($("#cid-groups").val()),
|
||||||
delete: false,
|
delete: false,
|
||||||
number_to_create: 0,
|
number_to_create: 0,
|
||||||
activate: false,
|
activate: false,
|
||||||
@@ -132,6 +143,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
$(document).ready(function () {
|
$(document).ready(function () {
|
||||||
|
$("#add-group").click((evt) => {
|
||||||
|
data = getGenericData();
|
||||||
|
data["add_group"] = true;
|
||||||
|
postAjax(data);
|
||||||
|
});
|
||||||
$("#add-exams-selected-cids").click((evt) => {
|
$("#add-exams-selected-cids").click((evt) => {
|
||||||
data = getGenericData();
|
data = getGenericData();
|
||||||
data["add_exams"] = true;
|
data["add_exams"] = true;
|
||||||
|
|||||||
+17
-7
@@ -34,7 +34,7 @@ from .forms import (
|
|||||||
ExaminationForm,
|
ExaminationForm,
|
||||||
)
|
)
|
||||||
|
|
||||||
from .models import CidUser, Examination, QuestionNote
|
from .models import CidUser, CidUserGroup, Examination, QuestionNote
|
||||||
|
|
||||||
from rapids.models import Rapid as RapidQuestion
|
from rapids.models import Rapid as RapidQuestion
|
||||||
from rapids.models import Exam as RapidExam
|
from rapids.models import Exam as RapidExam
|
||||||
@@ -432,11 +432,7 @@ class ExamViews(View, LoginRequiredMixin):
|
|||||||
return render(
|
return render(
|
||||||
request,
|
request,
|
||||||
"{}/exam_cids.html".format(self.app_name),
|
"{}/exam_cids.html".format(self.app_name),
|
||||||
{
|
{"exam": exam, "cid_users": cid_users, "cid_user_count": cid_user_count},
|
||||||
"exam": exam,
|
|
||||||
"cid_users": cid_users,
|
|
||||||
"cid_user_count": cid_user_count
|
|
||||||
},
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# @method_decorator(login_required)
|
# @method_decorator(login_required)
|
||||||
@@ -980,11 +976,16 @@ class CidUserView(LoginRequiredMixin, SingleTableMixin, FilterView):
|
|||||||
(i.name, i.pk) for i in AnatomyExam.objects.filter(archive=False)
|
(i.name, i.pk) for i in AnatomyExam.objects.filter(archive=False)
|
||||||
]
|
]
|
||||||
|
|
||||||
|
cid_user_groups = [
|
||||||
|
(i.name, i.pk) for i in CidUserGroup.objects.filter(archive=False)
|
||||||
|
]
|
||||||
|
|
||||||
context["physics_exams"] = physics_exams
|
context["physics_exams"] = physics_exams
|
||||||
context["rapid_exams"] = rapid_exams
|
context["rapid_exams"] = rapid_exams
|
||||||
context["sba_exams"] = sba_exams
|
context["sba_exams"] = sba_exams
|
||||||
context["longs_exams"] = longs_exams
|
context["longs_exams"] = longs_exams
|
||||||
context["anatomy_exams"] = anatomy_exams
|
context["anatomy_exams"] = anatomy_exams
|
||||||
|
context["cid_user_groups"] = cid_user_groups
|
||||||
return context
|
return context
|
||||||
|
|
||||||
|
|
||||||
@@ -997,17 +998,27 @@ def manage_cid_users(request):
|
|||||||
sba_exams = json.loads(request.POST.get("sba_exams"))
|
sba_exams = json.loads(request.POST.get("sba_exams"))
|
||||||
longs_exams = json.loads(request.POST.get("longs_exams"))
|
longs_exams = json.loads(request.POST.get("longs_exams"))
|
||||||
anatomy_exams = json.loads(request.POST.get("anatomy_exams"))
|
anatomy_exams = json.loads(request.POST.get("anatomy_exams"))
|
||||||
|
cid_groups = json.loads(request.POST.get("cid_groups"))
|
||||||
|
|
||||||
selected_cids = json.loads(request.POST.get("selected_cids"))
|
selected_cids = json.loads(request.POST.get("selected_cids"))
|
||||||
|
|
||||||
number_to_create = int(request.POST.get("number_to_create"))
|
number_to_create = int(request.POST.get("number_to_create"))
|
||||||
|
|
||||||
|
add_group = request.POST.get("add_group")
|
||||||
delete = request.POST.get("delete")
|
delete = request.POST.get("delete")
|
||||||
activate = request.POST.get("activate")
|
activate = request.POST.get("activate")
|
||||||
deactivate = request.POST.get("deactivate")
|
deactivate = request.POST.get("deactivate")
|
||||||
add_exams = request.POST.get("add_exams")
|
add_exams = request.POST.get("add_exams")
|
||||||
clear_exams = request.POST.get("clear_exams")
|
clear_exams = request.POST.get("clear_exams")
|
||||||
|
|
||||||
|
if add_group == "true":
|
||||||
|
cids = CidUser.objects.filter(pk__in=selected_cids)
|
||||||
|
for c in cids:
|
||||||
|
c.group_id = cid_groups[0]
|
||||||
|
c.save()
|
||||||
|
return JsonResponse({"status": "success"})
|
||||||
|
|
||||||
|
|
||||||
if delete == "true":
|
if delete == "true":
|
||||||
cids = CidUser.objects.filter(pk__in=selected_cids).delete()
|
cids = CidUser.objects.filter(pk__in=selected_cids).delete()
|
||||||
return JsonResponse({"status": "success"})
|
return JsonResponse({"status": "success"})
|
||||||
@@ -1037,7 +1048,6 @@ def manage_cid_users(request):
|
|||||||
return JsonResponse({"status": "success"})
|
return JsonResponse({"status": "success"})
|
||||||
|
|
||||||
if add_exams == "true":
|
if add_exams == "true":
|
||||||
print("ADD EXAMS", selected_cids)
|
|
||||||
cids = CidUser.objects.filter(pk__in=selected_cids)
|
cids = CidUser.objects.filter(pk__in=selected_cids)
|
||||||
for c in cids:
|
for c in cids:
|
||||||
if physics_exams:
|
if physics_exams:
|
||||||
|
|||||||
Reference in New Issue
Block a user