factory/apps/ecm/serializers.py

90 lines
2.7 KiB
Python

from apps.am.serializers import AreaSimpleSerializer
from apps.ecm.models import AlgoChannel, EventCate, Remind, NotifySetting, Event
from apps.third.serializers import TDeviceSimpleSerializer
from apps.third.models import TDevice
from apps.utils.serializers import CustomModelSerializer
from rest_framework import serializers
from apps.system.serializers import UserSimpleSerializer
from apps.utils.constants import EXCLUDE_FIELDS
class EventCateCreateUpdateSerializer(CustomModelSerializer):
class Meta:
model = EventCate
exclude = EXCLUDE_FIELDS
class EventCateSimpleSerializer(CustomModelSerializer):
class Meta:
model = EventCate
fields = ['id', 'name', 'code']
class EventCateListSerializer(CustomModelSerializer):
class Meta:
model = EventCate
fields = '__all__'
class EventCateUpdateSerializer(CustomModelSerializer):
class Meta:
model = EventCate
fields = ['speaker_on', 'speakers', 'filter_area_level', 'voice_person', 'handle_minute']
class NotifySettingsSerializer(CustomModelSerializer):
post_name = serializers.CharField(source='post.name', read_only=True)
user_name = serializers.CharField(source='user.name', read_only=True)
class Meta:
model = NotifySetting
fields = '__all__'
class EventSerializer(serializers.ModelSerializer):
area_name = serializers.CharField(source='area.name', read_only=True)
cate_ = EventCateSimpleSerializer(source='cate', read_only=True)
people_name = serializers.CharField(source='people.name', read_only=True)
handle_user_name = serializers.CharField(source='handle_user.name', read_only=True)
class Meta:
model = Event
fields = '__all__'
class EventHandleSerializer(CustomModelSerializer):
class Meta:
model = Event
fields = ['handle_desc']
class RemindSerializer(CustomModelSerializer):
recipient_ = UserSimpleSerializer(source='recipient', read_only=True)
class Meta:
model = Remind
fields = '__all__'
class AlgoChannelCreateSerializer(CustomModelSerializer):
class Meta:
model = AlgoChannel
fields = ['algo', 'vchannel', 'always_on']
class AlgoChannelCreatesSerializer(CustomModelSerializer):
vchannels = serializers.PrimaryKeyRelatedField(queryset=TDevice.objects.all(), many=True, label="视频通道列表")
class Meta:
model = AlgoChannel
fields = ['algo', 'vchannels']
class AlgoChannelSerializer(CustomModelSerializer):
algo_ = EventCateSimpleSerializer(source='algo', read_only=True)
vchannel_ = TDeviceSimpleSerializer(source='vchannel', read_only=True)
class Meta:
model = AlgoChannel
fields = '__all__'