diff --git a/atlas/models.py b/atlas/models.py index fc734e9a..03d63482 100644 --- a/atlas/models.py +++ b/atlas/models.py @@ -1443,6 +1443,13 @@ class CaseDetail(models.Model): def __str__(self) -> str: return f"{self.case} -> {self.collection}" + + def get_case_index(self): + """Returns the question index (number) in the collection (0 indexed)""" + case_details = list(self.collection.casedetail_set.all().order_by("sort_order")) + + return case_details.index(self) + def get_question_schema(self): return json.dumps(self.question_schema) diff --git a/atlas/templates/atlas/collection_case_displaysetup.html b/atlas/templates/atlas/collection_case_displaysetup.html index 88871f51..8283c7e4 100644 --- a/atlas/templates/atlas/collection_case_displaysetup.html +++ b/atlas/templates/atlas/collection_case_displaysetup.html @@ -30,7 +30,7 @@ document.getElementById('save-viewerstate').addEventListener('click', function() document.getElementById('viewerstate-save-response').innerHTML = "Viewer state could not be retrieved."; return; } - fetch("{% url 'atlas:collection_case_displaysetup' casedetail.collection.pk casedetail.case.pk %}", { + fetch({% if case_number %}"{% url 'atlas:collection_case_displaysetup' casedetail.collection.pk case_number=case_number %}"{% else %}"{% url 'atlas:collection_case_displaysetup_legacy' casedetail.collection.pk casedetail.case.pk %}"{% endif %}, { method: "POST", headers: { "Content-Type": "application/json", @@ -47,7 +47,7 @@ document.getElementById('save-viewerstate').addEventListener('click', function() }); }); document.getElementById('reset-viewerstate').addEventListener('click', function() { - fetch("{% url 'atlas:collection_case_displaysetup' casedetail.collection.pk casedetail.case.pk %}", { + fetch({% if case_number %}"{% url 'atlas:collection_case_displaysetup' casedetail.collection.pk case_number=case_number %}"{% else %}"{% url 'atlas:collection_case_displaysetup_legacy' casedetail.collection.pk casedetail.case.pk %}"{% endif %}, { method: "POST", headers: { "Content-Type": "application/json", diff --git a/atlas/templates/atlas/collection_case_view_take.html b/atlas/templates/atlas/collection_case_view_take.html index c6e53381..e0f11093 100644 --- a/atlas/templates/atlas/collection_case_view_take.html +++ b/atlas/templates/atlas/collection_case_view_take.html @@ -66,9 +66,9 @@