This commit is contained in:
Ross
2021-12-14 18:05:34 +00:00
parent 5fd542534c
commit 0dd585d6e0
5 changed files with 54 additions and 7 deletions
@@ -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),
),
]
+1
View File
@@ -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)
+2
View File
@@ -46,5 +46,7 @@ class CidUserTable(tables.Table):
"cid", "cid",
"passcode", "passcode",
"active", "active",
"group"
"internal"
) )
# sequence = ("view") # sequence = ("view")
+16
View File
@@ -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
View File
@@ -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: