Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @transaction.atomic()
- def form_valid(self, form, **kwargs):
- # Data to save
- name = form.cleaned_data.get('first_name')
- last_name = form.cleaned_data.get('last_name')
- username = form.cleaned_data.get('username')
- password = form.cleaned_data.get('password')
- email = form.cleaned_data.get('email')
- user_group = form.cleaned_data.get('user_group')
- user_agency = form.cleaned_data.get('user_agency')
- user_language = form.cleaned_data.get('user_language')
- user_phone = form.cleaned_data.get('user_phone')
- # Exists Manager?
- manager_filter = UserDetails.objects.filter(
- user_agency=user_agency,
- user_account__groups=UserDetails.MANAGER
- )
- # If not manager in agency, create it
- if not manager_filter.exists() and not int(user_group.pk) == UserDetails.MANAGER:
- context = self.get_context_data(**kwargs)
- context['form'] = form
- context['error'] = 'The ' + user_agency.name + ' agency does not have a manager, please create one'
- return self.render_to_response(context)
- # Creating User
- user = User.objects.create_user(username, email, password)
- user.first_name = name
- user.last_name = last_name
- user.save()
- # Adding Group
- # group = Group.objects.get(pk=user_group.pk)
- user.groups.add(user_group)
- # Saving Details
- details = UserDetails()
- details.user_account = user
- # Language and Agency Assign
- lang = Language.objects.get(pk=user_language)
- # agency = Agency.objects.get(pk=form.cleaned_data['user_agency'])
- details.user_language = lang
- details.user_agency = user_agency
- details.user_phone = user_phone
- details.save()
- # First report for user
- SignalReportAgencies.send(
- sender=details.user_agency,
- user=details.user_account,
- report_type=ReportsType.MONEY,
- report_status=ReportsStatus.NEW,
- report_transaction=ReportsTransaction.LOCK,
- description="Initial allocation balance",
- url=None, amount=0
- )
- # Default success
- self.success_object = details
- # Redirect to user view
- return super(Add, self).form_valid(form)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement