cma_search/server/apps/supervision/serializers.py

46 lines
1.5 KiB
Python

from rest_framework import serializers
from .models import *
from apps.system.serializers import OrganizationSerializer,FileListSerializer
class ContentSerializer(serializers.ModelSerializer):
type_ = serializers.SerializerMethodField()
class Meta:
model = Content
fields = '__all__'
@staticmethod
def setup_eager_loading(queryset):
""" Perform necessary eager loading of data. """
queryset = queryset.select_related('type')
return queryset
def get_type_ (self, obj):
data = obj.type.name
if obj.type.pid:
data = obj.type.pid.name + '/' + data
return data
class ContentListSerializer(serializers.ModelSerializer):
class Meta:
model = Content
fields = ['name', 'desc']
class TaskCreateUpdateSerializer(serializers.ModelSerializer):
class Meta:
model = Task
fields = ['name', 'end_date', 'note']
class TaskListSerializer(serializers.ModelSerializer):
class Meta:
model = Task
fields = ['name', 'is_self', 'end_date', 'note', 'complete_rate']
class RecordSerializer(serializers.ModelSerializer):
files_ = FileListSerializer(source='files', many=True, read_only=True)
task_ = TaskListSerializer(source='task')
content_=ContentListSerializer(source='content')
class Meta:
model = Record
fields = ('id', 'up_date', 'up_user', 'end_date', 'state',
'is_yes', 'note', 'noteb','content','content_','task_','task', 'files', 'files_')