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