This commit is contained in:
Ross
2025-12-08 10:35:58 +00:00
parent bf895e516e
commit 4e47083fcd
@@ -2,106 +2,148 @@
{% block content %} {% block content %}
<h1> <div class="container py-4">
{{ object.name }} <div class="row align-items-start mb-3">
{% if object.date %} <div class="col">
[{{object.date}}] <h1 class="h3 mb-0">{{ object.name }} {% if object.date %}<small class="text-muted">[{{ object.date }}]</small>{% endif %}</h1>
{% endif %} <div class="small text-muted mt-1">Authors: {{ object.get_authors }}</div>
</h1> </div>
<div class="col-auto">
<div class="btn-group" role="group" aria-label="collection-actions">
<a class="btn btn-outline-primary btn-sm" href="{% url 'generic:examcollection_edit' object.pk %}"><i class="bi bi-pencil"></i> Edit</a>
<a class="btn btn-outline-secondary btn-sm" href="{% url 'generic:examcollection_clone' object.pk %}"><i class="bi bi-files"></i> Clone</a>
<a class="btn btn-outline-danger btn-sm" href="{% url 'generic:examcollection_delete' object.pk %}"><i class="bi bi-trash"></i> Delete</a>
</div>
</div>
</div>
<p> <p class="lead small text-muted">This collection contains the following exams</p>
<a href="{% url 'generic:examcollection_edit' object.pk %}">Edit</a>
<a href="{% url 'generic:examcollection_clone' object.pk %}">Clone</a>
<a href="{% url 'generic:examcollection_delete' object.pk %}">Delete</a>
</p>
<div>Authors: {{ object.get_authors }}</div>
<p>This collection contains the following exams<p>
{% if object.anatomy_exams.all %} {% if object.anatomy_exams.all %}
<h2>Anatomy Exams:</h2> <div class="card mb-3">
{% with exams=object.anatomy_exams.all app_name="anatomy" %} <div class="card-header d-flex justify-content-between align-items-center">
{% include "exam_list.html#exam-list" %} <strong>Anatomy Exams</strong>
{% endwith %} <div class="btn-group">
<a class="btn btn-sm btn-outline-secondary" href="{% url 'anatomy:exam_list_collection' object.pk %}">View exam list</a>
<a href="{% url 'anatomy:exam_list_collection' object.pk %}">View exam list</a> <button class="btn btn-sm btn-outline-primary" hx-get="{% url 'generic:exam_collection_add_marker' object.pk 'anatomy' %}" hx-target=".add-marker" hx-swap="innerHTML">Add marker</button>
</div>
</div>
<div class="add-marker"> <div class="card-body p-2">
<button class="btn-sm add-marker-button" hx-get="{% url 'generic:exam_collection_add_marker' object.pk 'anatomy' %}" hx-target=".add-marker" hx-swap="innerHTML">Add marker to Anatomy Exams</button> {% with exams=object.anatomy_exams.all app_name="anatomy" %}
{% include "exam_list.html#exam-list" %}
{% endwith %}
</div>
<div class="card-footer add-marker small"></div>
</div> </div>
{% endif %} {% endif %}
{% if object.longs_exams.all %} {% if object.longs_exams.all %}
<h2>Longs Exams:</h2> <div class="card mb-3">
{% with exams=object.longs_exams.all app_name="longs" %} <div class="card-header d-flex justify-content-between align-items-center">
{% include "exam_list.html#exam-list" %} <strong>Longs Exams</strong>
{% endwith %} <div class="btn-group">
<a href="{% url 'longs:exam_list_collection' object.pk %}">View exam list</a> <a class="btn btn-sm btn-outline-secondary" href="{% url 'longs:exam_list_collection' object.pk %}">View exam list</a>
<div class="add-marker"> <button class="btn btn-sm btn-outline-primary" hx-get="{% url 'generic:exam_collection_add_marker' object.pk 'longs' %}" hx-target=".add-marker" hx-swap="innerHTML">Add marker</button>
<button class="btn-sm add-marker-button" hx-get="{% url 'generic:exam_collection_add_marker' object.pk 'longs' %}" hx-target=".add-marker" hx-swap="innerHTML">Add marker to Longs Exams</button> </div>
</div>
<div class="card-body p-2">
{% with exams=object.longs_exams.all app_name="longs" %}
{% include "exam_list.html#exam-list" %}
{% endwith %}
</div>
<div class="card-footer add-marker small"></div>
</div> </div>
{% endif %} {% endif %}
{% if object.rapids_exams.all %} {% if object.rapids_exams.all %}
<h2>Rapids Exams:</h2> <div class="card mb-3">
{% with exams=object.rapids_exams.all app_name="rapids" %} <div class="card-header d-flex justify-content-between align-items-center">
{% include "exam_list.html#exam-list" %} <strong>Rapids Exams</strong>
{% endwith %} <div class="btn-group">
<a href="{% url 'rapids:exam_list_collection' object.pk %}">View exam list</a> <a class="btn btn-sm btn-outline-secondary" href="{% url 'rapids:exam_list_collection' object.pk %}">View exam list</a>
<div class="add-marker"> <button class="btn btn-sm btn-outline-primary" hx-get="{% url 'generic:exam_collection_add_marker' object.pk 'rapids' %}" hx-target=".add-marker" hx-swap="innerHTML">Add marker</button>
<button class="btn-sm add-marker-button" hx-get="{% url 'generic:exam_collection_add_marker' object.pk 'rapids' %}" hx-target=".add-marker" hx-swap="innerHTML">Add marker to Rapids Exams</button> </div>
</div>
<div class="card-body p-2">
{% with exams=object.rapids_exams.all app_name="rapids" %}
{% include "exam_list.html#exam-list" %}
{% endwith %}
</div>
<div class="card-footer add-marker small"></div>
</div> </div>
{% endif %} {% endif %}
{% if object.shorts_exams.all %} {% if object.shorts_exams.all %}
<h2>Shorts Exams:</h2> <div class="card mb-3">
{% with exams=object.shorts_exams.all app_name="shorts" %} <div class="card-header d-flex justify-content-between align-items-center">
{% include "exam_list.html#exam-list" %} <strong>Shorts Exams</strong>
{% endwith %} <div class="btn-group">
<a href="{% url 'shorts:exam_list_collection' object.pk %}">View exam list</a> <a class="btn btn-sm btn-outline-secondary" href="{% url 'shorts:exam_list_collection' object.pk %}">View exam list</a>
<div class="add-marker"> <button class="btn btn-sm btn-outline-primary" hx-get="{% url 'generic:exam_collection_add_marker' object.pk 'shorts' %}" hx-target=".add-marker" hx-swap="innerHTML">Add marker</button>
<button class="btn-sm add-marker-button" hx-get="{% url 'generic:exam_collection_add_marker' object.pk 'shorts' %}" hx-target=".add-marker" hx-swap="innerHTML">Add marker to Shorts Exams</button> </div>
</div>
<div class="card-body p-2">
{% with exams=object.shorts_exams.all app_name="shorts" %}
{% include "exam_list.html#exam-list" %}
{% endwith %}
</div>
<div class="card-footer add-marker small"></div>
</div> </div>
{% endif %} {% endif %}
{% if object.physics_exams.all %} {% if object.physics_exams.all %}
<h2>Physics Exams:</h2> <div class="card mb-3">
{% with exams=object.physics_exams.all app_name="physics" %} <div class="card-header d-flex justify-content-between align-items-center">
{% include "exam_list.html#exam-list" %} <strong>Physics Exams</strong>
{% endwith %} <a class="btn btn-sm btn-outline-secondary" href="{% url 'physics:exam_list_collection' object.pk %}">View exam list</a>
<a href="{% url 'physics:exam_list_collection' object.pk %}">View exam list</a> </div>
<div class="card-body p-2">
{% with exams=object.physics_exams.all app_name="physics" %}
{% include "exam_list.html#exam-list" %}
{% endwith %}
</div>
</div>
{% endif %} {% endif %}
{% if object.sbas_exams.all %} {% if object.sbas_exams.all %}
<h2>SBAs Exams:</h2> <div class="card mb-3">
{% with exams=object.sbas_exams.all app_name="sbas" %} <div class="card-header d-flex justify-content-between align-items-center">
{% include "exam_list.html#exam-list" %} <strong>SBAs Exams</strong>
{% endwith %} <a class="btn btn-sm btn-outline-secondary" href="{% url 'sbas:exam_list_collection' object.pk %}">View exam list</a>
<a href="{% url 'sbas:exam_list_collection' object.pk %}">View exam list</a> </div>
<div class="card-body p-2">
{% with exams=object.sbas_exams.all app_name="sbas" %}
{% include "exam_list.html#exam-list" %}
{% endwith %}
</div>
</div>
{% endif %} {% endif %}
<br/> <br/>
<div id="bulk-add-groups"> <div class="d-flex gap-2 mt-3">
<button class="btn-sm" hx-get="{% url 'generic:exam_collection_bulk_add_groups' object.pk %}" hx-target="#bulk-add-groups" hx-swap="innerHTML">Add groups to exams</button> <div id="bulk-add-groups">
</div> <button class="btn btn-sm btn-outline-secondary" hx-get="{% url 'generic:exam_collection_bulk_add_groups' object.pk %}" hx-target="#bulk-add-groups" hx-swap="innerHTML">Add groups to exams</button>
</div>
<div id="add-user"> <div id="add-user">
<button hx-get="{% url 'generic:exam_collection_add_author' object.pk %}" hx-target="#add-user" hx-swap="innerHTML">Add author to all exams</button> <button class="btn btn-sm btn-outline-secondary" hx-get="{% url 'generic:exam_collection_add_author' object.pk %}" hx-target="#add-user" hx-swap="innerHTML">Add author to all exams</button>
</div> </div>
</div>
{% include 'exam_overview_js.html' %} {% include 'exam_overview_js.html' %}
</div> {# .container end #}
{% endblock %} {% endblock %}
{% block css %} {% block css %}
<style> <style>
.add-marker-button { /* subtle visual tweaks for the new layout */
opacity: 0.5; .card-body .exam-list { margin: 0; }
} .card .card-footer.add-marker { min-height: 1.5rem; }
.card-header strong { font-weight: 600; }
</style> </style>
{% endblock %} {% endblock %}