Files
backend-v1/core/apps/tasks/serializers/task.py
Shaxobff 89a5411e3c update
2026-05-06 17:05:35 +05:00

61 lines
1.7 KiB
Python

from rest_framework import serializers
from core.apps.tasks.models.task import Task
from core.apps.accounts.serializers.user import ShortUserSerializer
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
fields = [
'id',
'column',
'name',
'description',
'priority',
'from_date',
'to_date',
'labels',
'assignees',
'created_by'
]
def get_assignees(self, obj):
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']}).data
class TaskCreateSerializer(serializers.ModelSerializer):
class Meta:
model = Task
fields = [
'id',
'column',
'name',
'description',
'priority',
'from_date',
'to_date',
'labels',
'assignees',
]
extra_kwargs = {
'labels' : {'required' : False},
'description' : {'required' : False},
'from_date' : {'required' : False},
'to_date' : {'required' : False},
}
def create(self, validated_data):
validated_data['created_by'] = self.context['request'].user
return super().create(validated_data)