Coverage for website/announcements/api/v2/serializers.py: 100.00%

19 statements  

« prev     ^ index     » next       coverage.py v7.6.7, created at 2025-08-14 10:31 +0000

1from rest_framework import serializers 

2 

3from announcements.models import Slide 

4from thaliawebsite.api.v2.serializers import CleanedHTMLSerializer, ThumbnailSerializer 

5from thaliawebsite.api.v2.serializers.cleaned_model_serializer import ( 

6 CleanedModelSerializer, 

7) 

8 

9 

10class AnnouncementSerializer(serializers.Serializer): 

11 content = CleanedHTMLSerializer(read_only=True) 

12 closeable = serializers.BooleanField(read_only=True) 

13 icon = serializers.CharField(read_only=True) 

14 id = serializers.IntegerField(read_only=True, default=None) 

15 

16 

17class SlideSerializer(CleanedModelSerializer): 

18 """Slide serializer.""" 

19 

20 class Meta: 

21 """Meta class for the serializer.""" 

22 

23 model = Slide 

24 fields = ( 

25 "pk", 

26 "title", 

27 "content", 

28 "order", 

29 "url", 

30 ) 

31 

32 content = ThumbnailSerializer( 

33 size_large="slide", 

34 size_medium="slide_medium", 

35 size_small="slide_small", 

36 ) 

37 

38 

39class FrontpageArticleSerializer(serializers.ModelSerializer): 

40 """FrontpageArticle serializer.""" 

41 

42 class Meta: 

43 """Meta class for the serializer.""" 

44 

45 model = Slide 

46 fields = ("pk", "title", "content") 

47 

48 content = CleanedHTMLSerializer()