X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=apps%2Fpatchwork%2Fforms.py;h=18c6a5ef0aa30c0f5d9ba204370f4b410a8eb776;hb=aec7cf5771cd3244e024aada3b51a3d58b1af2f0;hp=a758d462359a8502fc4b401c3198a2dce001af8b;hpb=b380ba16729575348579f1d62ca066dd4ed1b73c;p=patchwork diff --git a/apps/patchwork/forms.py b/apps/patchwork/forms.py index a758d46..18c6a5e 100644 --- a/apps/patchwork/forms.py +++ b/apps/patchwork/forms.py @@ -21,48 +21,33 @@ from django.contrib.auth.models import User from django import forms -from patchwork.models import RegistrationRequest, Patch, State, Bundle, \ - UserProfile - -class RegisterForm(forms.ModelForm): - password = forms.CharField(widget = forms.PasswordInput) - email = forms.EmailField(max_length = 200) - - class Meta: - model = RegistrationRequest - exclude = ['key', 'active', 'date'] - - def clean_email(self): - value = self.cleaned_data['email'] - try: - User.objects.get(email = value) - raise forms.ValidationError(('The email address %s has ' + - 'has already been registered') % value) - except User.DoesNotExist: - pass - try: - RegistrationRequest.objects.get(email = value) - raise forms.ValidationError(('The email address %s has ' + - 'has already been registered') % value) - except RegistrationRequest.DoesNotExist: - pass - return value - - def clean_username(self): - value = self.cleaned_data['username'] - try: - User.objects.get(username = value) - raise forms.ValidationError(('The username %s has ' + - 'has already been registered') % value) - except User.DoesNotExist: - pass - try: - RegistrationRequest.objects.get(username = value) - raise forms.ValidationError(('The username %s has ' + - 'has already been registered') % value) - except RegistrationRequest.DoesNotExist: - pass - return value +from patchwork.models import Patch, State, Bundle, UserProfile +from registration.forms import RegistrationFormUniqueEmail +from registration.models import RegistrationProfile + +class RegistrationForm(RegistrationFormUniqueEmail): + first_name = forms.CharField(max_length = 30, required = False) + last_name = forms.CharField(max_length = 30, required = False) + username = forms.CharField(max_length=30, label=u'Username') + email = forms.EmailField(max_length=100, label=u'Email address') + password = forms.CharField(widget=forms.PasswordInput(), + label='Password') + password1 = forms.BooleanField(required = False) + password2 = forms.BooleanField(required = False) + + def save(self, profile_callback = None): + user = RegistrationProfile.objects.create_inactive_user( \ + username = self.cleaned_data['username'], + password = self.cleaned_data['password'], + email = self.cleaned_data['email'], + profile_callback = profile_callback) + user.first_name = self.cleaned_data.get('first_name', '') + user.last_name = self.cleaned_data.get('last_name', '') + user.save() + return user + + def clean(self): + return self.cleaned_data class LoginForm(forms.Form): username = forms.CharField(max_length = 30) @@ -106,7 +91,7 @@ class PatchForm(forms.ModelForm): if not project: raise Exception("meep") super(PatchForm, self).__init__(instance = instance, *args, **kwargs) - self.fields['delegate'] = DelegateField(project) + self.fields['delegate'] = DelegateField(project, required = False) class Meta: model = Patch