Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class CreateQuoteUserForm(forms.Form):
- user = forms.CharField(label='Select User', max_length=100,
- widget=forms.Select(choices=USER_CHOICES), required=False)
- email = forms.EmailField(label='Email', required=False)
- first_name = forms.CharField(label='First Name', max_length=100, required=False)
- last_name = forms.CharField(label='Last Name', max_length=100, required=False)
- postal_code = forms.CharField(label=_("Postal Code"), max_length=10)
- def clean(self):
- if not self.cleaned_data['user'] and not self.cleaned_data['email']:
- raise forms.ValidationError("You need to either select an existing user or enter an email address.")
- return self.cleaned_data
- def clean_email(self):
- # TODO: should we through a validation error if this email is already
- # in use?
- return self.cleaned_data['email']
- def save(self, created_by):
- """
- """
- quote = Quote()
- quote.created_by = created_by
- if self.cleaned_data['user']:
- user_profile = UserProfile.objects.get(pk=self.cleaned_data['user'])
- else:
- try:
- user_profile = UserProfile.objects.get(user__email=self.cleaned_data['email']).get_profile()
- # TODO - what should we do if user's email is already in use
- except:
- logging.debug("Need to create a new user")
- #create new user
- user = User()
- user.username = self.cleaned_data['email']
- user.email = self.cleaned_data['email']
- user.first_name = self.cleaned_data['first_name']
- user.last_name = self.cleaned_data['last_name']
- user.save()
- shipping_address = Address()
- shipping_address.postal_code = self.cleaned_data['postal_code']
- shipping_address.save()
- quote.user_profile = user.get_profile()
- quote.user_profile.shipping_address = shipping_address
- quote.save()
- return quote
Add Comment
Please, Sign In to add comment