mirror of
https://github.com/TurTaskProject/TurTaskWeb.git
synced 2025-12-18 13:34:08 +01:00
Give sub_task_count to frontend
This commit is contained in:
parent
06b188752f
commit
6a583dee90
@ -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,)
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user