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