2024-05-29 09:27:39 +08:00
|
|
|
from rest_framework import serializers
|
2024-05-30 20:49:13 +08:00
|
|
|
from .models import GroupBusinessTarget, EmployeePerformanceTarget, TargetAudit
|
2024-05-29 09:27:39 +08:00
|
|
|
|
|
|
|
|
|
|
|
class GroupBusinessTargetSerializer(serializers.ModelSerializer):
|
|
|
|
class Meta:
|
|
|
|
model = GroupBusinessTarget
|
|
|
|
fields = '__all__'
|
2024-05-30 13:39:36 +08:00
|
|
|
|
|
|
|
|
|
|
|
class EmployeePerformanceTargetSerializer(serializers.ModelSerializer):
|
|
|
|
class Meta:
|
|
|
|
model = EmployeePerformanceTarget
|
2024-05-30 20:49:13 +08:00
|
|
|
fields = '__all__'
|
|
|
|
|
|
|
|
|
|
|
|
class TargetAuditSerializer(serializers.ModelSerializer):
|
|
|
|
modification_date = serializers.DateTimeField(format='%Y-%m-%d %H:%M')
|
|
|
|
modified_obj = serializers.SerializerMethodField()
|
2024-06-19 16:58:27 +08:00
|
|
|
modified_field_verbose = serializers.SerializerMethodField()
|
2024-05-30 20:49:13 +08:00
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = TargetAudit
|
2024-06-19 16:58:27 +08:00
|
|
|
fields = ('modified_obj', 'modified_field_verbose', 'old_value', 'new_value', 'modification_date', 'modified_by')
|
2024-05-30 20:49:13 +08:00
|
|
|
|
|
|
|
def get_modified_obj(self, obj):
|
|
|
|
target = obj.target_id
|
2024-06-19 16:58:27 +08:00
|
|
|
return f"{target.year}-{target.primary_department}-{target.project_nature}"
|
|
|
|
|
|
|
|
def get_modified_field_verbose(self, obj):
|
|
|
|
# 获取模型类
|
|
|
|
model_class = obj.target_id._meta.model
|
|
|
|
# 获取字段的 verbose_name
|
|
|
|
field = model_class._meta.get_field(obj.modified_field)
|
|
|
|
return field.verbose_name
|
2024-05-31 20:17:40 +08:00
|
|
|
|
|
|
|
|
|
|
|
class EmployeeTargetAuditSerializer(serializers.ModelSerializer):
|
|
|
|
modification_date = serializers.DateTimeField(format='%Y-%m-%d %H:%M')
|
|
|
|
modified_obj = serializers.SerializerMethodField()
|
2024-06-19 16:58:27 +08:00
|
|
|
modified_field_verbose = serializers.SerializerMethodField()
|
|
|
|
|
2024-05-31 20:17:40 +08:00
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = TargetAudit
|
2024-06-19 16:58:27 +08:00
|
|
|
fields = ('modified_obj', 'modified_field_verbose', 'old_value', 'new_value', 'modification_date', 'modified_by')
|
2024-05-31 20:17:40 +08:00
|
|
|
|
|
|
|
def get_modified_obj(self, obj):
|
|
|
|
target = obj.target_id
|
2024-06-19 16:58:27 +08:00
|
|
|
return f"{target.department}-{target.name}-{target.year}"
|
|
|
|
|
|
|
|
def get_modified_field_verbose(self, obj):
|
|
|
|
# 获取模型类
|
|
|
|
model_class = obj.target_id._meta.model
|
|
|
|
# 获取字段的 verbose_name
|
|
|
|
field = model_class._meta.get_field(obj.modified_field)
|
|
|
|
return field.verbose_name
|