Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Bill(models.Model):
- service = models.ForeignKey(UserService)
- bill = models.FileField(upload_to='bills', validators=[validate_file_extension])
- raw_data = models.TextField(null=True)
- meta_data = models.TextField(null=True)
- class BillUploadForm(forms.ModelForm):
- class Meta:
- model = models.Bill
- fields = ['bill']
- SIGNUP_FORMS = [
- ('signup', SignupForm),
- ('address', AddressForm),
- ('direct_debit', UserDirectDebitForm),
- ('account', AccountForm),
- ('user_service', UserServiceForm),
- ('bill_upload', BillUploadForm),
- ]
- TEMPLATES = {
- 'signup': 'site/signup.html',
- 'address': 'site/signup_address.html',
- 'direct_debit': 'site/signup_directdebit.html',
- 'account': 'site/signup_directdebit.html',
- 'user_service': 'site/signup_directdebit.html',
- 'bill_upload': 'site/signup_directdebit.html',
- }
- class SignupWizard(SessionWizardView):
- location = os.path.join(settings.MEDIA_ROOT, 'temp', 'files')
- file_storage = FileSystemStorage(location)
- def get_template_names(self):
- return [TEMPLATES[self.steps.current]]
- def dispatch(self, request, *args, **kwargs):
- if request.user.is_authenticated():
- return redirect(settings.LOGIN_REDIRECT_URL)
- return super().dispatch(request, *args, **kwargs)
- def done(self, form_list, form_dict, **kwargs):
- cd = form_dict['signup'].cleaned_data
- user = User.objects.create_user(
- username=cd['email'].split('@')[0],
- email=cd['email'],
- password=cd['password1'],
- first_name=cd['first_name'],
- last_name=cd['last_name'],
- )
- user.save()
- address = form_dict['address'].save(commit=False)
- address.user = user
- address.save()
- direct_debit = form_dict['direct_debit'].save(commit=False)
- direct_debit.user = user
- direct_debit.save()
- account = form_dict['account'].save(commit=False)
- account.address = address
- account.payment = direct_debit
- account.save()
- user_service = form_dict['user_service'].save(commit=False)
- user_service.account = account
- user_service.save()
- bill_upload = form_dict['bill_upload'].save(commit=False)
- bill = form_dict['bill_upload'].cleaned_data['bill']
- bill_upload.bill = bill
- bill_upload.service = user_service
- bill_upload.save()
- self.file_storage.delete(bill.name)
- complete_signup(self.request, user, settings.ACCOUNT_EMAIL_VERIFICATION, settings.LOGIN_REDIRECT_URL)
- return redirect(settings.LOGIN_REDIRECT_URL)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement