"""Tag serializers.""" from rest_framework import serializers from tag import models from utils.serializers import TranslatedField class TagBaseSerializer(serializers.ModelSerializer): """Serializer for model Tag.""" label_translated = TranslatedField() class Meta: """Meta class.""" model = models.Tag fields = ( 'id', 'label_translated', ) class TagBackOfficeSerializer(TagBaseSerializer): """Serializer for Tag model for Back office users.""" class Meta(TagBaseSerializer.Meta): """Meta class.""" fields = TagBaseSerializer.Meta.fields + ( 'label', 'category' ) class TagCategoryBaseSerializer(serializers.ModelSerializer): """Serializer for model TagCategory.""" label_translated = TranslatedField() tags = TagBaseSerializer(many=True, read_only=True) class Meta: """Meta class.""" model = models.TagCategory fields = ( 'id', 'label_translated', 'tags' ) class TagCategoryDetailSerializer(TagCategoryBaseSerializer): class Meta(TagCategoryBaseSerializer.Meta): """Meta class.""" fields = TagCategoryBaseSerializer.Meta.fields + ('tags', ) class TagCategoryBackOfficeDetailSerializer(TagCategoryDetailSerializer): country_translated = TranslatedField(source='country.name_translated') class Meta(TagCategoryDetailSerializer.Meta): """Meta class.""" fields = TagCategoryDetailSerializer.Meta.fields + ( 'news_types', 'country', 'country_translated', )