Guest User

Untitled

a guest
Nov 24th, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. class CreateQuoteUserForm(forms.Form):
  2. user = forms.CharField(label='Select User', max_length=100,
  3. widget=forms.Select(choices=USER_CHOICES), required=False)
  4. email = forms.EmailField(label='Email', required=False)
  5. first_name = forms.CharField(label='First Name', max_length=100, required=False)
  6. last_name = forms.CharField(label='Last Name', max_length=100, required=False)
  7. postal_code = forms.CharField(label=_("Postal Code"), max_length=10)
  8.  
  9. def clean(self):
  10. if not self.cleaned_data['user'] and not self.cleaned_data['email']:
  11. raise forms.ValidationError("You need to either select an existing user or enter an email address.")
  12.  
  13. return self.cleaned_data
  14.  
  15. def clean_email(self):
  16. # TODO: should we through a validation error if this email is already
  17. # in use?
  18. return self.cleaned_data['email']
  19.  
  20.  
  21. def save(self, created_by):
  22. """
  23.  
  24. """
  25. quote = Quote()
  26. quote.created_by = created_by
  27.  
  28. if self.cleaned_data['user']:
  29. user_profile = UserProfile.objects.get(pk=self.cleaned_data['user'])
  30. else:
  31. try:
  32. user_profile = UserProfile.objects.get(user__email=self.cleaned_data['email']).get_profile()
  33. # TODO - what should we do if user's email is already in use
  34. except:
  35. logging.debug("Need to create a new user")
  36.  
  37. #create new user
  38. user = User()
  39. user.username = self.cleaned_data['email']
  40. user.email = self.cleaned_data['email']
  41. user.first_name = self.cleaned_data['first_name']
  42. user.last_name = self.cleaned_data['last_name']
  43. user.save()
  44.  
  45. shipping_address = Address()
  46. shipping_address.postal_code = self.cleaned_data['postal_code']
  47. shipping_address.save()
  48.  
  49. quote.user_profile = user.get_profile()
  50. quote.user_profile.shipping_address = shipping_address
  51.  
  52. quote.save()
  53. return quote
Add Comment
Please, Sign In to add comment