Advertisement
Guest User

Untitled

a guest
Nov 21st, 2018
414
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.39 KB | None | 0 0
  1. @transaction.atomic()
  2.     def form_valid(self, form, **kwargs):
  3.         # Data to save
  4.         name = form.cleaned_data.get('first_name')
  5.         last_name = form.cleaned_data.get('last_name')
  6.         username = form.cleaned_data.get('username')
  7.         password = form.cleaned_data.get('password')
  8.         email = form.cleaned_data.get('email')
  9.         user_group = form.cleaned_data.get('user_group')
  10.         user_agency = form.cleaned_data.get('user_agency')
  11.         user_language = form.cleaned_data.get('user_language')
  12.         user_phone = form.cleaned_data.get('user_phone')
  13.  
  14.         # Exists Manager?
  15.         manager_filter = UserDetails.objects.filter(
  16.             user_agency=user_agency,
  17.             user_account__groups=UserDetails.MANAGER
  18.         )
  19.  
  20.         # If not manager in agency, create it
  21.         if not manager_filter.exists() and not int(user_group.pk) == UserDetails.MANAGER:
  22.             context = self.get_context_data(**kwargs)
  23.             context['form'] = form
  24.             context['error'] = 'The ' + user_agency.name + ' agency does not have a manager, please create one'
  25.             return self.render_to_response(context)
  26.  
  27.         # Creating User
  28.         user = User.objects.create_user(username, email, password)
  29.         user.first_name = name
  30.         user.last_name = last_name
  31.         user.save()
  32.  
  33.         # Adding Group
  34.         # group = Group.objects.get(pk=user_group.pk)
  35.         user.groups.add(user_group)
  36.  
  37.         # Saving Details
  38.         details = UserDetails()
  39.         details.user_account = user
  40.  
  41.         # Language and Agency Assign
  42.         lang = Language.objects.get(pk=user_language)
  43.         # agency = Agency.objects.get(pk=form.cleaned_data['user_agency'])
  44.         details.user_language = lang
  45.         details.user_agency = user_agency
  46.         details.user_phone = user_phone
  47.         details.save()
  48.  
  49.         # First report for user
  50.         SignalReportAgencies.send(
  51.             sender=details.user_agency,
  52.             user=details.user_account,
  53.             report_type=ReportsType.MONEY,
  54.             report_status=ReportsStatus.NEW,
  55.             report_transaction=ReportsTransaction.LOCK,
  56.             description="Initial allocation balance",
  57.             url=None, amount=0
  58.         )
  59.  
  60.         # Default success
  61.         self.success_object = details
  62.  
  63.         # Redirect to user view
  64.         return super(Add, self).form_valid(form)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement