Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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)