Coverage for website/photos/api/v2/serializers/album.py: 94.44%
18 statements
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
« prev ^ index » next coverage.py v7.6.7, created at 2025-08-14 10:31 +0000
1from rest_framework import serializers
3from photos import services
4from photos.api.v2.serializers.photo import PhotoListSerializer, PhotoSerializer
5from photos.models import Album
6from thaliawebsite.api.v2.serializers.cleaned_model_serializer import (
7 CleanedModelSerializer,
8)
11class AlbumSerializer(CleanedModelSerializer):
12 """API serializer for albums."""
14 class Meta:
15 """Meta class for the serializer."""
17 model = Album
18 fields = (
19 "slug",
20 "title",
21 "accessible",
22 "shareable",
23 "cover",
24 "photos",
25 "event",
26 )
28 cover = PhotoSerializer()
29 accessible = serializers.SerializerMethodField("_accessible")
30 photos = PhotoListSerializer(source="photo_set", many=True)
32 def _accessible(self, obj):
33 return services.is_album_accessible(self.context["request"], obj)
36class AlbumListSerializer(AlbumSerializer):
37 class Meta:
38 """Meta class for the serializer."""
40 model = Album
41 fields = ("slug", "title", "accessible", "shareable", "cover", "event")