notify setting event_cate_name

This commit is contained in:
曹前明 2022-07-02 15:59:03 +08:00
parent e7721fdf89
commit 366a3a7616
2 changed files with 32 additions and 2 deletions

View File

@ -2,7 +2,7 @@ from django.db import models
from apps.am.models import Area from apps.am.models import Area
from apps.hrm.models import Employee from apps.hrm.models import Employee
from apps.utils.constants import Algo from apps.utils.constants import Algo
from apps.utils.models import BaseModel, CommonAModel, CommonBModel from apps.utils.models import BaseModel, CommonADModel, CommonAModel, CommonBModel
from apps.system.models import Dept, File, Post, User from apps.system.models import Dept, File, Post, User
from apps.third.models import TDevice from apps.third.models import TDevice
from django.utils import timezone from django.utils import timezone
@ -42,7 +42,7 @@ class AlgoChannel(BaseModel):
unique_together = ('algo', 'vchannel') unique_together = ('algo', 'vchannel')
class NotifySetting(CommonAModel): class NotifySetting(CommonADModel):
""" """
提醒配置 提醒配置
""" """

View File

@ -6,6 +6,7 @@ from apps.utils.serializers import CustomModelSerializer
from rest_framework import serializers from rest_framework import serializers
from apps.system.serializers import UserSimpleSerializer from apps.system.serializers import UserSimpleSerializer
from apps.utils.constants import EXCLUDE_FIELDS from apps.utils.constants import EXCLUDE_FIELDS
from rest_framework.exceptions import ParseError
class EventCateCreateUpdateSerializer(CustomModelSerializer): class EventCateCreateUpdateSerializer(CustomModelSerializer):
@ -33,6 +34,7 @@ class EventCateUpdateSerializer(CustomModelSerializer):
class NotifySettingsSerializer(CustomModelSerializer): class NotifySettingsSerializer(CustomModelSerializer):
event_cate_name = serializers.CharField(source='event_cate.name', read_only=True)
post_name = serializers.CharField(source='post.name', read_only=True) post_name = serializers.CharField(source='post.name', read_only=True)
user_name = serializers.CharField(source='user.name', read_only=True) user_name = serializers.CharField(source='user.name', read_only=True)
@ -40,6 +42,34 @@ class NotifySettingsSerializer(CustomModelSerializer):
model = NotifySetting model = NotifySetting
fields = '__all__' fields = '__all__'
def check(self, validated_data):
post = validated_data.get('post', None)
user = validated_data.get('user', None)
variable = validated_data.get('variable', None)
if post:
validated_data['obj_cate'] = 'post'
validated_data['user'] = None
validated_data['variable'] = None
elif user:
validated_data['obj_cate'] = 'user'
validated_data['post'] = None
validated_data['variable'] = None
elif variable:
validated_data['obj_cate'] = 'variable'
validated_data['post'] = None
validated_data['user'] = None
else:
raise ParseError('请指定岗位或用户或变量')
return validated_data
def create(self, validated_data):
validated_data = self.check(validated_data)
return super().create(validated_data)
def update(self, instance, validated_data):
validated_data = self.check(validated_data)
return super().update(instance, validated_data)
class EventSerializer(serializers.ModelSerializer): class EventSerializer(serializers.ModelSerializer):
area_name = serializers.CharField(source='area.name', read_only=True) area_name = serializers.CharField(source='area.name', read_only=True)