From 27d1660192733019d5aa501376617308462cb33c Mon Sep 17 00:00:00 2001 From: Markos Gogoulos Date: Thu, 14 Nov 2024 12:22:23 +0200 Subject: [PATCH] feat: provide slideshow media for images (#1108) --- files/models.py | 20 ++++++++++++++++++++ files/serializers.py | 1 + 2 files changed, 21 insertions(+) diff --git a/files/models.py b/files/models.py index d46d094..f7bd56d 100644 --- a/files/models.py +++ b/files/models.py @@ -780,6 +780,26 @@ class Media(models.Model): return helpers.url_from_path(self.poster.path) return None + + @property + def slideshow_items(self): + if self.media_type != "image": + items = [] + else: + qs = Media.objects.filter(listable=True, user=self.user, media_type="image").exclude(id=self.id).order_by('id')[:20] + + items = [ + { + "poster_url": item.poster_url, + "url": item.get_absolute_url(), + "thumbnail_url": item.thumbnail_url, + "title": item.title, + } for item in qs + ] + + return items + + @property def subtitles_info(self): """Property used on serializers diff --git a/files/serializers.py b/files/serializers.py index 1fe2e87..07af21c 100644 --- a/files/serializers.py +++ b/files/serializers.py @@ -145,6 +145,7 @@ class SingleMediaSerializer(serializers.ModelSerializer): "ratings_info", "add_subtitle_url", "allow_download", + "slideshow_items" )