dynamicweb/nosystemd/forms.py

52 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'),
}