def post(self, request, format=None): client = self.get_object(request.user) serializer = CastingRequestTalentCreateSerializer(data=request.data, many=True) if serializer.is_valid(): new_crt_ids = [] for casting_request_talent_data in serializer.validated_data: new_casting_request_talent = CastingRequestTalent( **casting_request_talent_data) new_casting_request_talent.save() client_user = new_casting_request_talent.casting_request.client.user talent_user = new_casting_request_talent.talent.user UserNoteManager.casting_request_talent_logger( None, client_user, talent_user, '{client} added talent {talent} into casting reqeust.'. format(client=client_user.first_name, talent=talent_user.first_name, casting_request=new_casting_request_talent. casting_request.id), new_casting_request_talent) new_crt_ids.append(new_casting_request_talent.id) new_casting_request_talents = CastingRequestTalent.objects.all( ).filter(id__in=new_crt_ids) new_serializer = CastingRequestTalentSerializer( new_casting_request_talents, many=True) return Response(new_serializer.data, status=status.HTTP_201_CREATED) return Response({'error': serializer.errors}, status=status.HTTP_400_BAD_REQUEST)
def put(self, request, pk, format=None): casting_request = self.get_object(pk) serializer = CastingRequestSetStatusSerializer(casting_request, data=request.data) if serializer.is_valid(): casting_request.status = request.data['status'] casting_request.status_updated_date = request.data[ 'status_updated_date'] casting_request.save() agency_user = request.user if agency_user: client_user = casting_request.client.user status = casting_request.status if status == 'Requested': note = '{client_user} requested.'.format( client_user=client_user.first_name) elif status == 'Reviewing': note = 'Reviewing' elif status == 'In Progress': note = 'Contracted to confirm request.' elif status == 'Accepted.': note = 'Accepted' elif status == 'Declined.': note = 'Declined' elif status == 'Canceled.': note = '{client_user} canceled.'.format( client_user=client_user) elif status == 'Completed': note = 'Completed.' UserNoteManager.casting_request_logger(agency_user.first_name, client_user, client_user, note, casting_request) casting_request_talents = CastingRequestTalent.objects.filter( casting_request=casting_request) if len(casting_request_talents) > 0: for casting_request_talent in casting_request_talents: talent_user = casting_request_talent.talent.user UserNoteManager.casting_request_talent_logger( agency_user.first_name, client_user, talent_user, note, casting_request_talent) new_serializer = CastingRequestDetailSerializer(casting_request) return Response(new_serializer.data) # serializer.save() # return Response(serializer.data) return Response({'error': serializer.errors}, status=status.HTTP_400_BAD_REQUEST)
def delete(self, request, pk, format=None): casting_request_talent = self.get_object(pk) casting_request_talent.delete() client_user = casting_request_talent.casting_request.client.user talent_user = casting_request_talent.talent.user UserNoteManager.casting_request_talent_logger( None, client_user, talent_user, '{client} removed talent {talent} from casting reqeust.'.format( client=client_user.first_name, talent=talent_user.first_name), casting_request_talent) return Response({'id': int(pk)}, status=status.HTTP_200_OK)
def put(self, request, pk, format=None): casting_request_talent = self.get_object(pk) serializer = CastingRequestTalentSerializer(casting_request_talent, data=request.data) if serializer.is_valid(): serializer.save() client_user = casting_request_talent.casting_request.client.user talent_user = casting_request_talent.talent.user UserNoteManager.casting_request_talent_logger( None, client_user, talent_user, '{client} updated status of talent {talent} in casting reqeust.' .format(client=client_user.first_name, talent=talent_user.first_name), casting_request_talent) return Response(serializer.data) return Response({'error': serializer.errors}, status=status.HTTP_400_BAD_REQUEST)