Enhance exam overview and status templates with improved layout and functionality for open access management and publish results status.
This commit is contained in:
@@ -55,10 +55,7 @@
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
<div>
|
||||
Open access:
|
||||
<div class="fw-bold">{{ exam.open_access }}</div>
|
||||
</div>
|
||||
<div class="text-end">
|
||||
{% include "generic/partials/exams/exam_status.html#exam-active" %}
|
||||
<span class="fw-bold">{{ exam.open_access }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-2 small text-muted">
|
||||
@@ -67,6 +64,13 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-body p-2">
|
||||
<div class="d-flex justify-content-between align-items-center">
|
||||
{% include "generic/partials/exams/exam_status.html#exam-active" %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-body p-2">
|
||||
@@ -86,35 +90,35 @@
|
||||
Supervisor visible: <strong>{{ exam.results_supervisor_visible }}</strong>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-header p-2">
|
||||
<a class="d-flex justify-content-between align-items-center" data-bs-toggle="collapse" data-bs-target="#open-access-bulk" role="button" aria-expanded="false" aria-controls="open-access-bulk">
|
||||
<span>Open access (questions)</span>
|
||||
<small class="text-muted">Expand to change selected questions open access status</small>
|
||||
</a>
|
||||
</div>
|
||||
<div class="card-body p-2">
|
||||
<div class="collapse" id="open-access-bulk">
|
||||
<form hx-post="{% url 'generic:generic_exam_set_open_access' %}" hx-target="#action-result" hx-swap="innerHTML" class="row g-2 align-items-center">
|
||||
<input type="hidden" name="type" value="sbas" />
|
||||
<input type="hidden" name="exam_id" value="{{ exam.pk }}" />
|
||||
<div class="col-12 col-md-8 small text-muted">Select questions on the list above (checkboxes) then click one of the actions below.</div>
|
||||
<div class="col-12 col-md-4 d-flex gap-2 justify-content-md-end">
|
||||
<button class="btn btn-sm btn-outline-success" type="submit" name="set_open_access" value="true" hx-include="input[name='selection']:checked">Set Open Access = True</button>
|
||||
<button class="btn btn-sm btn-outline-danger" type="submit" name="set_open_access" value="false" hx-include="input[name='selection']:checked">Set Open Access = False</button>
|
||||
<button class="btn btn-sm btn-secondary" type="button" data-bs-toggle="collapse" data-bs-target="#open-access-bulk">Close</button>
|
||||
</div>
|
||||
</form>
|
||||
<div id="action-result" class="mt-2"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-3">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="card-header p-2">
|
||||
<a class="d-flex justify-content-between align-items-center" data-bs-toggle="collapse" href="#open-access-bulk" role="button" aria-expanded="false" aria-controls="open-access-bulk">
|
||||
<span>Open access (bulk)</span>
|
||||
<small class="text-muted">Expand to change selected questions</small>
|
||||
</a>
|
||||
</div>
|
||||
<div class="collapse" id="open-access-bulk">
|
||||
<div class="card-body">
|
||||
<form hx-post="{% url 'generic:generic_exam_set_open_access' %}" hx-target="#action-result" hx-swap="innerHTML" class="row g-2 align-items-center">
|
||||
<input type="hidden" name="type" value="sbas" />
|
||||
<input type="hidden" name="exam_id" value="{{ exam.pk }}" />
|
||||
<div class="col-12 col-md-8 small text-muted">Select questions on the list above (checkboxes) then click one of the actions below.</div>
|
||||
<div class="col-12 col-md-4 d-flex gap-2 justify-content-md-end">
|
||||
<button class="btn btn-sm btn-outline-success" type="submit" name="set_open_access" value="true" hx-include="input[name='selection']:checked">Set Open Access = True</button>
|
||||
<button class="btn btn-sm btn-outline-danger" type="submit" name="set_open_access" value="false" hx-include="input[name='selection']:checked">Set Open Access = False</button>
|
||||
<button class="btn btn-sm btn-secondary" type="button" data-bs-toggle="collapse" data-bs-target="#open-access-bulk">Close</button>
|
||||
</div>
|
||||
</form>
|
||||
<div id="action-result" class="mt-2"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,30 +1,48 @@
|
||||
{% load partials %}
|
||||
|
||||
{% partialdef publish-results %}
|
||||
<div id="publish-results-status" >
|
||||
Publish results: <span>{{exam.publish_results}}</span>
|
||||
<button
|
||||
hx-post="{% url exam.get_app_name|add:':exam_toggle_results_published' exam.pk %}"
|
||||
hx-swap="outerHTML"
|
||||
hx-target="#publish-results-status"
|
||||
class="btn btn-sm btn-outline-primary reduce-opacity"
|
||||
>
|
||||
{% if exam.publish_results %}Unpublish Results{% else %}Publish Results{% endif %}
|
||||
</button>
|
||||
</div>
|
||||
<div id="publish-results-status" class="d-flex align-items-center gap-2">
|
||||
<div class="me-2 small text-muted">Publish results</div>
|
||||
<div>
|
||||
{% if exam.publish_results %}
|
||||
<span class="badge bg-success">Published</span>
|
||||
{% else %}
|
||||
<span class="badge bg-secondary">Unpublished</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="ms-auto">
|
||||
<button
|
||||
hx-post="{% url exam.get_app_name|add:':exam_toggle_results_published' exam.pk %}"
|
||||
hx-swap="outerHTML"
|
||||
hx-target="#publish-results-status"
|
||||
class="btn btn-sm btn-outline-primary"
|
||||
>
|
||||
{% if exam.publish_results %}Unpublish{% else %}Publish{% endif %}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
{% endpartialdef publish-results %}
|
||||
|
||||
|
||||
{% partialdef exam-active %}
|
||||
<div id="exam-active-status">
|
||||
Exam active: <span>{{exam.active}}</span>
|
||||
<button
|
||||
hx-post="{% url exam.get_app_name|add:':exam_toggle_active' exam.pk %}"
|
||||
hx-swap="outerHTML"
|
||||
hx-target="#exam-active-status"
|
||||
class="btn btn-sm btn-outline-primary reduce-opacity"
|
||||
>
|
||||
{% if exam.active %}Deactivate Exam{% else %}Activate Exam{% endif %}
|
||||
</button>
|
||||
</div>
|
||||
<div id="exam-active-status" class="d-flex align-items-center gap-2">
|
||||
<div class="me-2 small text-muted">Exam active</div>
|
||||
<div>
|
||||
{% if exam.active %}
|
||||
<span class="badge bg-success">Active</span>
|
||||
{% else %}
|
||||
<span class="badge bg-secondary">Inactive</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="ms-auto">
|
||||
<button
|
||||
hx-post="{% url exam.get_app_name|add:':exam_toggle_active' exam.pk %}"
|
||||
hx-swap="outerHTML"
|
||||
hx-target="#exam-active-status"
|
||||
class="btn btn-sm btn-outline-primary"
|
||||
>
|
||||
{% if exam.active %}Deactivate{% else %}Activate{% endif %}
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
{% endpartialdef exam-active %}
|
||||
Reference in New Issue
Block a user