factory/apps/am/serializers.py

50 lines
1.4 KiB
Python

from rest_framework import serializers
from apps.am.models import Access, Area
from apps.hrm.models import Employee
from apps.system.models import Post
from apps.utils.serializers import CustomModelSerializer
from apps.system.serializers import PostSimpleSerializer
class AreaSimpleSerializer(CustomModelSerializer):
class Meta:
model = Area
fields = ['id', 'name', 'level', 'cate']
class AreaSerializer(CustomModelSerializer):
class Meta:
model = Area
fields = '__all__'
class AreaCreateUpdateSerializer(CustomModelSerializer):
class Meta:
model = Area
fields = ['name', 'level', 'number', 'visitor_yes', 'remployee_yes', 'employee_yes',
'belong_dept', 'count_people_min', 'count_people_max', 'count_people', 'cate']
class AccessCreateSerializer(CustomModelSerializer):
class Meta:
model = Access
fields = ['type', 'area', 'obj_cate', 'obj']
class AccessSerializer(CustomModelSerializer):
obj_ = serializers.SerializerMethodField()
class Meta:
model = Access
fields = '__all__'
def get_obj_(self, obj):
if obj.obj_cate == 'employee':
ep = Employee.objects.filter(id=obj.obj).first()
if ep:
return {'id': ep.id, 'name': ep.name}
elif obj.obj_cate == 'post':
pt = Post.objects.filter(id=obj.obj).first()
if pt:
return {'id': pt.id, 'name': pt.name}