fix
This commit is contained in:
13
core/apps/tasks/views/board.py
Normal file
13
core/apps/tasks/views/board.py
Normal file
@@ -0,0 +1,13 @@
|
||||
from rest_framework import generics, permissions
|
||||
from rest_framework.response import Response
|
||||
|
||||
from core.apps.tasks.serializers.board import BoardSerializer
|
||||
from core.apps.tasks.models import Column
|
||||
|
||||
|
||||
class BoardListView(generics.ListAPIView):
|
||||
queryset = Column.objects.order_by('id')
|
||||
serializer_class = BoardSerializer
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
from django.db import transaction
|
||||
|
||||
from rest_framework import generics, permissions
|
||||
from rest_framework.response import Response
|
||||
|
||||
from drf_spectacular.utils import extend_schema
|
||||
|
||||
from core.apps.tasks.serializers.column import ColumnSerializer
|
||||
from core.apps.tasks.models.column import Column
|
||||
|
||||
|
||||
@extend_schema(tags=['Tasks'])
|
||||
class ColumnCreateApiView(generics.GenericAPIView):
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
serializer_class = ColumnSerializer
|
||||
|
||||
@transaction.atomic
|
||||
def post(self, request):
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
column = serializer.save()
|
||||
return Response(serializer.data)
|
||||
|
||||
|
||||
@extend_schema(tags=['Tasks'])
|
||||
class ColumnListApiView(generics.ListAPIView):
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
serializer_class = ColumnSerializer
|
||||
|
||||
def get_queryset(self):
|
||||
return Column.objects.order_by('id')
|
||||
|
||||
|
||||
@extend_schema(tags=['Tasks'])
|
||||
class ColumnUpdateApiView(generics.UpdateAPIView):
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
serializer_class = ColumnSerializer
|
||||
lookup_field = 'id'
|
||||
queryset = Column.objects.all()
|
||||
|
||||
|
||||
@extend_schema(tags=['Tasks'])
|
||||
class ColumnDeleteApiView(generics.DestroyAPIView):
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
serializer_class = ColumnSerializer
|
||||
lookup_field = 'id'
|
||||
queryset = Column.objects.all()
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
from rest_framework import generics, permissions
|
||||
from rest_framework.exceptions import PermissionDenied
|
||||
|
||||
from core.apps.tasks.models.comment import Comment
|
||||
from core.apps.tasks.serializers.comment import CommentSerializer, CommentCreateSerializer
|
||||
|
||||
|
||||
class CommentListCreateAPIView(generics.ListCreateAPIView):
|
||||
queryset = Comment.objects.all()
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
|
||||
def get_serializer_class(self):
|
||||
if self.request.method == 'POST':
|
||||
return CommentCreateSerializer
|
||||
return CommentSerializer
|
||||
|
||||
def get_queryset(self):
|
||||
task_id = self.request.query_params.get('task_id')
|
||||
queryset = self.queryset
|
||||
|
||||
if task_id:
|
||||
queryset = queryset.filter(task_id=task_id)
|
||||
|
||||
return queryset.order_by('-id')
|
||||
|
||||
def get_serializer_context(self):
|
||||
return {"request": self.request}
|
||||
|
||||
|
||||
class CommentDetailAPIView(generics.RetrieveUpdateDestroyAPIView):
|
||||
queryset = Comment.objects.all()
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
|
||||
def get_serializer_class(self):
|
||||
if self.request.method in ['PUT', 'PATCH']:
|
||||
return CommentCreateSerializer
|
||||
return CommentSerializer
|
||||
|
||||
def get_serializer_context(self):
|
||||
return {"request": self.request}
|
||||
|
||||
def perform_update(self, serializer):
|
||||
comment = self.get_object()
|
||||
if comment.created_by != self.request.user:
|
||||
raise PermissionDenied("You cannot edit this comment")
|
||||
serializer.save()
|
||||
|
||||
def perform_destroy(self, instance):
|
||||
if instance.created_by != self.request.user:
|
||||
raise PermissionDenied("You cannot delete this comment")
|
||||
instance.delete()
|
||||
|
||||
22
core/apps/tasks/views/label.py
Normal file
22
core/apps/tasks/views/label.py
Normal file
@@ -0,0 +1,22 @@
|
||||
from rest_framework import generics, permissions
|
||||
from rest_framework.response import Response
|
||||
|
||||
from drf_spectacular.utils import extend_schema
|
||||
|
||||
from core.apps.tasks.serializers.label import LabelSerializer
|
||||
from core.apps.tasks.models.label import Label
|
||||
|
||||
|
||||
@extend_schema(tags=['Tasks'])
|
||||
class LabelListCreateApiView(generics.ListCreateAPIView):
|
||||
queryset = Label.objects.order_by('id')
|
||||
serializer_class = LabelSerializer
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
|
||||
|
||||
@extend_schema(tags=['Tasks'])
|
||||
class LabelRetrieveUpdateDestroyApiView(generics.RetrieveUpdateDestroyAPIView):
|
||||
queryset = Label.objects.order_by('id')
|
||||
serializer_class = LabelSerializer
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
lookup_field = 'id'
|
||||
@@ -0,0 +1,40 @@
|
||||
from django.db import transaction
|
||||
|
||||
from rest_framework import permissions, generics
|
||||
from rest_framework.response import Response
|
||||
|
||||
from drf_spectacular.utils import extend_schema
|
||||
|
||||
from core.apps.tasks.models.task import Task
|
||||
from core.apps.tasks.serializers.task import TaskSerializer, TaskCreateSerializer
|
||||
|
||||
|
||||
@extend_schema(tags=['Tasks'])
|
||||
class TaskCreateView(generics.GenericAPIView):
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
serializer_class = TaskCreateSerializer
|
||||
queryset = Task.objects.order_by('id')
|
||||
|
||||
@transaction.atomic
|
||||
def post(self, request):
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
serializer.save()
|
||||
return Response(serializer.data)
|
||||
|
||||
|
||||
@extend_schema(tags=['Tasks'])
|
||||
class TaskListView(generics.ListAPIView):
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
serializer_class = TaskSerializer
|
||||
queryset = Task.objects.order_by('id')
|
||||
|
||||
def serializer_context(self):
|
||||
return self.serializer_class(context={"request": self.request})
|
||||
|
||||
|
||||
@extend_schema(tags=['Tasks'])
|
||||
class TaskDetailView(generics.RetrieveUpdateDestroyAPIView):
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
serializer_class = TaskSerializer
|
||||
queryset = Task.objects.order_by('id')
|
||||
|
||||
Reference in New Issue
Block a user