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))
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), }, )
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) )
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), )
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())
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)
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())
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, )
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)
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)
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))