Hide keyboard shortcuts

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 

6 

7from policorp.serializers import AvailabilitySerializer 

8from policorp.permissions import IsLocationSupervisor 

9from policorp.models import Availability 

10 

11 

12class AvailabilityView(APIView): 

13 http_method_names = ['delete'] 

14 permission_classes = [IsLocationSupervisor] 

15 

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 

23 

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)