Coverage for website/pushnotifications/api/v2/serializers.py: 90.48%
21 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.relations import ManyRelatedField, PrimaryKeyRelatedField
3from pushnotifications.models import Category, Device, Message
4from thaliawebsite.api.v2.serializers.cleaned_model_serializer import (
5 CleanedModelSerializer,
6)
9class DeviceSerializer(CleanedModelSerializer):
10 """Device serializer."""
12 class Meta:
13 """Meta for the serializer."""
15 model = Device
16 fields = (
17 "pk",
18 "registration_id",
19 "active",
20 "date_created",
21 "type",
22 "receive_category",
23 )
24 read_only_fields = (
25 "pk",
26 "date_created",
27 )
29 extra_kwargs = {"active": {"default": True}}
31 def get_fields(self):
32 f = super().get_fields()
33 return f
35 receive_category = ManyRelatedField(
36 allow_empty=True,
37 required=False,
38 child_relation=PrimaryKeyRelatedField(
39 allow_empty=True, queryset=Category.objects.all(), required=False
40 ),
41 )
44class CategorySerializer(CleanedModelSerializer):
45 """Category serializers."""
47 class Meta:
48 """Meta for the serializer."""
50 model = Category
51 fields = ("key", "name", "description")
54class MessageSerializer(CleanedModelSerializer):
55 class Meta:
56 """Meta for the serializer."""
58 model = Message
59 fields = ("pk", "title", "body", "url", "category", "sent")