2024-01-15 11:49:58 +01:00

64 lines
2.4 KiB
Python

# views.py
from rest_framework.views import APIView
from rest_framework.generics import ListAPIView
from rest_framework.response import Response
from rest_framework import status
from rest_framework import generics
from .models import ObjektSigurnosti
from .serializers import ObjektSigurnostiSerializer
from django.shortcuts import get_object_or_404
from rest_framework.pagination import LimitOffsetPagination
class CustomObjektSigurnostiPagination(LimitOffsetPagination):
default_limit = 20
class ObjektSigurnostiList(generics.ListCreateAPIView):
queryset = ObjektSigurnosti.objects.all().order_by("naziv")
serializer_class = ObjektSigurnostiSerializer
pagination_class = CustomObjektSigurnostiPagination
def get_queryset(self):
user = self.request.user
return user.accounts.all()
# def get_queryset(self): #queryset je data iz database, listing and creating objects
# queryset = ObjektSigurnosti.objects.all()
# location = self.request.query_params.get('lokacija')
# if location is not None:
# queryset = queryset.filter(lokacija__icontains=location)
# return queryset
def perform_create(self, serializer):
#used to customize the behavior when creating an object, and in this case,
#it sets the operater field and creates a log entry for the created object.
serializer.save(operater=self.request.user)
# instance = serializer.instance
# self.create_log(instance)
def get_serializer_class(self):
if self.request.method == "GET":
return ObjektSigurnostiSerializer
return self.serializer_class()
class ObjektSigurnostiDetail(generics.RetrieveUpdateDestroyAPIView): #retrieving, updating, and deleting a specific object
queryset = ObjektSigurnosti.objects.all()
serializer_class = ObjektSigurnostiSerializer
# def perform_update(self, serializer):
# instance = serializer.save()
# opis = "Korisnik je uredio objekt sigurnosti {} (ID: {})".format(
# instance.vrsta.naziv, instance.id
# )
# Log.objects.create(user=self.request.user, akcija="Uređivanje", opis=opis)
# def perform_destroy(self, instance):
# super().perform_destroy(instance)
# opis = "Korisnik je obrisao objekt sigurnosti {} (ID: {})".format(
# instance.vrsta.naziv, instance.id
# )
# Log.objects.create(user=self.request.user, akcija="Brisanje", opis=opis)