Borrowing-TrackerBackend/equipment_tracker/transactions/views.py

41 lines
1.3 KiB
Python
Raw Normal View History

from rest_framework.permissions import IsAuthenticated
from accounts.permissions import IsTeacher, IsStudent
from rest_framework import viewsets, generics
from .serializers import TransactionSerializer
from .models import Transaction
class TransactionViewSet(viewsets.ModelViewSet):
# Only allow GET, POST/CREATE
# Transactions cannot be deleted
2023-12-16 15:00:13 +08:00
http_method_names = ['get', 'post', 'patch']
permission_classes = [IsAuthenticated]
serializer_class = TransactionSerializer
queryset = Transaction.objects.all()
class TransactionByStudentViewSet(generics.ListAPIView):
2023-12-22 14:12:10 +08:00
# Viewset for GET only
http_method_names = ['get']
permission_classes = [IsAuthenticated, IsStudent]
serializer_class = TransactionSerializer
queryset = Transaction.objects.all()
def get_queryset(self):
user = self.request.user
transactions = Transaction.objects.filter(borrower=user)
return transactions
class TransactionByTeacherViewSet(generics.ListAPIView):
2023-12-22 14:12:10 +08:00
# Viewset for GET only
http_method_names = ['get']
permission_classes = [IsAuthenticated, IsTeacher]
serializer_class = TransactionSerializer
queryset = Transaction.objects.all()
def get_queryset(self):
user = self.request.user
transactions = Transaction.objects.filter(teacher=user)
return transactions