Exemple #1
0
    def process_response(self, request, data, gateway):
        txnid = gateway.get_txn_id_from_response_data(data)
        txn = self.get_txn(txnid)
        txn.response_data = json.dumps(data)
        txn.save()

        if not gateway.verify_response(data, txn):
            txn.status = PGTransaction.TS_ERROR
        else:
            gateway.update_txn(data, txn)
        txn.save()
        user = User.objects.get(email=txn.email)
        person = Person.objects.get(user=user)
        context = {'txn': txn, 'person': person}
        txn.content_object.on_payment_response(txn)
        txn.content_object.populate_context(context)
        if txn.status == PGTransaction.TS_SUCCESS:
            subject = 'Thank you!'
            email_context = {'amount': txn.amount, 'name': person.name()}
            #Send email to donor
            send_email_from_template('emails/fcra_thank_you.html',
                                     email_context, subject, txn.email)
            user = User.objects.get(email=txn.email)
            donor = Person.objects.get(user=user)
            donation = FCRADonation.objects.get(donor=donor,
                                                amount=txn.amount,
                                                receipt_sent=False)
            self.mail_receipt(donation)
            donation.receipt_sent = True
            donation.save()

        return render(request, self.template_name, context)
 def post(self, request, *args, **kwargs):
     valid_extensions = ['.jpg', '.png', '.svg', '.jpeg']
     images = []
     project = Project(author=request.user)
     id = kwargs.get('id', None)
     if id:
         project = Project.objects.get(id=id)
     form_data = ProjectForm(request.POST, request.FILES, instance=project)
     if form_data.is_valid():
         form_data.save()
         if request.FILES.get('project_image', ''):
             images = request.FILES.getlist('project_image')
             for i in images:
                 extension = os.path.splitext(request.FILES['project_image'].name)[1]
                 if not any(extension.lower() in s for s in valid_extensions):
                     error = "Please upload only jpg, png, svg, or jpeg"
                 else:
                     project_image = ProjectImage.objects.create(project=project, image=i)
                     print 'Finished uploading images'
         response = {'success': 'true', 'project_id': project.id}
         if self.mode == 'create':
             #Send email to author of the project
             subject = '[NITW Crowdfund] Your campaign is live!'
             context = {'project': project, 'request': request}
             send_email_from_template('emails/project_created_author.html', context, subject, project.author.email)
         return HttpResponseRedirect(reverse('view project', kwargs={'id': project.id}))
     else:
         response = {'success': 'false', 'errors': form_data.errors}
         print '**********success = false**********'
         print form_data.errors
         print '**********success = false /end**********'
         return HttpResponse(json.dumps(response), content_type="application/json")
    def post(self, request, *args, **kwargs):
        working_key = "vsb2w5ampye1baft0hg62jlwrscw007u"
        merchant_id = "M_thelaksh_10884"

        form = CCAVenueReturnForm(merchant_id, working_key, request.POST)
        if not form.is_valid():
            return redirect("payment-failure")
        if form.cleaned_data['AuthDesc'] == 'N':
            return redirect("payment-failure")

        try:
            temp_id = request.POST.get("Order_Id")
            # print temp_id
            paymentTemp = PaymentTemp.objects.get(id=temp_id)
            pledge = Pledge.objects.get(id=paymentTemp.pledge_id)
            pledge.pledge_fulfilled = True
            pledge.save()
            # print "Pledge [" + str(pledge.id) + "] has been successfully fulfilled"
            subject = '[NITW Crowdfund] Pledge Fulfilled!'
            context = {'pledge': pledge}
            #Send email to backer
            send_email_from_template('emails/pledge_fulfilled_backer.html', context, subject, pledge.user.email)
            return redirect("/crowdfunding/project/" + str(pledge.project.id))
        except (PaymentTemp.DoesNotExist, Pledge.DoesNotExist):
            print "Error: Shouldn't have come here. PaymentTemp or Pledge record is missing"
            return redirect("payment-success")
        
        return redirect("/crowdfunding/project/" + str(pledge.project.id))
Exemple #4
0
    def process_response(self, request, data, gateway):
        txnid = gateway.get_txn_id_from_response_data(data)
        txn = self.get_txn(txnid)
        txn.response_data = json.dumps(data)
        txn.save()

        if not gateway.verify_response(data, txn):
            txn.status = PGTransaction.TS_ERROR
        else:
            gateway.update_txn(data, txn)
        txn.save()
        user = User.objects.get(email=txn.email)
        person = Person.objects.get(user=user)
        context = {'txn': txn, 'person': person}
        txn.content_object.on_payment_response(txn)
        txn.content_object.populate_context(context)
        if txn.status == PGTransaction.TS_SUCCESS:
            subject = 'Thank you!'
            email_context = {'amount': txn.amount, 'name': person.name()}
            #Send email to donor
            send_email_from_template('emails/fcra_thank_you.html', email_context, subject, txn.email)
            user = User.objects.get(email=txn.email)
            donor = Person.objects.get(user=user)
            donation = FCRADonation.objects.get(donor=donor, amount=txn.amount, receipt_sent=False)
            self.mail_receipt(donation)
            donation.receipt_sent = True
            donation.save()

        return render(request, self.template_name, context)
