From 50f5813a757e73b64c9a5e5369507edd9d096a6c Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 15 Sep 2025 11:43:18 +0100 Subject: [PATCH] Enhance get_series_images_nested method to support excluding specific series IDs and improve query efficiency --- atlas/models.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/atlas/models.py b/atlas/models.py index dbd92e38..b402a438 100644 --- a/atlas/models.py +++ b/atlas/models.py @@ -565,15 +565,19 @@ class Case(models.Model, AuthorMixin, QuestionMixin): return True 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")