148 lines
4.4 KiB
Python
148 lines
4.4 KiB
Python
from django.shortcuts import render, get_object_or_404
|
|
from rest_framework import status, generics
|
|
from rest_framework.views import APIView
|
|
from rest_framework.response import Response
|
|
from rest_framework.permissions import IsAuthenticated
|
|
from .models import Job, Note, Image, Cost, Field, Cultivation_calender, Product
|
|
from .serializers import (
|
|
JobSerializer,
|
|
NoteSerializer,
|
|
ImageSerializer,
|
|
CostSerializer,
|
|
FieldSerializer,
|
|
CultivationCalenderSerializer,
|
|
ProductSerializer,
|
|
)
|
|
from rest_framework.viewsets import ModelViewSet
|
|
|
|
# Create your views here.
|
|
|
|
# TODO create get user data api view
|
|
|
|
|
|
class CostListCreate(generics.ListCreateAPIView):
|
|
serializer_class = CostSerializer
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def get_queryset(self):
|
|
return Cost.objects.filter(user=self.request.user)
|
|
|
|
def perform_create(self, serializer):
|
|
serializer.save(user=self.request.user) # assign user automatically
|
|
|
|
|
|
class CostDetail(generics.RetrieveUpdateDestroyAPIView):
|
|
serializer_class = CostSerializer
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def get_queryset(self):
|
|
# Ensure user can only access their own notes
|
|
return Cost.objects.filter(user=self.request.user)
|
|
|
|
|
|
class FieldListCreate(generics.ListCreateAPIView):
|
|
serializer_class = FieldSerializer
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def get_queryset(self):
|
|
return Field.objects.filter(user=self.request.user)
|
|
|
|
def perform_create(self, serializer):
|
|
serializer.save(user=self.request.user) # assign user automatically
|
|
|
|
|
|
class FieldDetail(generics.RetrieveUpdateDestroyAPIView):
|
|
serializer_class = FieldSerializer
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def get_queryset(self):
|
|
# Ensure user can only access their own notes
|
|
return Field.objects.filter(user=self.request.user)
|
|
|
|
|
|
class ImageListCreate(generics.ListCreateAPIView):
|
|
serializer_class = ImageSerializer
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def get_queryset(self):
|
|
return Image.objects.filter(user=self.request.user)
|
|
|
|
def perform_create(self, serializer):
|
|
serializer.save(user=self.request.user) # assign user automatically
|
|
|
|
|
|
class ImageDetail(generics.RetrieveUpdateDestroyAPIView):
|
|
serializer_class = ImageSerializer
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def get_queryset(self):
|
|
# Ensure user can only access their own notes
|
|
return Image.objects.filter(user=self.request.user)
|
|
|
|
|
|
class NoteListCreate(generics.ListCreateAPIView):
|
|
serializer_class = NoteSerializer
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def get_queryset(self):
|
|
return Note.objects.filter(user=self.request.user)
|
|
|
|
def perform_create(self, serializer):
|
|
serializer.save(user=self.request.user) # assign user automatically
|
|
|
|
|
|
class NoteDetails(generics.RetrieveUpdateDestroyAPIView):
|
|
serializer_class = NoteSerializer
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def get_queryset(self):
|
|
# Ensure user can only access their own notes
|
|
return Note.objects.filter(user=self.request.user)
|
|
|
|
|
|
class cultivation_calender(generics.ListCreateAPIView):
|
|
serializer_class = CultivationCalenderSerializer
|
|
premission_classes = [IsAuthenticated]
|
|
|
|
def get_queryset(self):
|
|
return Cultivation_calender.objects.all()
|
|
|
|
def perform_create(self, serializer):
|
|
serializer.save()
|
|
|
|
|
|
class ProductListCreate(generics.ListCreateAPIView):
|
|
serializer_class = ProductSerializer
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def get_queryset(self):
|
|
return Product.objects.all()
|
|
|
|
|
|
class ProductDetail(generics.RetrieveUpdateDestroyAPIView):
|
|
serializer_class = ProductSerializer
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def get_queryset(self):
|
|
return Product.objects.filter()
|
|
|
|
|
|
class JobListCreate(generics.ListCreateAPIView):
|
|
serializer_class = JobSerializer
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def get_queryset(self):
|
|
return Job.objects.filter(user=self.request.user)
|
|
|
|
def perform_create(self, serializer):
|
|
serializer.save(user=self.request.user) # assign user automatically
|
|
|
|
|
|
class JobDetail(generics.RetrieveUpdateDestroyAPIView):
|
|
serializer_class = JobSerializer
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def get_queryset(self):
|
|
# Ensure user can only access their own notes
|
|
return Job.objects.filter(user=self.request.user)
|