| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- from django import forms
- from django.core import validators
- from django.db.models import get_model
- from django.utils.translation import ugettext_lazy as _
-
- from oscar.apps.customer.forms import EmailUserCreationForm, CommonPasswordValidator
- from oscar.core.compat import get_user_model
-
- User = get_user_model()
- Partner = get_model('partner', 'Partner')
- PartnerAddress = get_model('partner', 'PartnerAddress')
-
-
- class PartnerSearchForm(forms.Form):
- name = forms.CharField(required=False, label=_("Partner name"))
-
-
- class PartnerCreateForm(forms.ModelForm):
- class Meta:
- model = Partner
- fields = ('name',)
-
-
- class NewUserForm(EmailUserCreationForm):
-
- def __init__(self, partner, *args, **kwargs):
- self.partner = partner
- super(NewUserForm, self).__init__(host=None, *args, **kwargs)
-
- def save(self):
- user = super(NewUserForm, self).save(commit=False)
- user.is_staff = True
- user.save()
- self.partner.users.add(user)
- return user
-
- class Meta:
- model = User
- fields = ('first_name', 'last_name', 'email', 'password1', 'password2')
-
-
- class ExistingUserForm(forms.ModelForm):
- """
- Slightly different form that makes
- * makes saving password optional
- * doesn't regenerate username
- * doesn't allow changing email till #668 is resolved
- """
- password1 = forms.CharField(
- label=_('Password'),
- widget=forms.PasswordInput,
- required=False,
- validators=[validators.MinLengthValidator(6),
- CommonPasswordValidator()])
- password2 = forms.CharField(
- required=False,
- label=_('Confirm Password'),
- widget=forms.PasswordInput)
-
- def clean_password2(self):
- password1 = self.cleaned_data.get('password1', '')
- password2 = self.cleaned_data.get('password2', '')
-
- if password1 != password2:
- raise forms.ValidationError(_("The two password fields didn't match."))
- return password2
-
- def save(self, commit=True):
- user = super(ExistingUserForm, self).save(commit=False)
- if self.cleaned_data['password1']:
- user.set_password(self.cleaned_data['password1'])
- if commit:
- user.save()
- return user
-
- class Meta:
- model = User
- fields = ('first_name', 'last_name', 'password1', 'password2')
-
-
- class UserEmailForm(forms.Form):
- # We use a CharField so that a partial email address can be entered
- email = forms.CharField(
- label=_("Email address"), max_length=100)
-
-
- class PartnerAddressForm(forms.ModelForm):
-
- class Meta:
- fields = ('line1', 'line2', 'line3', 'line4',
- 'state', 'postcode', 'country')
- model = PartnerAddress
|