51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
from django import forms
|
|
from django.utils.translation import ugettext_lazy as _
|
|
|
|
|
|
from utils.forms import LoginFormMixin, SignupFormMixin, BillingAddressForm
|
|
from utils.models import BillingAddress
|
|
|
|
from .models import Donation, DonatorStatus
|
|
|
|
|
|
class LoginForm(LoginFormMixin):
|
|
email = forms.CharField(widget=forms.EmailInput())
|
|
password = forms.CharField(widget=forms.PasswordInput())
|
|
|
|
|
|
class SignupForm(SignupFormMixin):
|
|
confirm_password = forms.CharField(widget=forms.PasswordInput())
|
|
password = forms.CharField(widget=forms.PasswordInput())
|
|
|
|
|
|
class DonationForm(forms.ModelForm):
|
|
|
|
class Meta:
|
|
model = Donation
|
|
fields = ['donation', 'donator', 'billing_address',
|
|
'last4', 'cc_brand', 'stripe_charge_id']
|
|
|
|
def save(self, commit=True):
|
|
instance = super(DonationForm, self).save(commit=False)
|
|
|
|
if commit:
|
|
DonatorStatus.create(self.cleaned_data['donator'].user)
|
|
instance.save()
|
|
|
|
return instance
|
|
|
|
|
|
class DonationBillingForm(BillingAddressForm):
|
|
token = forms.CharField(widget=forms.HiddenInput())
|
|
donation_amount = forms.FloatField(widget=forms.TextInput(attrs={'placeholder': 'Amount'}))
|
|
|
|
class Meta:
|
|
model = BillingAddress
|
|
fields = ['donation_amount', 'street_address', 'city', 'postal_code', 'country']
|
|
labels = {
|
|
'amount': _('Amount'),
|
|
'street_address': _('Street Address'),
|
|
'city': _('City'),
|
|
'postal_code': _('Postal Code'),
|
|
'Country': _('Country'),
|
|
}
|