def check_booking_activity(sender, **kwargs): event = kwargs.get('event') print(event.may_create_proposal()) if event.may_create_proposal(): try: with transaction.atomic(): proposal = Proposal.objects.create_proposal_from_external_source( event=event) if proposal in Proposal.objects.ERRORS: raise RuntimeError() all_requests = event.get_requests() proposal.create_items_from_requests(all_requests) if event.may_send_proposal(): task_send_proposal(proposal=proposal) task_send_booking_nt_to_business(event=event) except Exception as e: print(e) pass
def finish_send_proposal(request, *args, **kwargs): user = request.user business = Business.objects.get_business_by_user(user=user) proposal = Proposal.objects.get_by_id(id=kwargs.get('id_proposal'), business=business) response = task_send_proposal(proposal) if response == OK: messages.success(request, "El correo ha sido enviado satisfactoriamente") else: messages.error(request, "Lo sentimos, ocurrio un error al enviar su correo. Intente de nuevo") return HttpResponseRedirect(redirect_to=reverse('proposal_list'))
def post(self, request, *arg, **kwargs): if not check_permission(request=request, permission='mail_proposal'): return HttpResponseRedirect(redirect_to=reverse('login')) id = kwargs.get('id') user = request.user business = Business.objects.get_business_by_user(user=user) proposal = Proposal.objects.get_by_id(id=id, business=business) if proposal in Proposal.objects.ERRORS or not proposal.may_send_email(): return HttpResponse(status=404) response = task_send_proposal(proposal) if response == OK: return JsonResponse(status=200, data={}) else: return JsonResponse(status=500, data={})
def post(self, request, *arg, **kwargs): if not check_permission(request=request, permission='mail_proposal'): return HttpResponse(status=401) id = kwargs.get('id') user = request.user business = Business.objects.get_business_by_user(user=user) proposal = Proposal.objects.get_by_id(id=id, business=business) proposal.event.accepted() if proposal in Proposal.objects.ERRORS or not proposal.may_send_email(): return HttpResponse(status=404) old_status = proposal.status proposal.prepare_to_send() response = task_send_proposal(proposal, old_status=old_status) if response == OK: return JsonResponse(status=200, data=proposal.serialize(), safe=False) else: return JsonResponse(status=500, data={})