SkoolOS/Website/api/views.py
Raffu Khondaker aaa750e415 teacher field
2020-06-15 20:31:38 -04:00

80 lines
3.0 KiB
Python

from .models import Student, Teacher, Class, Assignment, DefFiles
from .serializers import StudentSerializer, TeacherSerializer, ClassSerializer, AssignmentSerializer, UserSerializer
from rest_framework import generics, viewsets, permissions, response, status
from django.http import Http404
from rest_framework.views import APIView
from django.contrib.auth.models import User
from .permissions import isTeacher, IsOwnerOrReadOnly
from django.shortcuts import render, redirect
from rest_framework.parsers import JSONParser
from rest_framework.response import Response
from django.contrib.auth.models import Group
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
permission_Class = [permissions.IsAuthenticated]
class StudentViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = Student.objects.all()
serializer_class = StudentSerializer
permission_Class = [permissions.IsAuthenticated, IsOwnerOrReadOnly]
def perform_create(self, serializer):
serializer.save(user=self.request.user)
class TeacherViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = Teacher.objects.all()
serializer_class = TeacherSerializer
permission_Class = [permissions.IsAuthenticated, IsOwnerOrReadOnly]
def perform_create(self, serializer):
serializer.save(user=self.request.user)
class ClassViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = Class.objects.all()
serializer_class = ClassSerializer
permission_Class = [permissions.IsAuthenticated, IsOwnerOrReadOnly]
# def perform_create(self, serializer):
# if(self.request.user.groups.filter(name__in=['teachers']).exists() or self.request.user.is_superuser):
# serializer.save(owner=self.request.user)
# else:
# print("UNAUTHORIZED POST")
# return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
class AssignmentViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = Assignment.objects.all()
serializer_class = AssignmentSerializer
permission_Class = [permissions.IsAuthenticated, isTeacher, IsOwnerOrReadOnly]
def perform_create(self, serializer):
if(self.request.user.groups.filter(name__in=['teachers']).exists() or self.request.user.is_superuser):
serializer.save(owner=self.request.user)
else:
print("UNAUTHORIZED POST")
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
# class DefFilesViewSet(viewsets.ModelViewSet):
# """
# API endpoint that allows users to be viewed or edited.
# """
# queryset = DefFiles.objects.all()
# serializer_class = DefFilesSerializer
# permissions_Class = [permissions.IsAuthenticatedOrReadOnly]