.
This commit is contained in:
+21
-15
@@ -415,7 +415,9 @@ class ExamViews(View, LoginRequiredMixin):
|
|||||||
raise PermissionDenied
|
raise PermissionDenied
|
||||||
|
|
||||||
return render(
|
return render(
|
||||||
request, "exam_list.html".format(self.app_name), {"exams": exams, "app_name": self.app_name}
|
request,
|
||||||
|
"exam_list.html".format(self.app_name),
|
||||||
|
{"exams": exams, "app_name": self.app_name, "view_all": all},
|
||||||
)
|
)
|
||||||
|
|
||||||
@method_decorator(login_required)
|
@method_decorator(login_required)
|
||||||
@@ -450,10 +452,12 @@ class ExamViews(View, LoginRequiredMixin):
|
|||||||
.all()
|
.all()
|
||||||
.prefetch_related(
|
.prefetch_related(
|
||||||
Prefetch(
|
Prefetch(
|
||||||
"answers",
|
"answers",
|
||||||
queryset=self.Answer.objects.filter(proposed=False, status=self.Answer.MarkOptions.CORRECT),
|
queryset=self.Answer.objects.filter(
|
||||||
to_attr="prefetched_primary_answer"
|
proposed=False, status=self.Answer.MarkOptions.CORRECT
|
||||||
#queryset=self.Answer.objects.filter(),
|
),
|
||||||
|
to_attr="prefetched_primary_answer"
|
||||||
|
# queryset=self.Answer.objects.filter(),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@@ -635,19 +639,21 @@ class ExamViews(View, LoginRequiredMixin):
|
|||||||
)
|
)
|
||||||
.all()
|
.all()
|
||||||
.prefetch_related(
|
.prefetch_related(
|
||||||
#"cid_user_answers",
|
# "cid_user_answers",
|
||||||
Prefetch(
|
Prefetch(
|
||||||
"answers",
|
"answers",
|
||||||
queryset=self.Answer.objects.filter(proposed=False, status=self.Answer.MarkOptions.CORRECT),
|
queryset=self.Answer.objects.filter(
|
||||||
to_attr="prefetched_primary_answer"
|
proposed=False, status=self.Answer.MarkOptions.CORRECT
|
||||||
#queryset=self.Answer.objects.filter(),
|
),
|
||||||
|
to_attr="prefetched_primary_answer"
|
||||||
|
# queryset=self.Answer.objects.filter(),
|
||||||
),
|
),
|
||||||
#Prefetch(
|
# Prefetch(
|
||||||
# "cid_user_answers",
|
# "cid_user_answers",
|
||||||
# queryset=self.CidUserAnswer.objects.filter(score=self.Answer.MarkOptions.UNMARKED, exam__id=pk),
|
# queryset=self.CidUserAnswer.objects.filter(score=self.Answer.MarkOptions.UNMARKED, exam__id=pk),
|
||||||
# to_attr="prefetched_unmarked_cid_answers"
|
# to_attr="prefetched_unmarked_cid_answers"
|
||||||
# #queryset=self.Answer.objects.filter(),
|
# #queryset=self.Answer.objects.filter(),
|
||||||
#),
|
# ),
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
@@ -936,7 +942,7 @@ class ExamViews(View, LoginRequiredMixin):
|
|||||||
user_answers_marks = defaultdict(list)
|
user_answers_marks = defaultdict(list)
|
||||||
user_answers = defaultdict(list)
|
user_answers = defaultdict(list)
|
||||||
user_names = {}
|
user_names = {}
|
||||||
#cid_passcodes = {}
|
# cid_passcodes = {}
|
||||||
|
|
||||||
by_question = defaultdict(dict)
|
by_question = defaultdict(dict)
|
||||||
unmarked = set()
|
unmarked = set()
|
||||||
@@ -954,7 +960,7 @@ class ExamViews(View, LoginRequiredMixin):
|
|||||||
for cid_user_answer in cid_user_answers:
|
for cid_user_answer in cid_user_answers:
|
||||||
# Convoluted (probably...)
|
# Convoluted (probably...)
|
||||||
cid = cid_user_answer.cid
|
cid = cid_user_answer.cid
|
||||||
#cid_passcodes[cid] = cid_user_answer.passcode
|
# cid_passcodes[cid] = cid_user_answer.passcode
|
||||||
cids.add(cid)
|
cids.add(cid)
|
||||||
s = cid_user_answer
|
s = cid_user_answer
|
||||||
user_names[cid] = cid
|
user_names[cid] = cid
|
||||||
@@ -1055,7 +1061,7 @@ class ExamViews(View, LoginRequiredMixin):
|
|||||||
f"{self.app_name}/exam_scores_new.html",
|
f"{self.app_name}/exam_scores_new.html",
|
||||||
{
|
{
|
||||||
"cids": sorted(cids),
|
"cids": sorted(cids),
|
||||||
#"cid_passcodes": cid_passcodes,
|
# "cid_passcodes": cid_passcodes,
|
||||||
"exam": exam,
|
"exam": exam,
|
||||||
"unmarked": unmarked,
|
"unmarked": unmarked,
|
||||||
"questions": questions,
|
"questions": questions,
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
{% for exam in exams %}
|
{% for exam in exams %}
|
||||||
{% if exam.active %}
|
{% if exam.active %}
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url app_name|add:'exam_overview' pk=exam.pk %}" class="flex-col">{{exam.name}}</a> <a href="{% url app_name|add:'mark_overview' pk=exam.pk %}" class="flex-col">Mark</a><a href="{% url app_name|add:'exam_scores_cid' pk=exam.pk %}" class="flex-col">Scores</a> <span class="flex-col icon-container"><span class="published-icon {% if exam.publish_results %}published{% endif %}">Results Published</span></span>
|
<a href="{% url app_name|add:':exam_overview' pk=exam.pk %}" class="flex-col">{{exam.name}}</a> <a href="{% url app_name|add:':mark_overview' pk=exam.pk %}" class="flex-col">Mark</a><a href="{% url app_name|add:':exam_scores_cid' pk=exam.pk %}" class="flex-col">Scores</a> <span class="flex-col icon-container"><span class="published-icon {% if exam.publish_results %}published{% endif %}">Results Published</span></span>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
@@ -19,12 +19,17 @@
|
|||||||
{% for exam in exams %}
|
{% for exam in exams %}
|
||||||
{% if not exam.active %}
|
{% if not exam.active %}
|
||||||
<li>
|
<li>
|
||||||
<a href="{% url app_name|add:'exam_overview' pk=exam.pk %}" class="flex-col">{{exam.name}}</a> <a href="{% url app_name|add:'mark_overview' pk=exam.pk %}" class="flex-col">Mark</a><a href="{% url app_name|add:'exam_scores_cid' pk=exam.pk %}" class="flex-col">Scores</a> <span class="flex-col icon-container"><span class="published-icon {% if exam.publish_results %}published{% endif %}">Results Published</span></span>
|
<a href="{% url app_name|add:':exam_overview' pk=exam.pk %}" class="flex-col">{{exam.name}}</a> <a href="{% url app_name|add:':mark_overview' pk=exam.pk %}" class="flex-col">Mark</a><a href="{% url app_name|add:':exam_scores_cid' pk=exam.pk %}" class="flex-col">Scores</a> <span class="flex-col icon-container"><span class="published-icon {% if exam.publish_results %}published{% endif %}">Results Published</span></span>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
{% if view_all %}
|
||||||
|
<a href="{% url app_name|add:':exam_list' %}">Hide archived</a>
|
||||||
|
{% else %}
|
||||||
|
<a href="{% url app_name|add:':exam_list_all' %}">View all</a>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
Reference in New Issue
Block a user