55 lines
1.9 KiB
Python
55 lines
1.9 KiB
Python
from django.shortcuts import get_object_or_404
|
|
|
|
from rest_framework import generics, views
|
|
from rest_framework.response import Response
|
|
|
|
from core.apps.wherehouse.models import WhereHouse, Inventory
|
|
from core.apps.wherehouse.serializers import wherehouse as serializers
|
|
from core.apps.accounts.permissions.permissions import HasRolePermission
|
|
|
|
|
|
class WhereHouseListApiView(generics.GenericAPIView):
|
|
serializer_class = serializers.WhereHouseListSerializer
|
|
queryset = WhereHouse.objects.prefetch_related('users', 'projects')
|
|
permission_classes = [HasRolePermission]
|
|
|
|
def get(self, request):
|
|
mine = request.query_params.get('mine')
|
|
if mine and mine == 'true':
|
|
self.queryset = self.queryset.filter(users=request.user)
|
|
page = self.paginate_queryset(self.queryset)
|
|
if page is not None:
|
|
serializer = self.serializer_class(page, many=True)
|
|
return self.get_paginated_response(serializer.data)
|
|
|
|
|
|
class WhereHouseDetailApiView(generics.RetrieveAPIView):
|
|
serializer_class = serializers.WhereHouseDetailSerializer
|
|
queryset = WhereHouse.objects.all()
|
|
permission_classes = [HasRolePermission]
|
|
lookup_field = 'id'
|
|
|
|
|
|
class WhereHouseCreateApiView(generics.CreateAPIView):
|
|
serializer_class = serializers.WhereHouseCreateSerializer
|
|
queryset = WhereHouse.objects.all()
|
|
permission_classes = [HasRolePermission]
|
|
|
|
|
|
class WhereHouseDeleteApiView(views.APIView):
|
|
permission_classes = [HasRolePermission]
|
|
|
|
def delete(self, request, id):
|
|
wherehouse = get_object_or_404(WhereHouse, id=id)
|
|
wherehouse.delete()
|
|
return Response(
|
|
{'success': True, 'message': 'Deleted!'},
|
|
status=204
|
|
)
|
|
|
|
|
|
class WhereHouseUpdateApiView(generics.UpdateAPIView):
|
|
serializer_class = serializers.WhereHouseUpdateSerializer
|
|
queryset = WhereHouse.objects.all()
|
|
lookup_field = 'id'
|
|
permission_classes = [HasRolePermission] |