fix collection ordering
This commit is contained in:
+13
-2
@@ -816,13 +816,17 @@ class CaseCollection(ExamOrCollectionGenericBase):
|
||||
|
||||
# return False
|
||||
|
||||
def get_cases(self):
|
||||
"""Returns the cases in the collection in order of the CaseDetail sort_order"""
|
||||
return self.cases.all().order_by("casedetail__sort_order")
|
||||
|
||||
def get_case_by_index(
|
||||
self, case_index: int, case_count=False
|
||||
) -> Case | Tuple[Case, int]:
|
||||
# Seems to be a bug when case_number is 0 or 1 the same (first) object gets returned
|
||||
# forces a list fixes (but is likely inefficient)
|
||||
cases = list(
|
||||
self.cases.all().order_by("casedetail__sort_order").prefetch_related()
|
||||
self.get_cases().prefetch_related()
|
||||
)
|
||||
|
||||
try:
|
||||
@@ -838,7 +842,7 @@ class CaseCollection(ExamOrCollectionGenericBase):
|
||||
|
||||
def get_case_take_url(self, case):
|
||||
cases = list(
|
||||
self.cases.all().order_by("casedetail__sort_order").prefetch_related()
|
||||
self.get_cases().prefetch_related()
|
||||
)
|
||||
|
||||
return reverse(
|
||||
@@ -878,6 +882,13 @@ class CaseCollection(ExamOrCollectionGenericBase):
|
||||
"studies": studies
|
||||
}
|
||||
|
||||
def add_case(self, case):
|
||||
"""Adds a case to the collection and makes sure order is maintained"""
|
||||
# We might be better off adding via the case detail model direct
|
||||
#CaseDetail.objects.create(case=case, collection=self)
|
||||
self.cases.add(case)
|
||||
self.order_cases()
|
||||
|
||||
|
||||
def order_cases(self):
|
||||
"""Modifies the casedetail sort_order to sequentially order the cases"""
|
||||
|
||||
Reference in New Issue
Block a user