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):
name = models.CharField(blank=True, max_length=50)
archive = models.BooleanField(default=False)
def __str__(self) -> str:
return str(self.name)
+2
View File
@@ -46,5 +46,7 @@ class CidUserTable(tables.Table):
"cid",
"passcode",
"active",
"group"
"internal"
)
# sequence = ("view")
+16
View File
@@ -74,6 +74,16 @@
</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>
<button id="add-new-cids">Add New Users</button>
<input type="number" id="add-number" value="number to add">
@@ -121,6 +131,7 @@
sba_exams: JSON.stringify($("#sbas-exams").val()),
longs_exams: JSON.stringify($("#longs-exams").val()),
anatomy_exams: JSON.stringify($("#anatomy-exams").val()),
cid_groups: JSON.stringify($("#cid-groups").val()),
delete: false,
number_to_create: 0,
activate: false,
@@ -132,6 +143,11 @@
}
$(document).ready(function () {
$("#add-group").click((evt) => {
data = getGenericData();
data["add_group"] = true;
postAjax(data);
});
$("#add-exams-selected-cids").click((evt) => {
data = getGenericData();
data["add_exams"] = true;
+17 -7
View File
@@ -34,7 +34,7 @@ from .forms import (
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 Exam as RapidExam
@@ -432,11 +432,7 @@ class ExamViews(View, LoginRequiredMixin):
return render(
request,
"{}/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)
@@ -980,11 +976,16 @@ class CidUserView(LoginRequiredMixin, SingleTableMixin, FilterView):
(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["rapid_exams"] = rapid_exams
context["sba_exams"] = sba_exams
context["longs_exams"] = longs_exams
context["anatomy_exams"] = anatomy_exams
context["cid_user_groups"] = cid_user_groups
return context
@@ -997,17 +998,27 @@ def manage_cid_users(request):
sba_exams = json.loads(request.POST.get("sba_exams"))
longs_exams = json.loads(request.POST.get("longs_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"))
number_to_create = int(request.POST.get("number_to_create"))
add_group = request.POST.get("add_group")
delete = request.POST.get("delete")
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 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":
cids = CidUser.objects.filter(pk__in=selected_cids).delete()
return JsonResponse({"status": "success"})
@@ -1037,7 +1048,6 @@ def manage_cid_users(request):
return JsonResponse({"status": "success"})
if add_exams == "true":
print("ADD EXAMS", selected_cids)
cids = CidUser.objects.filter(pk__in=selected_cids)
for c in cids:
if physics_exams: