Advertisement
Guest User

Untitled

a guest
Apr 3rd, 2016
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.98 KB | None | 0 0
  1. //forms.py
  2. from django import forms
  3.  
  4. class AddUserForm(forms.Form):
  5. first_name = forms.CharField(max_length=50)
  6. last_name = forms.CharField(max_length=50)
  7. email = forms.EmailField()
  8. password1 = forms.CharField(widget=forms.PasswordInput)
  9. password2 = forms.CharField(widget=forms.PasswordInput)
  10.  
  11.  
  12. //views.py (this one to handle the get)
  13. if request.method == 'GET':
  14. add_user_formset = formset_factory(AddUserForm, extra=1, max_num=6)
  15. context['add_user_formset'] = add_user_formset
  16.  
  17. //view.py (this one to handle the post of the form)
  18. @login_required(login_url = reverse_lazy('login') )
  19. def add_users(request, ir_id):
  20. if request.method == 'POST':
  21. my_form = formset_factory(AddUserForm)
  22. my_formset = my_form(request.POST)
  23.  
  24. if my_formset.is_valid():
  25. for form in my_formset:
  26. if form.is_valid():
  27. email = form.cleaned_data['email']
  28. username = form.cleaned_data['email']
  29. first_name = form.cleaned_data['first_name']
  30. last_name = form.cleaned_data['last_name']
  31. password = form.cleaned_data['password1']
  32. user = User(email=email,first_name=first_name,last_name=last_name,username=username)
  33. user.set_password(password)
  34. user.save()
  35. new_user_profile = UserProfile.objects.get(id=user.id)
  36. new_user_profile.user_role = users_role[0][0]
  37. new_user_profile.save()
  38. ir_obj = IR.objects.get(ir_id=int(ir_id))
  39. ir_obj.users.add(new_user_profile)
  40. return HttpResponseRedirect(request.META.get('HTTP_REFERER'))
  41.  
  42.  
  43.  
  44. //template
  45. <form action="{% url 'add_users' ir_id %}" method="post" >{% csrf_token %}
  46. {{add_user_formset.management_form}}
  47. {% for item in add_user_formset%}
  48. <tr>
  49. <td><div>{{item.first_name}}</div></td>
  50. <td><div>{{item.last_name}}</div></td>
  51. <td><div>{{item.email}}</div></td>
  52. <td><div>{{item.password1}}</div></td>
  53. <td><div>{{item.password2}}</div></td>
  54. </tr>
  55. {% endfor %}
  56. <input type="submit" name="submit" class="btn btn-primary" value="Create account">
  57. </form>
  58.  
  59.  
  60.  
  61.  
  62.  
  63. //JavaScript
  64.  
  65. $(document).on("click", ".irStatus-add-another-user", function () {
  66. var count = parseInt($('#id_form-TOTAL_FORMS').val())
  67. var newRow = $('.add-users-table tbody tr:last').clone(true)
  68.  
  69. newRow.find(':input').each(function(){
  70. var name = $(this).attr('name').replace('-' + (count-1) + '-','-' + (count) + '-');
  71. var id = 'id_' + name;
  72. $(this).attr('id', id);
  73. $(this).attr('name', name);
  74. $(this).val('');
  75. })
  76. newRow.appendTo('.add-users-table tbody')
  77. $('#id_form-TOTAL_FORMS').val(''+(count+1))
  78. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement