40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
"""Serializers for app advertisements"""
|
|
from rest_framework import serializers
|
|
|
|
from advertisement import models
|
|
from translation.serializers import LanguageSerializer
|
|
from main.serializers import SiteShortSerializer
|
|
from main.serializers import PageBaseSerializer
|
|
|
|
|
|
class AdvertisementBaseSerializer(serializers.ModelSerializer):
|
|
"""Base serializer for model Advertisement."""
|
|
|
|
languages = LanguageSerializer(many=True, read_only=True)
|
|
sites = SiteShortSerializer(many=True, read_only=True)
|
|
|
|
class Meta:
|
|
model = models.Advertisement
|
|
fields = [
|
|
'id',
|
|
'uuid',
|
|
'url',
|
|
'block_level',
|
|
'languages',
|
|
'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',
|
|
]
|