Merge pull request #384 from Gluejar/fix_optional_token

Fix optional token
pull/1/head
Raymond Yee 2014-09-29 13:22:49 -07:00
commit 0ddbdbc944
2 changed files with 23 additions and 10 deletions

View File

@ -645,10 +645,10 @@ class CampaignPledgeForm(forms.Form):
raise forms.ValidationError(_("Sorry, you must pledge at least $%s to select that premium." % (self.premium.amount)))
return self.cleaned_data
class PlainCCForm(forms.Form):
stripe_token = forms.CharField(required=False, widget=forms.HiddenInput())
class TokenCCMixin(forms.Form):
stripe_token = forms.CharField(required=True, widget=forms.HiddenInput())
class BaseCCForm(PlainCCForm):
class BaseCCMixin(forms.Form):
work_id = forms.IntegerField(required=False, widget=forms.HiddenInput())
preapproval_amount= forms.DecimalField(
required=False,
@ -657,12 +657,23 @@ class BaseCCForm(PlainCCForm):
decimal_places=2,
label="Amount",
)
class UserCCMixin(forms.Form):
username = forms.CharField(max_length=30, required=True, widget=forms.HiddenInput())
class PlainCCForm(TokenCCMixin, forms.Form):
pass
class BaseCCForm(BaseCCMixin, TokenCCMixin, forms.Form):
pass
class AnonCCForm(BaseCCForm):
email = forms.CharField(max_length=30, required=False, widget=forms.TextInput())
class CCForm(BaseCCForm):
username = forms.CharField(max_length=30, required=True, widget=forms.HiddenInput())
class CCForm(UserCCMixin, BaseCCForm):
pass
class AccountCCForm( BaseCCMixin, UserCCMixin, forms.Form):
pass
class DonateForm(forms.Form):
preapproval_amount = forms.DecimalField( widget=forms.HiddenInput() )

View File

@ -108,6 +108,7 @@ from regluit.frontend.forms import (
getTransferCreditForm,
CCForm,
AnonCCForm,
AccountCCForm,
CloneCampaignForm,
PlainCCForm,
WorkForm,
@ -1285,6 +1286,8 @@ class FundView(FormView):
def get_form_class(self):
if self.request.user.is_anonymous():
return AnonCCForm
elif self.request.user.profile.account:
return AccountCCForm
else:
return CCForm
@ -1304,18 +1307,17 @@ class FundView(FormView):
if kwargs.has_key('data'):
data = kwargs['data'].copy()
kwargs['data'] = data
else:
data = {}
kwargs['initial'] = data
data.update(
{'preapproval_amount':self.transaction.needed_amount,
'username':self.request.user.username if self.request.user.is_authenticated else None,
'work_id':self.transaction.campaign.work.id,
'title':self.transaction.campaign.work.title}
)
kwargs['data'] = data
)
return kwargs
def get_context_data(self, **kwargs):
@ -1336,7 +1338,7 @@ class FundView(FormView):
def form_valid(self, form):
p = PaymentManager()
stripe_token = form.cleaned_data["stripe_token"]
stripe_token = form.cleaned_data.get("stripe_token", None)
self.transaction.host = settings.PAYMENT_PROCESSOR
return_url = "%s?tid=%s" % (reverse('pledge_complete'),self.transaction.id)