Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1from rest_framework.views import APIView
2from rest_framework.response import Response
3from rest_framework import status
4from rest_framework import permissions
5from django.http import Http404
7from policorp.serializers import AvailabilitySerializer
8from policorp.permissions import IsLocationSupervisor
9from policorp.models import Availability
12class AvailabilityView(APIView):
13 http_method_names = ['delete']
14 permission_classes = [IsLocationSupervisor]
16 def get_object(self, availabilityid):
17 try:
18 availability = Availability.objects.get(pk=availabilityid)
19 self.check_object_permissions(self.request, availability.where)
20 return availability
21 except Availability.DoesNotExist:
22 raise Http404
24 def delete(self, request, availabilityid, format=None):
25 a = self.get_object(availabilityid)
26 if not a.booked:
27 a.delete()
28 else:
29 return Response(data={"detail": "Availability is already booked."}, status=status.HTTP_409_CONFLICT)
30 return Response(status=status.HTTP_204_NO_CONTENT)