67 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			2.7 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| __author__ = 'tomislav'
 | |
| from django import forms
 | |
| from django.utils.translation import ugettext_lazy as _
 | |
| from django.contrib.auth import authenticate
 | |
| 
 | |
| from .models import CreditCards
 | |
| 
 | |
| from utils.forms import SignupFormMixin
 | |
| 
 | |
| 
 | |
| class LoginForm(forms.Form):
 | |
|     email = forms.EmailField(label="Email address", max_length=50,
 | |
|                              widget=forms.TextInput(
 | |
|                                  attrs={'class': 'form-control', 'placeholder': 'Enter email'}))
 | |
|     password = forms.CharField(label='Password', max_length=50,
 | |
|                                widget=forms.TextInput(
 | |
|                                    attrs={'class': 'form-control', 'placeholder': 'Password',
 | |
|                                           'type': 'password'}))
 | |
| 
 | |
|     def clean(self):
 | |
|         email = self.cleaned_data.get('email')
 | |
|         password = self.cleaned_data.get('password')
 | |
|         user = authenticate(email=email, password=password)
 | |
|         if not user:
 | |
|             raise forms.ValidationError("Sorry, that login was invalid. Please try again.")
 | |
|         return self.cleaned_data
 | |
| 
 | |
|     def login(self, request):
 | |
|         username = self.cleaned_data.get('email')
 | |
|         password = self.cleaned_data.get('password')
 | |
|         user = authenticate(email=username, password=password)
 | |
|         return user
 | |
| 
 | |
| 
 | |
| class RegisterForm(SignupFormMixin):
 | |
|     password = forms.CharField(widget=forms.PasswordInput())
 | |
|     confirm_password = forms.CharField(widget=forms.PasswordInput())
 | |
| 
 | |
| 
 | |
| class PaymentForm(forms.ModelForm):
 | |
|     class Meta:
 | |
|         model = CreditCards
 | |
|         fields = ('name', 'card_number', 'expiry_date', 'ccv', 'user_id')
 | |
|         labels = {'name': _('Name'), 'card_number': _('Card number'), 'expiry_date': _('Expiry date'),
 | |
|                   'ccv': _('CCV')}
 | |
|         exclude = ('user_id', 'payment_type')
 | |
|         widgets = {
 | |
|             'name': forms.TextInput(
 | |
|                 attrs={'class': 'form-control', "placeholder": "Enter name on card",
 | |
|                        'placeholder': 'Enter name on card'}),
 | |
|             'card_number': forms.TextInput(
 | |
|                 attrs={'class': 'form-control', 'placeholder': 'Card Number', 'data-stripe': 'number'}),
 | |
|             'expiry_date': forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'MM/YYYY'}),
 | |
|             'ccv': forms.TextInput(
 | |
|                 attrs={'class': 'form-control', 'placeholder': 'CCV', 'data-stripe': 'cvc'})}
 | |
| 
 | |
|     def clean(self):
 | |
|         data = self.cleaned_data
 | |
| 
 | |
|         # if CreditCards.objects.filter(card_number=data.get("card_number")):
 | |
|         #     raise forms.ValidationError({'card_number': _('Credit card is used before.')})
 | |
|         return data
 | |
| 
 | |
|     def save(self, user_id):
 | |
|         self.instance.user_id = user_id
 | |
|         self.instance.user_id_id = user_id.id
 | |
|         super(PaymentForm, self).save()
 |