|
|
@@ -1,5 +1,6 @@
|
|
1
|
1
|
from django.shortcuts import render
|
|
2
|
2
|
from counter.models import Counter, Reset
|
|
|
3
|
+from django.contrib.auth.models import User
|
|
3
|
4
|
from babel.dates import format_timedelta, format_datetime
|
|
4
|
5
|
from datetime import datetime, timedelta
|
|
5
|
6
|
from django import forms
|
|
|
@@ -7,6 +8,7 @@ from django.http import HttpResponseRedirect
|
|
7
|
8
|
from django.core.mail import EmailMessage
|
|
8
|
9
|
from django.contrib.auth.decorators import login_required
|
|
9
|
10
|
from django.core.urlresolvers import reverse
|
|
|
11
|
+from django.db import IntegrityError
|
|
10
|
12
|
from graphos.renderers import gchart
|
|
11
|
13
|
from django.template.loader import render_to_string
|
|
12
|
14
|
from graphos.sources.simple import SimpleDataSource
|
|
|
@@ -359,3 +361,41 @@ def counter(request, id_counter):
|
|
359
|
361
|
'seumFrequency': seumFrequency,
|
|
360
|
362
|
'myCounter': myCounter,
|
|
361
|
363
|
})
|
|
|
364
|
+
|
|
|
365
|
+
|
|
|
366
|
+def createUser(request):
|
|
|
367
|
+ if (request.method == 'POST'):
|
|
|
368
|
+ # create a form instance and populate it with data from the request:
|
|
|
369
|
+ data = dict(request.POST)
|
|
|
370
|
+ email = data['email'][0]
|
|
|
371
|
+ username = email.split('@')[0]
|
|
|
372
|
+ trigramme = data['trigramme'][0]
|
|
|
373
|
+ nick = data['nick'][0]
|
|
|
374
|
+ password1 = data['password1'][0]
|
|
|
375
|
+ password2 = data['password2'][0]
|
|
|
376
|
+ email_notifications = (data['email_notifications'][0] == "on")
|
|
|
377
|
+
|
|
|
378
|
+ if password1 != password2:
|
|
|
379
|
+ error = "Les deux mots de passe sont différents."
|
|
|
380
|
+ return render(request, 'createUser.html', {'error': error})
|
|
|
381
|
+ try:
|
|
|
382
|
+ test_user = User.objects.get(email=email)
|
|
|
383
|
+ error = "Un utilisateur avec cette adresse email existe déjà !"
|
|
|
384
|
+ return render(request, 'createUser.html', {'error': error})
|
|
|
385
|
+ except User.DoesNotExist:
|
|
|
386
|
+ try:
|
|
|
387
|
+ user = User.objects.create_user(username, email, password1)
|
|
|
388
|
+ except IntegrityError:
|
|
|
389
|
+ error = "Utilise une autre adresse email, un autre utilisateur \
|
|
|
390
|
+ a le même login que toi."
|
|
|
391
|
+ return render(request, 'createUser.html', {'error': error})
|
|
|
392
|
+ counter = Counter()
|
|
|
393
|
+ counter.name = nick
|
|
|
394
|
+ counter.email = email
|
|
|
395
|
+ counter.trigramme = trigramme
|
|
|
396
|
+ counter.user = user
|
|
|
397
|
+ counter.email_notifications = False
|
|
|
398
|
+ counter.save()
|
|
|
399
|
+ return render(request, 'createUserDone.html', {})
|
|
|
400
|
+ else:
|
|
|
401
|
+ return render(request, 'createUser.html', {'error': None})
|