Exemple #1
0
def register(request):
    user = None
    if request.method == 'POST':
        form = UserForm(request.POST)
        print form.is_valid()
        if form.is_valid():
            print 'form passed validation'
            customer = stripe.Customer.create(
                email=form.cleaned_data['email'],
                description=form.cleaned_data['name'],
                card=form.cleaned_data['stripe_token'],
                plan='gold',
            )

            cd = form.cleaned_data

            try:
                user = User.create(cd['name'], cd['email'], cd['password'],
                                   cd['last_4_digits'], customer.id)
            except IntegrityError:
                form.addError(cd['email'] + ' is already a member')
            else:
                request.session['user'] = user.pk
                return HttpResponseRedirect('/')
    else:
        form = UserForm()
    return render_to_response('register.html', {
        'form': form,
        'months': range(1, 12),
        'publishable': settings.STRIPE_PUBLISHABLE,
        'soon': soon(),
        'user': user,
        'years': range(2016, 2036)
    },
                              context_instance=RequestContext(request))
Exemple #2
0
def register(request):
    user = None
    if request.method == 'POST':
        form = UserForm(request.POST)
        print("@@@@@@@@@@@@@@@@@@@@@@@@@@@")
        print(request)
        print("@@@@@@@@@@@@@@@@@@@@@@@@@@@")
        print(form)
        if form.is_valid():
            #update based on your billing method (subscription vs one time)
            customer = stripe.Customer.create(
                email=form.cleaned_data['email'],
                description=form.cleaned_data['name'],
                card=form.cleaned_data['stripe_token'],
                plan="gold",

            )
            # customer = stripe.Charge.create(
            #     description = form.cleaned_data['email'],
            #     card = form.cleaned_data['stripe_token'],
            #     amount="5000",
            #     currency="usd"
            # )

            user = User(
                name=form.cleaned_data['name'],
                email=form.cleaned_data['email'],
                last_4_digits=form.cleaned_data['last_4_digits'],
                stripe_id=customer.id,
            )

            #ensure encrypted password
            user.set_password(form.cleaned_data['password'])

            try:
                user.save()
            except IntegrityError:
                form.addError(user.email + ' is already a member')
            else:
                request.session['user'] = user.pk
                return redirect('/')

    else:
        form = UserForm()


    return render(
        request,
        'register.html',
        {
            'form': form,
            'months': range(1, 12),
            'publishable': settings.STRIPE_PUBLISHABLE,
            'soon': soon(),
            'user': user,
            'years': range(2011, 2036),
        },
    )
Exemple #3
0
def register(request):
    user = None
    if request.method == 'POST':
        form = UserForm(request.POST)
        if form.is_valid():

            #update based on your billing method (subscription vs one time)
            customer = Customer.create(
                email=form.cleaned_data['email'],
                description=form.cleaned_data['name'],
                card=form.cleaned_data['stripe_token'],
                plan="gold",
            )
            # customer = stripe.Charge.create(
            #     description=form.cleaned_data['email'],
            #     card=form.cleaned_data['stripe_token'],
            #     amount="5000",
            #     currency="usd"
            # )

            cd = form.cleaned_data
            from django.db import transaction

            try:
                with transaction.atomic():
                    user = User.create(cd['name'], cd['email'], cd['password'],
                                       cd['last_4_digits'], stripe_id="")

                    if customer:
                        user.stripe_id = customer.id
                        user.save()
                    else:
                        UnpaidUsers(email=cd['email']).save()

            except IntegrityError:
                import traceback
                form.addError(cd['email'] + ' is already a member' +
                              traceback.format_exc())
                user = None
            else:
                request.session['user'] = user.pk
                return HttpResponseRedirect('/')

    else:
        form = UserForm()

    return render_to_response(
        'payments/register.html',
        {
            'form': form,
            'months': list(range(1, 12)),
            'publishable': settings.STRIPE_PUBLISHABLE,
            'soon': soon(),
            'user': user,
            'years': list(range(2011, 2036)),
        },
        context_instance=RequestContext(request)
    )
Exemple #4
0
def register(request):
    user = None
    if request.method == 'POST':
        form = UserForm(request.POST)
        if form.is_valid():
            
            # Update based on billing method
            customer = stripe.Customer.create(
                            email=form.cleaned_data['email'],
                            description=form.cleaned_data['name'],
                            card=form.cleaned_data['stripe_token'],
                            plan="gold",
                        )
#            customer = stripe.Charge.create(
#                            description=form.cleaned_data['email'],
#                            card=form.cleaned_data['stripe_token']
#                            amount="5000",
#                            currency="usd",
#                        )
            user = User(
                        name=form.cleaned_data['name'],
                        email=form.cleaned_data['email'],
                        last_4_digits=form.cleaned_data['last_4_digits'],
                        stripe_id=customer.id,
                        password=form.cleaned_data['password'],
                    )
            
#            user.set_password(form.cleaned_data['password'])
            
            try:
                user.save()
            except IntegrityError:
                form.addError(user.email + 'is already a member')
            else:
                request.session['user'] = user.pk
                return HttpResponseRedirect('/')
    else:
        form = UserForm()
    
    return render_to_response(
                'register.html',
                {
                    'form': form,
                    'months': range(1, 12),
                    'publishable': settings.STRIPE_PUBLISHABLE,
                    'soon': soon(),
                    'user': user,
                    'years': range(2014, 2039),
                },
                context_instance=RequestContext(request),
            )
