Enhance get_series_images_nested method to support excluding specific series IDs and improve query efficiency
This commit is contained in:
+11
-2
@@ -566,14 +566,18 @@ class Case(models.Model, AuthorMixin, QuestionMixin):
|
||||
|
||||
return False
|
||||
|
||||
def get_series_images_nested(self, as_json=True):
|
||||
def get_series_images_nested(self, as_json: bool =True, exclude_series_ids: None | list[int] = None):
|
||||
"""
|
||||
Returns a list of lists, where each inner list contains the image URLs
|
||||
for a single series in this case, in the order of the series.
|
||||
"""
|
||||
|
||||
series_qs = self.series.all()
|
||||
if exclude_series_ids is not None:
|
||||
series_qs = self.series.exclude(id__in=exclude_series_ids)
|
||||
images = [
|
||||
[image.image.url for image in series.images.all()]
|
||||
for series in self.series.all()
|
||||
for series in series_qs.order_by('seriesdetail__sort_order').prefetch_related('images')
|
||||
]
|
||||
|
||||
if as_json:
|
||||
@@ -1232,6 +1236,11 @@ class CaseDetail(models.Model):
|
||||
return self.case.history
|
||||
return ""
|
||||
|
||||
def get_case_series_nested(self, include_priors=True):
|
||||
case = self.case
|
||||
|
||||
|
||||
|
||||
class CasePrior(models.Model):
|
||||
case_detail = models.ForeignKey(CaseDetail, on_delete=models.CASCADE)
|
||||
prior_case = models.ForeignKey(Case, on_delete=models.CASCADE, related_name="prior_case")
|
||||
|
||||
Reference in New Issue
Block a user