Sin descripción

user.py 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. from django.contrib.auth.models import User
  2. from django.core.urlresolvers import reverse
  3. from django.shortcuts import render
  4. from django.utils.translation import ugettext as _
  5. from counter.models import Counter
  6. def create(request):
  7. if (request.method == 'POST'):
  8. # create a form instance and populate it with data from the request:
  9. data = dict(request.POST)
  10. email = data['email'][0]
  11. username = email.split('@')[0]
  12. trigramme = data['trigramme'][0]
  13. nick = data['nick'][0]
  14. password1 = data['password1'][0]
  15. password2 = data['password2'][0]
  16. email_notifications = 'email_notifications' in data.keys()
  17. if len(trigramme) != 3:
  18. error = _("Trigram must be 3 characters long.")
  19. return render(request, 'createUser.html', {'error': error})
  20. if password1 != password2:
  21. error = _("Passwords do not match.")
  22. return render(request, 'createUser.html', {'error': error})
  23. try:
  24. test_user = User.objects.get(email=email)
  25. error = _("A user with this email address already exists.")
  26. return render(request, 'createUser.html', {'error': error})
  27. except User.DoesNotExist:
  28. try:
  29. user = User.objects.create_user(username, email, password1)
  30. except IntegrityError:
  31. error = _("Use another email address, another user has already this login.")
  32. return render(request, 'createUser.html', {'error': error})
  33. counter = Counter.objects.create(name=nick, email=email, trigramme=trigramme, user=user, email_notifications=email_notifications)
  34. return render(request, 'createUserDone.html', {'login': username})
  35. else:
  36. return render(request, 'createUser.html', {'error': None})