mirror of
https://github.com/TurTaskProject/TurTaskWeb.git
synced 2025-12-18 21:44:07 +01:00
Add Board and ListBoard Viewset
This commit is contained in:
parent
42acf6542e
commit
e4742c8ea2
13
backend/boards/serializers.py
Normal file
13
backend/boards/serializers.py
Normal file
@ -0,0 +1,13 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
from boards.models import Board, ListBoard
|
||||
|
||||
class BoardSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Board
|
||||
fields = '__all__'
|
||||
|
||||
class ListBoardSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = ListBoard
|
||||
fields = '__all__'
|
||||
@ -1,5 +1,11 @@
|
||||
from django.urls import path
|
||||
from django.urls import path, include
|
||||
from rest_framework.routers import DefaultRouter
|
||||
from boards.views import BoardViewSet, ListBoardViewSet
|
||||
|
||||
router = DefaultRouter()
|
||||
router.register(r'boards', BoardViewSet, basename='board')
|
||||
router.register(r'lists', ListBoardViewSet, basename='listboard')
|
||||
|
||||
urlpatterns = [
|
||||
|
||||
]
|
||||
path('', include(router.urls)),
|
||||
]
|
||||
@ -1,3 +1,31 @@
|
||||
from django.shortcuts import render
|
||||
from rest_framework import viewsets
|
||||
from rest_framework.response import Response
|
||||
from rest_framework import status
|
||||
|
||||
# Create your views here.
|
||||
from boards.models import Board, ListBoard
|
||||
from boards.serializers import BoardSerializer, ListBoardSerializer
|
||||
|
||||
class BoardViewSet(viewsets.ModelViewSet):
|
||||
queryset = Board.objects.all()
|
||||
serializer_class = BoardSerializer
|
||||
http_method_names = ['get']
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = Board.objects.filter(user_id=self.request.user.id)
|
||||
return queryset
|
||||
|
||||
|
||||
class ListBoardViewSet(viewsets.ModelViewSet):
|
||||
serializer_class = ListBoardSerializer
|
||||
|
||||
def get_queryset(self):
|
||||
queryset = ListBoard.objects.filter(board__user_id=self.request.user.id)
|
||||
return queryset
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
request.data['board'] = request.data.get('board') # Make sure 'board' is in request data
|
||||
board_user_id = ListBoard.objects.get(id=request.data['board']).board.request.user.id
|
||||
if request.user.id != board_user_id:
|
||||
return Response({"error": "Cannot create ListBoard for another user's board."}, status=status.HTTP_403_FORBIDDEN)
|
||||
return super().create(request, *args, **kwargs)
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user