42 lines
1.6 KiB
Python
42 lines
1.6 KiB
Python
from apps.system.models import User
|
|
from rest_framework.serializers import ModelSerializer
|
|
from rest_framework import serializers
|
|
|
|
from utils.mixins import DynamicFieldsSerializerMixin
|
|
from .models import ClockRecord, Employee, NotWorkRemark
|
|
from apps.system.serializers import OrganizationSimpleSerializer, UserListSerializer, UserSimpleSerializer
|
|
from django.db.models.query import Prefetch
|
|
|
|
class EmployeeSerializer(DynamicFieldsSerializerMixin, ModelSerializer):
|
|
name = serializers.CharField(source='user.name', read_only=True)
|
|
dept_ = OrganizationSimpleSerializer(source='user.dept', read_only=True)
|
|
class Meta:
|
|
model = Employee
|
|
exclude = ['face_data']
|
|
|
|
class EmployeeNotWorkRemarkSerializer(ModelSerializer):
|
|
class Meta:
|
|
model = Employee
|
|
fields = ['not_work_remark']
|
|
class FaceLoginSerializer(serializers.Serializer):
|
|
base64 = serializers.CharField()
|
|
tolerance = serializers.FloatField(required=False, default=0.42)
|
|
|
|
class FaceLoginPathSerializer(serializers.Serializer):
|
|
path = serializers.CharField()
|
|
tolerance = serializers.FloatField(required=False, default=0.42)
|
|
|
|
class FaceClockCreateSerializer(serializers.Serializer):
|
|
base64 = serializers.CharField()
|
|
tolerance = serializers.FloatField(required=False, default=0.42)
|
|
|
|
class ClockRecordListSerializer(serializers.ModelSerializer):
|
|
create_by_ = UserSimpleSerializer(source='create_by', read_only=True)
|
|
class Meta:
|
|
model = ClockRecord
|
|
fields = '__all__'
|
|
|
|
class NotWorkRemarkListSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = NotWorkRemark
|
|
fields = '__all__' |