def payment(request, project_id, task_id): task = Task.objects.get(pk=task_id) sender = Project.objects.get(pk=project_id).user receiver = get_accepted_task_offer(task).offerer if request.method == 'POST': payment = Payment(payer=sender, receiver=receiver, task=task) payment.save() task.status = Task.PAYMENT_SENT # Set task status to payment sent task.save() from django.core import mail from django.contrib.sites.shortcuts import get_current_site current_site = get_current_site(request) # Send mail to both users for leaving review for each other when payment is completed if receiver.user.email: try: with mail.get_connection() as connection: mail.EmailMessage( "Leave a review", "Congratulation on finishing a task!\nLeave a review for how it was working for " + sender.user.username + " here:\n" + "https://" + current_site.domain + "/user/set_review/" + str(sender.user_id), "Agreelancer", [receiver.user.email], connection=connection, ).send() except Exception as e: from django.contrib import messages messages.success( request, 'Sending of email to ' + receiver.user.email + " failed: " + str(e)) if sender.user.email: try: with mail.get_connection() as connection: mail.EmailMessage( "Leave a review", "Congratulation, your task has been finished!\nLeave a review for how it was working with " + receiver.user.username + " here:\n" + "https://" + current_site.domain + "/user/set_review/" + str(receiver.user_id), "Agreelancer", [sender.user.email], connection=connection, ).send() except Exception as e: from django.contrib import messages messages.success( request, 'Sending of email to ' + sender.user.email + " failed: " + str(e)) return redirect('receipt', project_id=project_id, task_id=task_id) form = PaymentForm() return render(request, 'payment/payment.html', { 'form': form, })
def receipt(request, project_id, task_id): project = Project.objects.get(pk=project_id) task = Task.objects.get(pk=task_id) taskoffer = get_accepted_task_offer(task) return render(request, 'payment/receipt.html', { 'project': project, 'task': task, 'taskoffer': taskoffer, })
def receipt(request, project_id, task_id): project = Project.objects.get(pk=project_id) task = Task.objects.get(pk=task_id) taskoffer = get_accepted_task_offer(task) return render( request, "payment/receipt.html", { "project": project, "task": task, "taskoffer": taskoffer, }, )
def get_context_data(self, project_id, task_id, **kwargs): context_data = super().get_context_data(**kwargs) task = Task.objects.get(pk=task_id) project = Project.objects.get(pk=project_id) perms = get_user_task_permissions(self.request.user, task) if not perms['read']: raise Http404 task = Task.objects.get(pk=task_id) context_data.update({ "project": project, "task": task, "taskoffer": get_accepted_task_offer(task), }) return context_data
def payment(request, project_id, task_id): sender = Project.objects.get(pk=project_id).user if request.user is not sender: raise Http404 task = Task.objects.get(pk=task_id) receiver = get_accepted_task_offer(task).offerer if request.method == 'POST': Payment.objects.create(payer=sender, receiver=receiver, task=task) task.status = Task.PAYMENT_SENT task.save() return redirect('receipt', project_id=project_id, task_id=task_id) return render(request, 'payment/payment.html', {'form': PaymentForm()})
def payment(request, project_id, task_id): task = Task.objects.get(pk=task_id) sender = Project.objects.get(pk=project_id).user receiver = get_accepted_task_offer(task).offerer if request.method == "POST": payment = Payment(payer=sender, receiver=receiver, task=task) payment.save() task.status = Task.PAYMENT_SENT # Set task status to payment sent task.save() return redirect("receipt", project_id=project_id, task_id=task_id) form = PaymentForm() return render(request, "payment/payment.html", { "form": form, })