fix
This commit is contained in:
22
core/apps/tasks/serializers/board.py
Normal file
22
core/apps/tasks/serializers/board.py
Normal file
@@ -0,0 +1,22 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
from core.apps.tasks.serializers.comment import CommentSerializer
|
||||
from core.apps.tasks.serializers.task import TaskSerializer
|
||||
from core.apps.tasks.models import Column, Task
|
||||
|
||||
|
||||
class BoardTaskSerializer(TaskSerializer):
|
||||
comments = CommentSerializer(many=True, read_only=True)
|
||||
|
||||
class Meta(TaskSerializer.Meta):
|
||||
TaskSerializer.Meta.fields += ['comments']
|
||||
|
||||
|
||||
class BoardSerializer(serializers.ModelSerializer):
|
||||
tasks = BoardTaskSerializer(many=True, read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = Column
|
||||
fields = [
|
||||
'id', 'name', 'tasks',
|
||||
]
|
||||
@@ -17,7 +17,8 @@ class CommentSerializer(serializers.ModelSerializer):
|
||||
request = self.context.get('request')
|
||||
return {
|
||||
"id": obj.created_by.id,
|
||||
"full_name": obj.created_by.full_name,
|
||||
"first_name": obj.created_by.first_name,
|
||||
"last_name": obj.created_by.last_name,
|
||||
"avatar": request.build_absolute_uri(obj.created_by.avatar.url) if obj.created_by.avatar else None
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,8 @@ from core.apps.tasks.serializers.label import LabelSerializer
|
||||
|
||||
class TaskSerializer(serializers.ModelSerializer):
|
||||
labels = LabelSerializer(many=True)
|
||||
assignees = serializers.SerializerMethodField(method_name='get_assignees')
|
||||
created_by = serializers.SerializerMethodField(method_name='get_created_by')
|
||||
|
||||
class Meta:
|
||||
model = Task
|
||||
@@ -24,7 +26,27 @@ class TaskSerializer(serializers.ModelSerializer):
|
||||
]
|
||||
|
||||
def get_assignees(self, obj):
|
||||
return ShortUserSerializer(obj.assignees.all(), many=True, context={"request": self.context['request']})
|
||||
return ShortUserSerializer(obj.assignees.all(), many=True, context={"request": self.context['request']}).data
|
||||
|
||||
def get_created_by(self, obj):
|
||||
return ShortUserSerializer(obj.created_by, context={"request": self.context['request']})
|
||||
return ShortUserSerializer(obj.created_by, context={"request": self.context['request']}).data
|
||||
|
||||
|
||||
class TaskCreateSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Task
|
||||
fields = [
|
||||
'id',
|
||||
'column',
|
||||
'name',
|
||||
'description',
|
||||
'priority',
|
||||
'from_date',
|
||||
'to_date',
|
||||
'labels',
|
||||
'assignees',
|
||||
]
|
||||
|
||||
def create(self, validated_data):
|
||||
validated_data['created_by'] = self.context['request'].user
|
||||
return super().create(validated_data)
|
||||
|
||||
Reference in New Issue
Block a user