fix case rodering
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import json
|
||||
import os
|
||||
import pathlib
|
||||
from typing import Tuple
|
||||
|
||||
from django.http import Http404, HttpRequest
|
||||
from rad.settings import REMOTE_URL
|
||||
@@ -521,6 +522,22 @@ class CaseCollection(ExamCollectionGenericBase):
|
||||
|
||||
return False
|
||||
|
||||
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())
|
||||
|
||||
try:
|
||||
case = cases[case_index]
|
||||
except IndexError: # Catch an invalid case_number
|
||||
s = f"Invalid case number: {case_index}"
|
||||
raise Http404(s)
|
||||
|
||||
if case_count:
|
||||
return case, len(cases)
|
||||
else:
|
||||
return case
|
||||
|
||||
|
||||
class CaseDetail(models.Model):
|
||||
case = models.ForeignKey(Case, on_delete=models.CASCADE)
|
||||
|
||||
Reference in New Issue
Block a user