Exemple #5
0
    def post(self, request, *args, **kwargs):
        working_key = settings.CCAVENUE_WORKING_KEY
        merchant_id = settings.CCAVENUE_MERCHANT_ID

        form = CCAVenueReturnForm(merchant_id, working_key, request.POST)
        if not form.is_valid():
            return redirect("payment-failure")
        if form.cleaned_data['AuthDesc'] == 'N':
            return redirect("payment-failure")

        try:
            temp_id = request.POST.get("Order_Id")
            # print temp_id
            paymentTemp = PaymentTemp.objects.get(id=temp_id)
            pledge = Pledge.objects.get(id=paymentTemp.pledge_id)
            pledge.pledge_fulfilled = True
            pledge.save()
            # print "Pledge [" + str(pledge.id) + "] has been successfully fulfilled"
            subject = '[NITW Crowdfund] Pledge Fulfilled!'
            context = {'pledge': pledge}
            #Send email to backer
            send_email_from_template('emails/pledge_fulfilled_backer.html',
                                     context, subject, pledge.user.email)
            return redirect("/crowdfunding/project/" + str(pledge.project.id))
        except (PaymentTemp.DoesNotExist, Pledge.DoesNotExist):
            print "Error: Shouldn't have come here. PaymentTemp or Pledge record is missing"
            return redirect("payment-success")

        return redirect("/crowdfunding/project/" + str(pledge.project.id))
    def post(self, request, **kwargs):
        amount, user, project, errors = self.get_params(request)
        if errors:
            response = {'success': 'false', 'errors': errors}
        else:
            if Pledge.objects.filter(user=user, project=project).exists():
                #Since a user cannot create multiple pledges for a project, we assume he is editing his current pledge.
                pledge = Pledge.objects.filter(user=user, project=project).first()
                pledge.amount = amount
                pledge.save()
            else:
                pledge = Pledge.objects.create(user=user, amount=amount, project=project)
            response = {'success': 'true'}
            subject = '[NITW Crowdfund] Thank you for pledging!'
            context = {'pledge': pledge, 'request': request}
            #Send email to backer
            send_email_from_template('emails/pledge_created_backer.html', context, subject, pledge.user.email)
            #Send email to author
            subject = '[NITW Crowdfund] New pledge!'
            send_email_from_template('emails/pledge_created_author.html', context, subject, pledge.project.author.email)
            if pledge.project.get_total_pledged_amount() >= pledge.project.goal:
                context = {'project': project, 'request': request}
                subject = '[NITW Crowdfund] Campaign Successfully Funded!'
                send_email_from_template('emails/campaign_successful_author.html', context, subject, pledge.project.author.email)

        return HttpResponse(json.dumps(response), content_type="application/json")
Exemple #7
0
 def post(self, request, *args, **kwargs):
     valid_extensions = ['.jpg', '.png', '.svg', '.jpeg']
     images = []
     project = Project(author=request.user)
     id = kwargs.get('id', None)
     if id:
         project = Project.objects.get(id=id)
     form_data = ProjectForm(request.POST, request.FILES, instance=project)
     if form_data.is_valid():
         form_data.save()
         if request.FILES.get('project_image', ''):
             images = request.FILES.getlist('project_image')
             for i in images:
                 extension = os.path.splitext(
                     request.FILES['project_image'].name)[1]
                 if not any(extension.lower() in s
                            for s in valid_extensions):
                     error = "Please upload only jpg, png, svg, or jpeg"
                 else:
                     project_image = ProjectImage.objects.create(
                         project=project, image=i)
                     print 'Finished uploading images'
         response = {'success': 'true', 'project_id': project.id}
         if self.mode == 'create':
             #Send email to author of the project
             subject = '[NITW Crowdfund] Your campaign is live!'
             context = {'project': project, 'request': request}
             send_email_from_template('emails/project_created_author.html',
                                      context, subject,
                                      project.author.email)
         return HttpResponseRedirect(
             reverse('view project', kwargs={'id': project.id}))
     else:
         response = {'success': 'false', 'errors': form_data.errors}
         print '**********success = false**********'
         print form_data.errors
         print '**********success = false /end**********'
         return HttpResponse(json.dumps(response),
                             content_type="application/json")
Exemple #8
0
    def post(self, request, **kwargs):
        amount, user, project, errors = self.get_params(request)
        if errors:
            response = {'success': 'false', 'errors': errors}
        else:
            if Pledge.objects.filter(user=user, project=project).exists():
                #Since a user cannot create multiple pledges for a project, we assume he is editing his current pledge.
                pledge = Pledge.objects.filter(user=user,
                                               project=project).first()
                pledge.amount = amount
                pledge.save()
            else:
                pledge = Pledge.objects.create(user=user,
                                               amount=amount,
                                               project=project)
            response = {'success': 'true'}
            subject = '[NITW Crowdfund] Thank you for pledging!'
            context = {'pledge': pledge, 'request': request}
            #Send email to backer
            send_email_from_template('emails/pledge_created_backer.html',
                                     context, subject, pledge.user.email)
            #Send email to author
            subject = '[NITW Crowdfund] New pledge!'
            send_email_from_template('emails/pledge_created_author.html',
                                     context, subject,
                                     pledge.project.author.email)
            if pledge.project.get_total_pledged_amount(
            ) >= pledge.project.goal:
                context = {'project': project, 'request': request}
                subject = '[NITW Crowdfund] Campaign Successfully Funded!'
                send_email_from_template(
                    'emails/campaign_successful_author.html', context, subject,
                    pledge.project.author.email)

        return HttpResponse(json.dumps(response),
                            content_type="application/json")