Give sub_task_count to frontend

This commit is contained in:
sosokker 2023-11-28 11:01:10 +07:00
parent 06b188752f
commit 6a583dee90
4 changed files with 25 additions and 1 deletions

View File

@ -1,8 +1,10 @@
from rest_framework import viewsets
from rest_framework.permissions import IsAuthenticated
from ..models import Tag
from .serializers import TagSerializer
class TagViewSet(viewsets.ModelViewSet):
queryset = Tag.objects.all()
serializer_class = TagSerializer
serializer_class = TagSerializer
permission_classes = (IsAuthenticated,)

View File

@ -4,6 +4,9 @@ from boards.models import ListBoard
from tasks.models import Todo, RecurrenceTask, Habit, Subtask
class TaskSerializer(serializers.ModelSerializer):
tags = serializers.SerializerMethodField()
sub_task_count = serializers.SerializerMethodField()
class Meta:
model = Todo
fields = '__all__'
@ -19,6 +22,12 @@ class TaskSerializer(serializers.ModelSerializer):
validated_data['user'] = user
return Todo.objects.create(**validated_data)
def get_tags(self, instance):
return [tag.name for tag in instance.tags.all()]
def get_sub_task_count(self, instance):
return instance.subtask_set.count()
class TaskCreateSerializer(serializers.ModelSerializer):
class Meta:
model = Todo

View File

@ -35,6 +35,18 @@ class TodoViewSet(viewsets.ModelViewSet):
return TaskCreateSerializer
return TaskSerializer
def list(self, request, *args, **kwargs):
"""
list all tasks of the authenticated
user and send tags if those Todo too.
"""
try:
queryset = self.get_queryset()
serializer = TaskSerializer(queryset, many=True)
return Response(serializer.data)
except Exception as e:
return Response({'error': str(e)}, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def create(self, request, *args, **kwargs):
try:
new_task_data = request.data

View File

@ -121,6 +121,7 @@ export function KanbanBoard() {
user: task.user,
list_board: task.list_board,
tags: task.tags,
subtaskCount: task.sub_task_count,
}));
setTasks(transformedTasks);