feat: add new endpoints for fetching active exams by type and cid; enhance exam handling in views

This commit is contained in:
Ross
2026-07-04 22:40:48 +01:00
parent 856fb0bf08
commit d8bacfefa9
7 changed files with 73 additions and 20 deletions
+9 -7
View File
@@ -34,7 +34,7 @@
<div class="row">
<div class="col-lg-8">
<div class="card mb-3">
<div class="card mb-3" id="exam-assigned">
<div class="card-header">
<h5 class="mb-0">Assigned Exams</h5>
</div>
@@ -43,9 +43,9 @@
{% for exam_type, exams in available_exams %}
{% if exams %}
<h6 class="mt-3">{{ exam_type|title }}</h6>
<ul class="list-group">
<ul class="list-group {{ exam_type|lower }}">
{% for exam in exams %}
<li class="list-group-item d-flex justify-content-between align-items-center {% if exam.is_hidden %}opacity-50 bg-secondary bg-opacity-10{% endif %}">
<li class="list-group-item d-flex justify-content-between align-items-center {% if exam.is_hidden %}opacity-50 bg-secondary bg-opacity-10{% endif %}" data-exam-id="{{exam.pk}}">
<div>
{{ exam }}
{% if exam.active %}<span class="badge bg-success ms-2">Active</span>{% endif %}
@@ -55,7 +55,9 @@
<div class="d-flex align-items-center gap-2">
<div class="btn-group btn-group-sm" role="group">
{% if exam.active %}
<a class="btn btn-primary" href="{{ exam.get_take_url }}" target="_blank" title="Click to take exam">Start</a>
<a href="{{ exam.get_take_url }}" target="_blank" title="Click to take exam">
<button class="btn btn-primary start-button">Start</button>
</a>
{% endif %}
{% if exam.publish_results %}
<a class="btn btn-outline-secondary" href="{% url exam_type|lower|add:':exam_scores_user' pk=exam.pk %}" title="Click to view results">Results</a>
@@ -81,7 +83,7 @@
</div>
{% if all_exams %}
<div class="card mb-3">
<div class="card mb-3" id="exam-results">
<div class="card-header">
<h5 class="mb-0">Exam Results</h5>
</div>
@@ -90,9 +92,9 @@
{% for exam_type, exams in all_exams %}
{% if exams %}
<h6 class="mt-3">{{ exam_type|title }}</h6>
<ul class="list-group">
<ul class="list-group {{ exam_type|lower }}">
{% for exam in exams %}
<li class="list-group-item d-flex justify-content-between align-items-center {% if exam.is_hidden %}opacity-50 bg-secondary bg-opacity-10{% endif %}">
<li class="list-group-item d-flex justify-content-between align-items-center {% if exam.is_hidden %}opacity-50 bg-secondary bg-opacity-10{% endif %}" data-exam-id="{{exam.pk}}">
<div>
{% if admin %}
<a href="{% url exam_type|add:':exam_scores_user_admin' pk=exam.pk user_id=user.pk %}">{{ exam }}</a>