Exemple #5
0
    def test_user_form_passwords_dont_match_throws_error(self):
        form = UserForm({
            'name': 'jj',
            'email': '*****@*****.**',
            'password': '******',
            'ver_password': '******',  # bad password
            'last_4_digits': '3333',
            'stripe_token': '1'
        })

        # Is the data valid?
        self.assertFalse(form.is_valid())
Exemple #6
0
 def test_user_form_passwords_match(self):
     form = UserForm({
         'name': 'jj',
         'email': '*****@*****.**',
         'password': '******',
         'ver_password': '******',
         'last_4_digits': '3333',
         'stripe_token': '1'
     })
     # Is the data valid?
     if form.is_valid():
         # Is the data clean?
         self.assertTrue(form.cleaned_data)
Exemple #7
0
    def test_user_form_passwords_match(self):
        form = UserForm({
            'name': 'jj',
            'email': '*****@*****.**',
            'password': '******',
            'ver_password': '******',
            'last_4_digits': '3333',
            'stripe_token': '1'
        })

        self.assertTrue(form.is_valid())
        #this will throw an error if it doesn't clean correctly
        self.assertIsNotNone(form.clean())
Exemple #8
0
 def setUpClass(cls):
     html = render_to_response(
         'register.html', {
             'form': UserForm(),
             'months': range(1, 12),
             'publishable': settings.STRIPE_PUBLISHABLE,
             'soon': soon(),
             'user': None,
             'years': range(2011, 2036),
         })
     ViewTesterMixin.setupViewTester(
         '/register',
         register,
         html.content,
     )
Exemple #9
0
    def test_user_form_passwords_dont_match_throws_error(self):
        form = UserForm({
            'name': 'jj',
            'email': '*****@*****.**',
            'password': '******',
            'ver_password': '******',
            'last_4_digits': '3333',
            'stripe_token': '1'
        })

        self.assertFalse(form.is_valid())

        from django import forms
        self.assertRaisesMessage(forms.ValidationError,
                                 "Passwords do not match", form.clean)
Exemple #10
0
    def test_user_form_passwords_match(self):
        form = UserForm({
            'name': 'jjj',
            'email': '*****@*****.**',
            'password': '******',
            'ver_password': '******',
            'last_4_digits': '3333',
            'stripe_token': '1'
        })

        # Is the data valid? -- if not print out the errors
        self.assertTrue(form.is_valid(), form.errors)

        # This will throw  an error if the form doesn't clean correctly
        self.assertIsNotNone(form.clean())
def post_user(request):
    form = UserForm(request.data)

    if form.is_valid():
        try:
            # update based on your billing method (subscription vs one time)
            customer = Customer.create(
                "subscription",
                email=form.cleaned_data['email'],
                description=form.cleaned_data['name'],
                card=form.cleaned_data['stripe_token'],
                plan="gold",
            )
        except Exception as exp:
            form.addError(exp)

        cd = form.cleaned_data
        try:
            with transaction.atomic():
                user = User.create(cd['name'],
                                   cd['email'],
                                   cd['password'],
                                   cd['last_4_digits'],
                                   stripe_id='')

                if customer:
                    user.stripe_id = customer.id
                    user.save()
                else:
                    UnpaidUsers(email=cd['email']).save()

        except IntegrityError:
            form.addError(cd['email'] + ' is already a member')
        else:
            request.session['user'] = user.pk
            resp = {"status": "ok", "url": '/'}
            return Response(resp, content_type="application/json")

        resp = {"status": "fail", "errors": form.non_field_errors()}
        return Response(resp)
    else:  # for not valid
        resp = {"status": "form-invalid", "errors": form.errors}
        return Response(resp)
Exemple #12
0
def register(request):
    user = None
    if request.method == 'POST':
        # We only talk AJAX posts now
        if not request.is_ajax():
            return HttpResponseBadRequest("I only speak AJAX nowadays")

        data = json.loads(request.body.decode())
        form = UserForm(data)

        if form.is_valid():
            try:
                customer = Customer.create(
                    "subscription",
                    email=form.cleaned_data['email'],
                    description=form.cleaned_data['name'],
                    card=form.cleaned_data['stripe_token'],
                    plan="gold",
                )
            except Exception as exp:
                form.addError(exp)

            cd = form.cleaned_data
            try:
                with transaction.atomic():
                    user = User.create(cd['name'],
                                       cd['email'],
                                       cd['password'],
                                       cd['last_4_digits'],
                                       stripe_id="")

                    if customer:
                        user.stripe_id = customer.id
                        user.save()
                    else:
                        UnpaidUsers(email=cd['email']).save()

            except IntegrityError:
                resp = json.dumps({
                    "status":
                    "fail",
                    "errors":
                    cd['email'] + ' is already a member'
                })
            else:
                request.session['user'] = user.pk
                resp = json.dumps({"status": "ok", "url": '/'})

            return HttpResponse(resp, content_type="application/json")
        else:  # form not valid
            resp = json.dumps({
                "status": "form-invalid",
                "errors": form.errors
            })
            return HttpResponse(resp, content_type="application/json")

    else:
        form = UserForm()

    return render_to_response('payments/register.html', {
        'form': form,
        'months': list(range(1, 12)),
        'publishable': settings.STRIPE_PUBLISHABLE,
        'soon': soon(),
        'user': user,
        'years': list(range(2011, 2036)),
    },
                              context_instance=RequestContext(request))