Advertisement
Guest User

Untitled

a guest
Nov 18th, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.61 KB | None | 0 0
  1. class Bill(models.Model):
  2. service = models.ForeignKey(UserService)
  3. bill = models.FileField(upload_to='bills', validators=[validate_file_extension])
  4. raw_data = models.TextField(null=True)
  5. meta_data = models.TextField(null=True)
  6.  
  7. class BillUploadForm(forms.ModelForm):
  8. class Meta:
  9. model = models.Bill
  10. fields = ['bill']
  11.  
  12. SIGNUP_FORMS = [
  13. ('signup', SignupForm),
  14. ('address', AddressForm),
  15. ('direct_debit', UserDirectDebitForm),
  16. ('account', AccountForm),
  17. ('user_service', UserServiceForm),
  18. ('bill_upload', BillUploadForm),
  19. ]
  20.  
  21. TEMPLATES = {
  22. 'signup': 'site/signup.html',
  23. 'address': 'site/signup_address.html',
  24. 'direct_debit': 'site/signup_directdebit.html',
  25. 'account': 'site/signup_directdebit.html',
  26. 'user_service': 'site/signup_directdebit.html',
  27. 'bill_upload': 'site/signup_directdebit.html',
  28. }
  29.  
  30.  
  31. class SignupWizard(SessionWizardView):
  32. location = os.path.join(settings.MEDIA_ROOT, 'temp', 'files')
  33. file_storage = FileSystemStorage(location)
  34.  
  35. def get_template_names(self):
  36. return [TEMPLATES[self.steps.current]]
  37.  
  38. def dispatch(self, request, *args, **kwargs):
  39. if request.user.is_authenticated():
  40. return redirect(settings.LOGIN_REDIRECT_URL)
  41. return super().dispatch(request, *args, **kwargs)
  42.  
  43. def done(self, form_list, form_dict, **kwargs):
  44. cd = form_dict['signup'].cleaned_data
  45. user = User.objects.create_user(
  46. username=cd['email'].split('@')[0],
  47. email=cd['email'],
  48. password=cd['password1'],
  49. first_name=cd['first_name'],
  50. last_name=cd['last_name'],
  51. )
  52. user.save()
  53.  
  54. address = form_dict['address'].save(commit=False)
  55. address.user = user
  56. address.save()
  57.  
  58. direct_debit = form_dict['direct_debit'].save(commit=False)
  59. direct_debit.user = user
  60. direct_debit.save()
  61.  
  62. account = form_dict['account'].save(commit=False)
  63. account.address = address
  64. account.payment = direct_debit
  65. account.save()
  66.  
  67. user_service = form_dict['user_service'].save(commit=False)
  68. user_service.account = account
  69. user_service.save()
  70.  
  71. bill_upload = form_dict['bill_upload'].save(commit=False)
  72. bill = form_dict['bill_upload'].cleaned_data['bill']
  73. bill_upload.bill = bill
  74. bill_upload.service = user_service
  75. bill_upload.save()
  76. self.file_storage.delete(bill.name)
  77.  
  78. complete_signup(self.request, user, settings.ACCOUNT_EMAIL_VERIFICATION, settings.LOGIN_REDIRECT_URL)
  79. return redirect(settings.LOGIN_REDIRECT_URL)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement