Numerous improvements to case questions

This commit is contained in:
Ross
2024-06-24 08:59:15 +01:00
parent db43bcf557
commit 64cebf50a0
11 changed files with 348 additions and 74 deletions
+33
View File
@@ -774,6 +774,8 @@ class CaseCollection(ExamOrCollectionGenericBase):
help_text="If true allows users self complete and review cases in a self directed way.",
)
feedback_once_collection_complete = models.BooleanField(default=True, help_text="If true feedback is only given once the collection is complete. If false feedback is given after each case.")
class COLLECTION_TYPE_CHOICES(models.TextChoices):
REVIEW = (
"REV",
@@ -783,6 +785,10 @@ class CaseCollection(ExamOrCollectionGenericBase):
"REP",
_("Report"),
)
QUESTION = (
"QUE",
_("Question"),
)
VIVA = (
"VIV",
_("Viva"),
@@ -874,6 +880,33 @@ class CaseCollection(ExamOrCollectionGenericBase):
"""Returns the cases in the collection in order of the CaseDetail sort_order"""
return self.cases.all().order_by("casedetail__sort_order")
def get_next_case(self, case):
cases = list(self.get_cases())
try:
return cases[cases.index(case) + 1]
except IndexError:
return None
def get_previous_case(self, case):
cases = list(self.get_cases())
new_index = cases.index(case) - 1
if new_index < 0:
return None
else:
return cases[new_index]
def get_index_of_case(self, case, case_count=False):
cases = list(self.get_cases())
if case_count:
return cases.index(case), len(cases)
else:
return cases.index(case)
def get_case_by_index(
self, case_index: int, case_count=False
) -> Case | Tuple[Case, int]: