i should break these commits up

This commit is contained in:
Ross
2024-04-08 14:16:13 +01:00
parent f13d1ba7e2
commit 98756baa37
25 changed files with 839 additions and 366 deletions
@@ -1,7 +1,7 @@
<span id="add-case-form">
<form hx-post="{% url 'atlas:add_case_to_collection' collection.id %}" hx-swap="outerHTML">
{% csrf_token %}
<label for="case">Select Case:</label>
<label for="case">Select Case to add:</label>
<select name="case" id="case">
{% for case in cases %}
<option value="{{ case.id }}">{{ case.title }}</option>
+2
View File
@@ -11,8 +11,10 @@
<a href="{% url 'atlas:case_view' %}?sort=-created_date">Cases</a> /
<a href="{% url 'atlas:series_view' %}">Series</a> /
<a href="{% url 'atlas:categories_list' %}">Categories</a> /
{% comment %} <a href="{% url 'atlas:resource_view' %}">Resources</a> / {% endcomment %}
<a href="{% url 'atlas:case_create' %}" title="Create a new atlas case">Create Case</a> /
<a href="{% url 'atlas:series_create' %}" title="Create a new image series">Create Series</a> /
<a href="{% url 'atlas:resource_view' %}" title="Resources">Resources</a> /
<a href="{% url 'atlas:user_uploads' %}" title="View unimported uploads">Uploads</a> /
<a href="{% url 'atlas:help' %}" title="View the atlas help pages">Help</a>
{% endif %}
+172 -164
View File
@@ -1,182 +1,190 @@
<div class="atlas {% if case.scrapped %}atlas-scrapped{% endif %}">
<div><a href="https://viewer.penracourses.org.uk/viewer/dicomjson?url=https://www.penracourses.org.uk{% url 'atlas:case_dicom_json' case.pk %}">View case in OHIF</a> <a target="_blank" href="https://viewer.penracourses.org.uk/viewer/dicomjson?url=https://www.penracourses.org.uk{% url 'atlas:case_dicom_json' case.pk %}">(new tab)</a></div>
<div><a href="/ohif/viewer/dicomjson?url=https://www.penracourses.org.uk{% url 'atlas:case_dicom_json' case.pk %}">View case in OHIF</a>
<div><a href="/ohif/viewer/dicomjson?url=https://www.penracourses.org.uk{% url 'atlas:case_dicom_json' case.pk %}">View case in OHIF</a> <a target="_blank" href="/ohif/viewer/dicomjson?url=https://www.penracourses.org.uk{% url 'atlas:case_dicom_json' case.pk %}">(new tab)</a>
<div class="date">
{{ case.created_date|date:"d/m/Y" }}
</div>
<div class="id">
ID: {{ case.id }}
</div>
<p class="pre-whitespace"><b>Title:</b> {{ case.title }}</p>
<div class="date">
{{ case.created_date|date:"d/m/Y" }}
</div>
<div class="id">
ID: {{ case.id }}
</div>
<p class="pre-whitespace"><b>Title:</b> {{ case.title }}</p>
<p class="pre-whitespace"><b>Description:</b> {{ case.description }}</p>
<p class="pre-whitespace"><b>Description:</b> {{ case.description }}</p>
<p>
<b>Presentation:</b>
<ul>
{% for presentation in case.presentation.all %}
<li>{{presentation.get_link}}</li>
{% endfor %}
</ul>
</p>
<p>
<b>Presentation:</b>
<ul>
{% for presentation in case.presentation.all %}
<li>{{presentation.get_link}}</li>
{% endfor %}
</ul>
</p>
<p class="pre-whitespace"><b>History:</b> {{ case.history }}</p>
<p class="pre-whitespace"><b>History:</b> {{ case.history }}</p>
<p class="pre-whitespace"><b>Discussion:</b> {{ case.discussion }}</p>
<p class="pre-whitespace"><b>Discussion:</b> {{ case.discussion }}</p>
<p class="pre-whitespace"><b>Report:</b> {{ case.report }}</p>
<div class="pre-whitespace multi-image-block"><b>Series:</b>
<form>
{% for series in case.series.all %}
<span class="series-block">
<span>
<span class="series-block-series-number">Series {{ forloop.counter }}:</span><br>
<a href="{% url 'atlas:series_detail' pk=series.pk %}">
{{series.get_block}}
</a>
<br>
<input type="checkbox" name="series-ids" value="{{series.pk}}">
<span class="series-block-popup-link">
<a href="#"
onclick="return window.create_popup_window('/atlas/series/{{series.pk}}', 'Series')">Popup</a>
</span>
</span>
</span>
<p class="pre-whitespace"><b>Report:</b> {{ case.report }}</p>
<p class="pre-whitespace"><b>Resource</b><br/>{% for caseresource in case.caseresource_set.all %}
<a href='{% url "atlas:resource_detail" caseresource.resource.pk %}'>{{caseresource.resource.name}}</a>
{% if caseresource.pre_review %}
<span title="This resource will be avalible to review when or taking a case">(pre)</span>
{% else %}
<span title="This resource will only be available when reviewing a completed case">(post)</span>
{% endif %}
{% endfor %}
</form>
<span>
<a href="{% url 'atlas:series_id_create' pk=case.pk %}">Add new series</a><br />
<a href="{% url 'atlas:user_uploads_case' case_id=case.pk %}">Import new uploads</a><br />
<details>
<summary>+</summary>
<button hx-get="{% url 'atlas:case_order_dicom' pk=case.pk %}"
title="order dicom by slice location"
hx-target="this"
hx-swap="outerHTML"
hx-confirm="This will reorder all case series based upon slice location"
>
Order all series dicoms by slice location
</button>
<button hx-post="{% url 'atlas:combine_series' %}"
title="merge series"
hx-include="[name='series-ids']"
hx-target="#series-merge-results"
hx-swap="innerHTML"
hx-confirm="This will merge all selected series into one"
>
Merge selected series
</button>
<button hx-post="{% url 'atlas:use_dates_as_descriptions' case.pk %}"
title="merge series"
hx-include="[name='series-ids']"
hx-target="#series-merge-results"
hx-swap="innerHTML"
hx-confirm="This will use the dicom date as the series description"
>
Use dates as description
</button>
<br/>
<span id="series-merge-results"></span>
</details>
</p>
</span>
</div>
<div class="pre-whitespace multi-image-block"><b>Series:</b>
<form>
{% for series in case.series.all %}
<span class="series-block">
<span>
<span class="series-block-series-number">Series {{ forloop.counter }}:</span><br>
<a href="{% url 'atlas:series_detail' pk=series.pk %}">
{{series.get_block}}
</a>
<br>
<input type="checkbox" name="series-ids" value="{{series.pk}}">
<span class="series-block-popup-link">
<a href="#"
onclick="return window.create_popup_window('/atlas/series/{{series.pk}}', 'Series')">Popup</a>
</span>
</span>
</span>
{% endfor %}
</form>
<span>
<a href="{% url 'atlas:series_id_create' pk=case.pk %}">Add new series</a><br />
<a href="{% url 'atlas:user_uploads_case' case_id=case.pk %}">Import new uploads</a><br />
<details>
<summary>+</summary>
<button hx-get="{% url 'atlas:case_order_dicom' pk=case.pk %}"
title="order dicom by slice location"
hx-target="this"
hx-swap="outerHTML"
hx-confirm="This will reorder all case series based upon slice location"
>
Order all series dicoms by slice location
</button>
<button hx-post="{% url 'atlas:combine_series' %}"
title="merge series"
hx-include="[name='series-ids']"
hx-target="#series-merge-results"
hx-swap="innerHTML"
hx-confirm="This will merge all selected series into one"
>
Merge selected series
</button>
<button hx-post="{% url 'atlas:use_dates_as_descriptions' case.pk %}"
title="merge series"
hx-include="[name='series-ids']"
hx-target="#series-merge-results"
hx-swap="innerHTML"
hx-confirm="This will use the dicom date as the series description"
>
Use dates as description
</button>
<br/>
<span id="series-merge-results"></span>
</details>
</span>
</div>
{% comment %} <p><b>Scrapped:</b> {{ case.scrapped }} <a
href="{% url 'atlas:case_scrap' pk=case.pk %}">(toggle)</a> {% endcomment %}
<div class="atlas-answer">
<p class="pre-whitespace">
Condition:
<ul>
{% for con in case.condition.all %}
<li>{{con.get_link}}</li>
{% endfor %}
</ul>
<div>
<details>
<summary><b>Findings</b></summary>
{% if case.series.all %}
{% for series in case.series.all %}
{% for finding in series.findings.all %}
<div class="finding-box">
<span>
<a href="{{series.get_absolute_url}}">Series {{series.pk}}</a>: {{series.get_examination_full}} |&nbsp;
</span>
{% if finding.findings.all %}
<div class="atlas-answer">
<p class="pre-whitespace">
Condition:
<ul>
{% for con in case.condition.all %}
<li>{{con.get_link}}</li>
{% endfor %}
</ul>
<div>
<details>
<summary><b>Findings</b></summary>
{% if case.series.all %}
{% for series in case.series.all %}
{% for finding in series.findings.all %}
<div class="finding-box">
<span>
Findings: {% for f in finding.findings.all %}
{{f.get_link}},&nbsp;
{% endfor %}
<a href="{{series.get_absolute_url}}">Series {{series.pk}}</a>: {{series.get_examination_full}} |&nbsp;
</span>
{% endif %}
{% if finding.structures.all %}
<span>
Structure: {% for s in finding.structures.all %}
{{s.get_link}},&nbsp;
{% endfor %}
</span>
{% endif %}
{% if finding.description %}
<span>
Description: {{finding.description}}
</span>
{% endif %}
</div>
{% if finding.findings.all %}
<span>
Findings: {% for f in finding.findings.all %}
{{f.get_link}},&nbsp;
{% endfor %}
</span>
{% endif %}
{% if finding.structures.all %}
<span>
Structure: {% for s in finding.structures.all %}
{{s.get_link}},&nbsp;
{% endfor %}
</span>
{% endif %}
{% if finding.description %}
<span>
Description: {{finding.description}}
</span>
{% endif %}
</div>
{% endfor %}
{% endfor %}
{% endfor %}
{% else %}
No series associated with case.
{% endif %}
</details>
</div>
<div>
<details open>
<summary><b>Differentials</b></summary>
<ul>
{% for diff in case.differentialcase.all %}
<li>{{diff.condition.get_link}} - {{diff.text}}</li>
{% endfor %}
</ul>
</details>
</div>
</p>
{% else %}
No series associated with case.
{% endif %}
</details>
</div>
<div>
<details open>
<summary><b>Differentials</b></summary>
<ul>
{% for diff in case.differentialcase.all %}
<li>{{diff.condition.get_link}} - {{diff.text}}</li>
{% endfor %}
</ul>
</details>
</div>
</p>
</div>
Subspecialty:
<ul>
{% for sub in case.subspecialty.all %}
<li>{{sub.get_link}}</li>
{% endfor %}
</ul>
<b>Pathological Process:</b>
<ul>
{% for p in case.pathological_process.all %}
<li>{{p.get_link}}</li>
{% endfor %}
</ul>
<b>Diagnostic certainty:</b> {{case.get_diagnostic_certainty_display}}<br />
<b>Collections:</b>
<button
hx-get="{% url 'atlas:case_collection_form' case.pk %}"
hx-target="#collection-form">
Add collection</button>
<div id="collection-form"></div>
<ul>
{% for collection in case.casecollection_set.all %}
<li><a href="{% url 'atlas:collection_detail' pk=collection.pk %}">{{collection.name}}</a></li>
{% endfor %}
</ul>
</p>
<p class="pre-whitespace"><b>Previous case:</b> {{ case.previous_case.get_link }}</p>
<p class="pre-whitespace"><b>Next case:</b> {{ case.next_case.get_link }}</p>
<div>
{% include 'question_notes.html' %}
</div>
Subspecialty:
<ul>
{% for sub in case.subspecialty.all %}
<li>{{sub.get_link}}</li>
{% endfor %}
</ul>
<b>Pathological Process:</b>
<ul>
{% for p in case.pathological_process.all %}
<li>{{p.get_link}}</li>
{% endfor %}
</ul>
<b>Diagnostic certainty:</b> {{case.get_diagnostic_certainty_display}}<br />
<b>Collections:</b>
<button
hx-get="{% url 'atlas:case_collection_form' case.pk %}"
hx-target="#collection-form">
Add collection</button>
<div id="collection-form"></div>
<ul>
{% for collection in case.casecollection_set.all %}
<li><a href="{% url 'atlas:collection_detail' pk=collection.pk %}">{{collection.name}}</a></li>
{% endfor %}
</ul>
</p>
<p class="pre-whitespace"><b>Previous case:</b> {{ case.previous_case.get_link }}</p>
<p class="pre-whitespace"><b>Next case:</b> {{ case.next_case.get_link }}</p>
<div>
{% include 'question_notes.html' %}
</div>
<p><b>Checked by:</b> {% for verified in case.verified.all %} <a
href="{% url 'atlas:verified_detail' pk=verified.pk %}">{{verified}}</a>, {% endfor %}</p>
<p><b>Checked by:</b> {% for verified in case.verified.all %} <a
href="{% url 'atlas:verified_detail' pk=verified.pk %}">{{verified}}</a>, {% endfor %}</p>
<p><b>Author(s):</b> {% for author in case.author.all %} <a
href="{% url 'atlas:author_detail' pk=author.pk %}">{{author}}</a>, {% endfor %}</p>
<p><b>Author(s):</b> {% for author in case.author.all %} <a
href="{% url 'atlas:author_detail' pk=author.pk %}">{{author}}</a>, {% endfor %}</p>
+39 -29
View File
@@ -29,18 +29,18 @@
function add_series_input_form() {
var form_idx = $('#id_Case_series-TOTAL_FORMS').val();
$('#series_formset').append($('#empty_series_form').html().replace(/__prefix__/g, form_idx));
$('#series_formset ol').append($('#empty_series_form').html().replace(/__prefix__/g, form_idx));
$('#id_Case_series-TOTAL_FORMS').val(parseInt(form_idx) + 1);
}
function add_differential_input_form() {
var form_idx = $('#id_differentialcase-TOTAL_FORMS').val();
$('#casedifferential_formset').append($('#empty_casedifferential_form').html().replace(/__prefix__/g, form_idx));
$('#casedifferential_formset ol').append($('#empty_casedifferential_form').html().replace(/__prefix__/g, form_idx));
$('#id_differentialcase-TOTAL_FORMS').val(parseInt(form_idx) + 1);
}
function add_resource_input_form() {
var form_idx = $('#id_resourcecase-TOTAL_FORMS').val();
$('#caseresource_formset').append($('#empty_caseresource_form').html().replace(/__prefix__/g, form_idx));
$('#caseresource_formset ol').append($('#empty_caseresource_form').html().replace(/__prefix__/g, form_idx));
$('#id_resourcecase-TOTAL_FORMS').val(parseInt(form_idx) + 1);
}
@@ -60,72 +60,82 @@
{% endif %}
<h2>Submit Case</h2>
Use this form to create a atlas case. Existing associated image sets can be added using this form.
<details>
<summary>Instructions</summary>
<p>Use this form to create a atlas case</p>
<p>Existing associated image sets can be added using this form.</p>
<p>The more information you provide, the more useful the case will be to others.</p>
</details>
{% if form.collection %}
<div class="alert alert-info" role="alert">Creating a case in the collection: <a href="{% url 'atlas:collection_detail' pk=form.collection.pk %}">{{form.collection.name}}</a></div>
{% endif %}
<form action="" method="post" enctype="multipart/form-data" id="atlas-form">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
{{ form }}
<h3>Series:</h3>
Add image sets here. These can only be added once created (they can also be added to cases on creation).
<input type="button" value="Add More Series" id="add_more_series">
<div id="series_formset">
<div id="series_formset" class="list_formset">
<ol>
{% for form in series_formset %}
<ul class="no-error series-formset">
<li class="no-error series-formset">
{{form.non_field_errors}}
{{form.errors}}
{{ form.as_ul }}
</ul>
{{ form }}
</li>
{% endfor %}
</ol>
</div>
{{ series_formset.management_form }}
<h3>Differential:</h3>
Add differential here.
<input type="button" value="Add Another Differential" id="add_more_differential">
<div id="casedifferential_formset">
<div id="casedifferential_formset" class="list_formset">
<ol>
{% for form in casedifferential_formset %}
<ul class="no-error casedifferential_formset">
<li class="no-error casedifferential_formset">
{{form.non_field_errors}}
{{form.errors}}
{{ form.as_ul }}
</ul>
{{ form }}
</li>
{% endfor %}
</ol>
</div>
{{ casedifferential_formset.management_form }}
<h3>Resource:</h3>
Add resource here.
Add resource here. Resource can be anything that is useful for the case (videos, pdf, etc). This can either be avalaible before attempting the case (such a for a pre reading list) or after.
<input type="button" value="Add Another Resource" id="add_more_resource">
<div id="caseresource_formset">
<div id="caseresource_formset" class="list_formset">
<ol>
{% for form in caseresource_formset %}
<ul class="no-error caseresource_formset">
<li class="no-error caseresource_formset">
{{form.non_field_errors}}
{{form.errors}}
{{ form.as_ul }}
</ul>
{{ form }}
</li>
{% endfor %}
</ol>
</div>
{{ caseresource_formset.management_form }}
<br/>
<input type="submit" class="submit-button" value="Submit" name="submit">
</form>
<div id="empty_series_form" style="display:none">
<ul class='no_error series-formset'>
{{ series_formset.empty_form.as_ul }}
</ul>
<li class='no_error series-formset'>
{{ series_formset.empty_form }}
</li>
</div>
<div id="empty_casedifferential_form" style="display:none">
<ul class='no_error casedifferential_formset'>
{{ casedifferential_formset.empty_form.as_ul }}
</ul>
<li class='no_error casedifferential_formset'>
{{ casedifferential_formset.empty_form }}
</li>
</div>
<div id="empty_caseresource_form" style="display:none">
<ul class='no_error caseresource_formset'>
{{ caseresource_formset.empty_form.as_ul }}
</ul>
<li class='no_error caseresource_formset'>
{{ caseresource_formset.empty_form }}
</li>
</div>
{% endblock %}
+21 -12
View File
@@ -1,4 +1,4 @@
{% extends "atlas/base.html" %}
{% extends "atlas/exams.html" %}
<!-- {% load static from static %} -->
{% block css %}
@@ -10,7 +10,7 @@
<script type="text/javascript">
function add_case_input_form() {
var form_idx = $('#id_casedetail_set-TOTAL_FORMS').val();
$('#case_formset').append($('#empty_case_form').html().replace(/__prefix__/g, form_idx));
$('#case_formset ol').append($('#empty_case_form').html().replace(/__prefix__/g, form_idx));
$('#id_casedetail_set-TOTAL_FORMS').val(parseInt(form_idx) + 1);
}
@@ -23,34 +23,43 @@
<!-- {{ form.media }} -->
{% endblock %}
{% block content %}
{% if collection %}
<h2>Update Collection</h2>
{% else %}
<h2>Create Collection</h2>
Use this form to create a collection of cases
{% endif %}
<form action="" method="post" enctype="multipart/form-data" id="atlas-form">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
{{ form }}
<h3>Cases:</h3>
Add cases here. These can only be added once created (they can also be added to cases on creation). Click and drag to change order.
<input type="button" value="Add More Cases" id="add_more_case">
<input type=button id="case-order-button" title="click and drag to update case order" value="Update case order" />
<div id="case_formset" class="sortable">
<div id="case_formset" class="sortable list_formset">
<ol>
{% for form in case_formset %}
<ul class="no-error case-formset">
<li class="no-error case-formset">
{{form.non_field_errors}}
{{form.errors}}
{{ form.as_ul }}
</ul>
{{ form }}
</li>
{% endfor %}
</ol>
</div>
{{ case_formset.management_form }}
<input type="submit" class="submit-button" value="Submit" name="submit">
</form>
<div id="empty_case_form" style="display:none">
<ul class='no_error case-formset'>
{{ case_formset.empty_form.as_ul }}
</ul>
<li class='no_error case-formset'>
{{ case_formset.empty_form }}
</li>
</div>
<script>
$(document).ready(() => {
@@ -16,6 +16,20 @@
</h2>
{% if not completed %}
<h5>Resources</h4>
<ul>
{% for caseresource in resources %}
<li>
{{caseresource.resource.get_display}}
</li>
{% endfor %}
</ul>
{% endif %}
{% if show_description and case.description %}
<div>
Description: {{case.description}}
@@ -28,14 +42,18 @@
</div>
{% endif %}
{% if collection.show_ohif_viewer_link %}
{% if collection.show_ohif_viewer %}
<div>
<a href="https://viewer.penracourses.org.uk/viewer/dicomjson?url=https://www.penracourses.org.uk{% url 'atlas:case_dicom_json' case.pk %}">View case in OHIF</a>
<iframe id="viewer" style="width: 100%; height: 100%; border: none; padding: 0px;" src="/ohif/viewer/dicomjson?url=https://www.penracourses.org.uk{% url 'atlas:case_dicom_json' case.pk %}"></iframe>
</div>
{% endif %}
{% if collection.show_ohif_viewer_link %}
<div>
<a href="/ohif/viewer/dicomjson?url=https://www.penracourses.org.uk{% url 'atlas:case_dicom_json' case.pk %}">View case in OHIF</a>
</div>
{% endif %}
{% if collection.show_built_in_viewer %}
<div class="pre-whitespace multi-image-block">
@@ -89,8 +107,19 @@
</p>
{% endif %}
{% if collection.publish_results or cid_user_exam.completed %}
<a href="{% url 'atlas:add_self_review' cid_user_exam.id case.id %}"><button>Add self review</button></a>
{% if completed %}
<h5>Resources</h4>
<ul>
{% for caseresource in resources %}
<li>
{{caseresource.resource.get_display}}
</li>
{% endfor %}
</ul>
<p>
<a href="{% url 'atlas:add_self_review' cid_user_exam.id case.id %}"><button>Add self review</button></a>
</p>
{% endif %}
<form method="POST" class="post-form">{% csrf_token %}
@@ -133,6 +162,11 @@
{% endif %}
{% endif %}
{% if collection.self_review and not completed %}
<button type="submit" name="complete_case" class="save btn btn-default">Finish Case</button>
{% endif %}
<br />
<button type="submit" name="finish" class="save btn btn-default">Overview</button>
<button type="submit" id="goto-button" value="test" name="goto" class="hide">goto</button>
+16 -11
View File
@@ -1,14 +1,14 @@
{% extends 'atlas/exams.html' %}
{% block content %}
<h2>{{collection.name}}</h2>
<h2>{{collection.name}}</h2>
{% include 'exam_notes.html' %}
{% include 'exam_notes.html' %}
<div>
Exam mode: {{collection.exam_mode}}<br />
Publish results: {{collection.publish_results}}<br />
Active: {{collection.active}}<br />
Collection Type: {{collection.collection_type}}<br />
Collection Type: {{collection.get_collection_type_display}}<br />
Self review: {{collection.self_review}}<br />
</div>
<h3>Cases</h3>
@@ -21,18 +21,23 @@
{% endfor %}
</ol>
<p>This collection will be available to view/take <a href='{{collection.get_take_url}}'>here</a>
<p>View as a viva collection <a href='{% url "atlas:collection_viva" collection.pk %}'>here</a>
{% if collection.collection_type == "VIV" %}
<p>View as a viva collection <a href='{% url "atlas:collection_viva" collection.pk %}'>here</a>
{% else %}
<p>This collection will be available to view/take <a href='{{collection.get_take_url}}'>here</a> (when active)
{% endif %}
{% if can_edit %}
<p><button id='button-edit-order' title='click and drag questions to change order' data-posturl="{% url 'atlas:exam_json_edit' pk=collection.pk %}">Edit case order / Delete cases</button></p>
<p><button id='button-add-case'
title='click to add a case to this collection'
hx-get="{% url 'atlas:add_case_to_collection' collection.pk %}" hx-swap="innerHTML" hx-target="#case-list">
Add case
<p><button id='button-add-case'
title='click to add a case to this collection'
hx-get="{% url 'atlas:add_case_to_collection' collection.pk %}" hx-swap="innerHTML" hx-target="#case-list">
Add case
</button>
<div id='case-list'></div>
</p>
<div id='case-list'></div>
</p>
{% endif %}
{% include 'exam_overview_js.html' %}
{% endblock %}
@@ -27,14 +27,23 @@
{% url 'atlas:collection_case_view_take_user' pk=collection.id case_number=forloop.counter0 %}
{% endif %}
">
Case: {{forloop.counter}}{% if self_review %} <span class="self-review-complete" title="You have reviewed this case."> <i class="bi-card-checklist"></i></span>{% endif %}
Case: {{forloop.counter}}
{% if answer.completed or cid_user_exam.completed %}
<span title="You have completed this case"><i class="bi bi-check-square-fill"></i>
</span>
{% endif %}
{% if self_review %} <span class="self-review-complete" title="You have reviewed this case."> <i class="bi-card-checklist"></i></span>{% endif %}
</a>
<br/>
{% if not collection.review_only %}
{% if not answer %}
No answer
{% else %}
<details><summary>Answered</summary>
{{answer.answer}}
</details>
{% endif %}
{% endif %}
</span>
@@ -1,17 +0,0 @@
{% extends "atlas/exams.html" %}
{% block js %}
{{ form.media }}
{% endblock %}
{% block content %}
<h2>Update Exam</h2>
<form action="" method="post">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<input type="submit" value="Submit">
</form>
{% endblock %}
+5 -1
View File
@@ -3,7 +3,11 @@
{% block navigation %}
{{block.super}}
{% include "atlas/collection_headers.html" %}
{% if collection %}
{% include "atlas/collection_headers.html" %}
{% endif %}
{% comment %} Collection: {{collection.name}}-> <a href="{% url 'atlas:collection_detail' pk=exam.pk %}">Overview</a> /
<a href="{% url 'atlas:collection_mark_overview' exam.pk %}">Mark</a> /
<a href="{% url 'atlas:collection_scores_cid' exam.pk %}">Scores</a> /
+32
View File
@@ -0,0 +1,32 @@
{% extends 'atlas/base.html' %}
{% block content %}
{% if resource %}
{% include "atlas/resource_link_header.html" %}
{% endif %}
{{resource}}
Name: {{resource.name}}<br>
Description: {{resource.description}}<br>
URL: {{resource.url}}<br>
file: {{resource.file}}<br>
author: {{resource.get_authors}}<br>
{{resource.case}}
{% if resource.case_set.all %}
<h3>Cases</h3>
This resource is used in the following cases:
<ul>
{% for case in resource.case_set.all %}
<li><a href="{% url 'atlas:case_detail' case.id %}">{{case.title}}</a></li>
{% endfor %}
</ul>
{% else %}
<p>This resource is not used in any cases.</p>
{% endif %}
{% endblock %}
+26
View File
@@ -0,0 +1,26 @@
{% extends "atlas/base.html" %}
<!-- {% load static from static %} -->
{% load crispy_forms_tags %}
{% block css %}
{% endblock %}
{% block js %}
<!--<script type="text/javascript" src="/admin/jsi18n/"></script>-->
{{form.media}}
<script type="text/javascript">
</script>
<!-- {{ form.media }} -->
{% endblock %}
{% block content %}
<h2>Edit Resource {{object.name}}</h2>
<form action="" method="post" enctype="multipart/form-data" id="resource-form">
{% csrf_token %}
{{ form|crispy }}
<input type="submit" class="submit-button" value="Submit" name="submit">
</form>
{% endblock %}
@@ -0,0 +1,10 @@
<div class="floating-header">
<a href="{% url 'atlas:resource_update' pk=resource.pk %}" title="Edit the resource">Edit</a>
<a href="{% url 'atlas:resource_delete' pk=resource.pk %}" title="Delete the resource">Delete</a>
{% if request.user.is_superuser %}
<a href="{% url 'admin:atlas_resource_change' resource.id %}" title="Edit the resource using the admin interface">Admin Edit</a>
{% endif %}
</div>
+21
View File
@@ -0,0 +1,21 @@
{% extends 'atlas/base.html' %}
{% block content %}
<a href="{% url 'atlas:resource_create' %}">Create a new resource</a>
<h2>Resources</h2>
<ul id="resource-list">
{% for resource in object_list %}
<li class="">
<a href="{% url 'atlas:resource_detail' resource.pk %}">{{resource}}</a>
</li>
{% endfor %}
</ul>
{% endblock %}
{% block js %}
<style>
td, th { padding-left: 10px }
</style>
{% endblock %}
+1 -1
View File
@@ -12,7 +12,7 @@
{% csrf_token %}
{{ form.non_field_errors }}
{{ form.as_p }}
{{ form }}
{% comment %} <div class="fieldWrapper">
{{ form.content_type.errors }}
{{ form.content_type }}