"""Serializers for app advertisements""" from rest_framework import serializers from advertisement import models from translation.serializers import LanguageSerializer from main.serializers import SiteShortSerializer, PageBaseSerializer from translation.models import Language from main.models import SiteSettings class AdvertisementBaseSerializer(serializers.ModelSerializer): """Base serializer for model Advertisement.""" target_languages = serializers.PrimaryKeyRelatedField( queryset=Language.objects.all(), many=True, write_only=True ) target_sites = serializers.PrimaryKeyRelatedField( queryset=SiteSettings.objects.all(), many=True, write_only=True, source='sites' ) class Meta: model = models.Advertisement fields = [ 'id', 'uuid', 'url', 'block_level', 'target_languages', 'target_sites', 'start', 'end', ] class AdvertisementPageTypeCommonListSerializer(AdvertisementBaseSerializer): """Serializer for AdvertisementPageTypeCommonView.""" page = PageBaseSerializer(source='common_page', read_only=True) class Meta(AdvertisementBaseSerializer.Meta): """Meta class.""" fields = AdvertisementBaseSerializer.Meta.fields + [ 'page', ]