58 lines
1.8 KiB
Python
58 lines
1.8 KiB
Python
from rest_framework import serializers
|
|
|
|
from core.apps.evaluation.models import DocumentModel, AutoEvaluationModel, DocumentcategoryModel
|
|
from core.apps.evaluation.serializers.documentcategory import ListDocumentcategorySerializer
|
|
|
|
class BaseDocumentSerializer(serializers.ModelSerializer):
|
|
category = ListDocumentcategorySerializer(read_only=True)
|
|
|
|
class Meta:
|
|
model = DocumentModel
|
|
fields = [
|
|
"id",
|
|
"title",
|
|
"document",
|
|
"category",
|
|
"created_at",
|
|
"updated_at"
|
|
]
|
|
|
|
|
|
class ListDocumentSerializer(BaseDocumentSerializer):
|
|
class Meta(BaseDocumentSerializer.Meta): ...
|
|
|
|
def get_document(self, obj):
|
|
request = self.context.get("request")
|
|
if obj.document:
|
|
if request:
|
|
return request.build_absolute_uri(obj.document.url)
|
|
return obj.document.url
|
|
return None
|
|
|
|
class RetrieveDocumentSerializer(BaseDocumentSerializer):
|
|
class Meta(BaseDocumentSerializer.Meta): ...
|
|
|
|
def get_document(self, obj):
|
|
request = self.context.get("request")
|
|
if obj.document:
|
|
if request:
|
|
return request.build_absolute_uri(obj.document.url)
|
|
return obj.document.url
|
|
return None
|
|
|
|
|
|
class CreateDocumentSerializer(BaseDocumentSerializer):
|
|
auto_evaluation = serializers.PrimaryKeyRelatedField(queryset=AutoEvaluationModel.objects.all())
|
|
category = serializers.PrimaryKeyRelatedField(queryset=DocumentcategoryModel.objects.all())
|
|
|
|
class Meta(BaseDocumentSerializer.Meta):
|
|
fields = [
|
|
"id",
|
|
"title",
|
|
"auto_evaluation",
|
|
"document",
|
|
"category",
|
|
"created_at",
|
|
"updated_at"
|
|
]
|