From 0244f26d02b05674350c2e199b056f35db80bfe0 Mon Sep 17 00:00:00 2001
From: Lucas <lucas.roussel@ensiie.fr>
Date: Tue, 12 Dec 2017 14:21:30 +0100
Subject: [PATCH] =?UTF-8?q?l=C3=A0=20c'est=20du=20lourd?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 Projet/db.sqlite3                             | Bin 66560 -> 66560 bytes
 Projet/polls/__pycache__/forms.cpython-35.pyc | Bin 2309 -> 2689 bytes
 Projet/polls/__pycache__/urls.cpython-35.pyc  | Bin 1478 -> 1558 bytes
 Projet/polls/__pycache__/views.cpython-35.pyc | Bin 11654 -> 12698 bytes
 Projet/polls/forms.py                         |  10 ++-
 .../templates/polls/code_inscription.html     |  45 ++++++++++++++
 Projet/polls/templates/polls/inscription.html |   3 +
 Projet/polls/urls.py                          |   1 +
 Projet/polls/views.py                         |  58 ++++++++++++++++--
 9 files changed, 111 insertions(+), 6 deletions(-)
 create mode 100644 Projet/polls/templates/polls/code_inscription.html

diff --git a/Projet/db.sqlite3 b/Projet/db.sqlite3
index 4fe1f1f0db15ebc6637920ce73b4449fd15a3f88..6870505d60591dd94dee593c8513614704e555c5 100644
GIT binary patch
delta 554
zcmZqZU}@-JnIO%mFj2;tQDI|(5jPvFI195e<K(~;;mxbL*NF2OTNxQxnON!>nVA?^
znru#0Uc$q^ojI3z60`DV0RwSn)tthTG}DZV+)`8HJWDgP{G#mQj53RqiY$v1^WxN;
z0yY(9U&hIP4-_`%7|#&kV`YeBU=C&6#T3fO!Vo!Gkj0&+QG=D2p;6tDgP-4ea)O&g
zeMWLcR$!KUNojFdiAsT=t3`IQVOgeUW>HaPh*P9_YN$y?fn$!bpHq5RX})WkiBU<W
zTUbt!r>&8Jp}DT1k*=YUf+5V|h8AY#h89IdMfs)0#i=<tIi<;o#SZDYiJ3Wi$@#gc
zS`00%Ow2g+j0}tnj17x6v$*bJ;sG0EWUOaoX=JeZl)IG+A1m`M2IdFMADO>1zh=I*
zS&-!fGaD;2KVuQ=<_G<20>cOeNn}+@re9T9W@Lz`VN_OFR-}=up>I_bh+pOB;#%$-
z?v@o59$6I?;%exZ8)@R}5|!)cGFjoejA?p>Z?3OFWR_p9e@IStREV#EUzS%^luKZh
zpG!)PpHZNpUsXzOR7kR6WL2c8Z%DF9RBq(t!t26ZIoY0B`I&yfp2d@wT?tjqGk}Md
ckr^ViAko}p&BE&2!s<A=&{$#ft4Csr02o53*8l(j

delta 376
zcmZqZU}@-JnIO$5G*QNxQD|d=5jPu)I195e<K(~;;mxbL*NF2OS(#W^8Jp`Fm>3!u
zT5L{LUc$q!%)FgBmwD1=0RwSnRg2X8%8H8Aw9+h7qe=_QOp~-igX|RZ@)YyJ3X7DA
zLN*m<U&hIP4-_`%7|#&kVPRxpU=C&6#T3fOGI8RU%`C3Fn0Sn=OpL7z%=AnR49z#6
za<_8fVPSs2!2E#uBlCCW*P8`dE--I?(7z@yjF4r1xn5bmxn3E*?m-!TSwT6GA+Cl|
zE>Ri2AyGMzA(4iWRoRt(E}@3LA<30dF3A<X;hsjmRg)F2OPl3-W%`DM<@mcq<@g!-
zWkhC08byXUW%-7r8~V9NR`|Mm8u__|W%^~gR`|R4Rz`)pn)n(8PA<G&pl;xqXJBh&
jU}&yuXryaoreKH~Xie5EtiCO*j*|<G6*j+mB&G-e{q1z$

diff --git a/Projet/polls/__pycache__/forms.cpython-35.pyc b/Projet/polls/__pycache__/forms.cpython-35.pyc
index 0639f945602bc008d9aaef09d09205b7f69ca197..b62aa590e9dc8bd733e35999ba3b4caecfe00b9f 100644
GIT binary patch
delta 363
zcmZn_Y7|u#<K^YzxUL^1!pXq!m;ni}FfcGUFfcF_ubQYlLEb%uharWRp@jiNrZO^Q
zF)=hVGemJPr0_8WYw~a0`G$S+V-_*S%E^Xo8ug3}Da;Jb42)5145`cvSu6}Ga1nM4
z5e~2jCqpv>LlhU7&BBnv0%mZ74dG!(VPy!`WV<EooS%~FnOB@#lvz-cnV;vDUzA&<
z$-ux+WCkL%Km^Fy%zm1@lP9oBdK8&6FfiQWEhtLO%g>F^$V^E|&AY{g#O5z8PA$qy
z%uR(#7U_Y^umlkX5Uq*D#pNlJ3pr#Itr-{?3_$_H!@$76!zcuWJd8yk89z<V$tyT?
a8LcN@<WLg;DG^|jl#*nZWRYZ%WCZ|a0ZO0%

delta 96
zcmZn^Z52`$<K^YzJEtFYjGckuF#{4{VPIfzU|?V<o;Xo?0$U0XL$D_A#!GM5nf)|5
pCd+c^PM*XrEPIQ?CO1E&G$+-L5u}uhfq_AQNm5FZU6MtT1ptqe5@i4Y

diff --git a/Projet/polls/__pycache__/urls.cpython-35.pyc b/Projet/polls/__pycache__/urls.cpython-35.pyc
index 9b818b00ab46b0b3ec1d6dffca3ea88ec61d6f04..aa35727efea5646e0ec21c3f9adf9228e01b0c3c 100644
GIT binary patch
delta 167
zcmX@cJ&i|MjF*>-<GOy-6*dNj#|%h7ih+T_fq{Xc_{T=&JB*5{j0`FI45`cvS&|GX
ztPCjz49!f8>0%5~QVc1E48fX4lew9;t4YS?Cgvrkr^YAer=-Sb<`pLwWfqiV=I5#0
z5=Y2v-oo^Qkx_c`T9$UEBI(J7tio*a3=9lK@{_$-eK_<O7#IYY1Xw07U=^RdnN=77
DnVl&_

delta 116
zcmbQnbBtSAjF*?|PMTg+9vcJ0V+JH3$-uziz`(#z{CK1C9Y&sXQHCf<h7^5<U`>O`
z3QXHKb2GnUWR#lxjip`e7I$e;PC;TxNorAE@k)jwIR*xXBDu*kSbaEj7#J7?m;_iR
Me_$1#%*rMR0Pu+$e*gdg

diff --git a/Projet/polls/__pycache__/views.cpython-35.pyc b/Projet/polls/__pycache__/views.cpython-35.pyc
index 5b9ecf1ae5584f0eeb863b5f539339c08d1df9ab..30f357b48279b9fd83e8f91557a5c59dd0f1ef76 100644
GIT binary patch
delta 2203
zcmZpRo|UX3#>>maaa}(u$cBO8F#{4{Vqjo!U|?V<W?|Z>@{^H2#g?Ikfg#F(A;pd%
zSkr#90@Fz`K5hmE1|bFp24|2$wMp_yOiGNC?@LS7*Dx_;F*BsFFi6(2GC(=343f2M
zFb*4oWGy>GWd%bC3quM!Lkb5&3MWGi8$&uHLo*8lV+kum78^qf7eg~6LoEkG2|Gg#
z149-gn9IqK!p%^_$&kVd(vZT$P{YiS!pu;^0<y1$l_7<VA)<zzA(M@vmW!c;gQ13l
zA&Zlth6`jwGZV;&;P5<G21Z846ds0JMh2)|ydarc4u%vyh8jk&6-*47OlW3I{wOcX
z%<tzmd8wqTe3h(oeqLH;QEp;MW`3SRN~%JRdS+g6a#3ahNMN#_f*y;Bv612A1O){p
z>4N;6oMQdt{FKyqBt?1|CAm38stgPaA(Q<jBtmYnrWO_D7in@8`7$st6sdy<R}kR_
zB7{K%FNlz2U|_f<?3|yH>WQ$?Ex#zYh!rHw%)r2)$z3D`Vh2z5lTzd<k_PEuP0KIJ
zHJse2Av(ELN+QSz6yc0)jQor|jJ$Bj%qYgl&&bcj#t4HvOj3-@AazV^j66(5VGIlm
z$&4Vq3=9lB3=9l>ur#0#N(0&?r2%N_U}uo5<p4(|2SYX!L(v6L%E*Ew15QvJrf`9y
zn46)7ouQe5xt5cm2AlwxYB(9<*+B^+o&!W?aWXVBFff+XgCo3#lcAZ3fw6>}A%zDN
z!NDoK;5g@D$l?V>H7I>?F{JQ=<6HogI#UF}_6UKDPZ0(uF^K&lAe%GU8EUy1O1MGk
zDT|Mxh8rnWr7$oAYl`~0-C_a7a_}wg+{DbB_>9byl+?T^-h!gky!>1kmkWu_TaZ{>
zT%H1x;x8>uEy_#GO@#@76H!qB0|Ue4Q<8=bAys(OQZOjaK?$lT5XABa5egt82$UxH
zi$W&<mvo<ePe#&=2bw-Wl3)$tAQl!~V7qUzfZSCiJ-LBRVzQqihcC#J$Vqt_s1U%O
zqIem37!?_X8MzpF8M&C)P|_ASMI}tW$eK7=O1eb&D998JP}%~gK^~@}q{$1VZ!tzq
zu930gD}wt@ldC9k@-Z0;QMd@$l|@k?Kg3U-$SOP8Kvt0P>|`fdRmSAW8L~bcNuU5=
zERvdBC@nnsyetp@1CU)TV7s^&i&DUD@RsY)djb+iaYGt%iU-MnQa!lTd&@AHQC^Yp
z<>Y(P()E>Tpj4Z}0xFwQ*g&ZnwLD`7CBa%&)bflCRQlDhF(8*@nam8e?BK$S6<m0M
z%RjWjixZrXAvpw6P|CA{%PmH*fsoP*#Sl>G#mnR822L5bnDbK0Crc<SmI8&KCRb4^
zDCAHJoXJlVv=lkelL<J5q=Qt0%9Nr|Xo`>!djkqLHE?($$`t0wb&67qnVV-SvNCcN
zfs<GSC@F7L5@w8?d{ik)9ArPZ2n4&U2xPJ*Us1;7|B|wkA1JU0+~O%tEr|zblKi5S
zqPWSoWMmaN(Om^L8R0ZY5;&wR%*4hx`MR<mW6tD@tdf)ERgMVDF)}a|gCdcEQHGJ9
ziHEr;7c9rGdQ4aYLoRRg3spfzwtSF(3nu?pQ<4WUjX>%Iz+M$%WMkxIQ~)Px9_FI_
z$qwqP1RX%~Y+!kQMmENx;>ix`K9k)wVg%jLWJ)GGs0UAG*9_<JL6Vs~Ps?QTJk3Df
zAdn!aGG<^bDxdsEvxu>5a=w--e;7y{l6Kh`iz+AQYwAzFq@~MP21?yREM@s6snH-M
zP_0#91tHo#!tqF=)eH;_ewv1xH){(qMuSTAq6CmPK^dhe8N^Bf5un6hlnG+xfQVcW
zkq06`0Z~*8VwHf1QV>xNA}T>d6^H=YP$Ua-(_}qeK1Pqpwz^u1@;vf996Z82EIb@M
WQalnoTs&Mnd^~Jm$il<Q!vX+6yRUoz

delta 1364
zcmbQ0+!n1O#>>m~;=F!Tq$vZ#V+JI^#K6Gdz`(#z{DX0$%1=h-U`^Z2I!q_U_&FFD
z7}yyY7@R?pD;Or<WRqrE!Z7(8o1=dT3quwwLlzrD3Nu3u3quMULk%lK3Ohp$8$&Y#
zb1geV4HH8RGXql%J3~A>1Bm1Rky)G!%?u2TC0q<C91P8j48bW348fY5ev=KPR44b#
z8nS3|7x_;9s3JUBSk8olm4SgllcPv#a)`7d+bx#T;?$za`_&~T&yyCA5d(REk)M%=
zkrxgX8HE|S7>lAN-(^jloFZQ$JO$)%kS`b*`5F0{c$kV}Ccl=y#S+56z%Y4%tmx!>
z3Q7XESW}CN@{5X8LAG%fMT4zZR8$p>Wnf?cixvfdSRhSBk&_*CWhYlC3Np@_+@+|>
z7&m!?q7P%t<iCn){Odusv4Gvh#aI*%cEx0+4&BWlaTHf1GB7YCGlEnyFfed3Ffj1I
zLYZljj1uF&$!}Dp>np1n5TVQh3e9E)##&Z}5_X0ZR#1q8f}5EkosprLg@LhzgCUC(
z8mhHy3?*C)H4F?{jG#cSWoJm?1ciPII8GojmdVUe%fV2>4T`ZW9)=nYkosmOkow^8
zJXZ$BI7Y@4E{0l02B^v0AgNk5h7=x#8b+{zObnS!xDAQSV`PW`M=!6RTTvhb1H&!m
zywvidU<L+;DiOcQ57mSx$EfsjfI?Z5w<rM|>|yGBlbKbuv^k5UKtT?YgTw$xe^C-h
zED}UWGcYhjv8Lr0<r+>7RMj=!4GLlnP=GSB!4m~DqbQ>oIO5qD*%*14q?njNvP>X$
zQR?RPs;rFaw^)+%Q&OY2a}zUj;xjT+Qd0AxxbjlVVQdydBV&`I;K`TNqQtSdMw727
z1>|r!L6ED&K}0ghr#!`}CGiD`#l_|MMJYuQlS|Z9q!8NEK<bcu1Wr@u)rFa^F-(4<
zuE&@$`7W#EWF3to!tX%-f+QUoPy%Ky$^^^FXdV;(fgzW*`KzWNBU?7e_?*c++Dh^u
zCKDqAL$LrjY=juu7<m~L82LeAz+99)`Jhhl<OSN{f&w5lY+yC~jBJcW`I8Uo_)HGb
zi4hb-lPQ>dP-m5(44P=+<PCcIlUM5o@+yI3KqU$TV^Q&BPQ4<=qRBOSs{CpoaY*K1
zV=OA2yg@I9v1sx{HsQ$%`mDU#AX%ucGO$^R`aZ(?NTTHo3=Dpn2AdD)3o(X8fqWPP
zBH}<qJct10siIU6D+5Gif`}{-0Sbend=RSuL==LEVh~XZBFaDn$nYXruxlI)`54_M
k`x|P>^YU=;2=lP;aPUa;Nbqp+aPjc*uz?{94=WD~0JQcANdN!<

diff --git a/Projet/polls/forms.py b/Projet/polls/forms.py
index 38b7d66..408a3a6 100644
--- a/Projet/polls/forms.py
+++ b/Projet/polls/forms.py
@@ -44,4 +44,12 @@ class ForgottenPasswdForm(forms.Form):
 class CodePasswdForm(forms.Form):
     code = forms.CharField(max_length=4)
     mail_hidden = forms.CharField(widget=forms.HiddenInput())
-    new_hidden = forms.CharField(widget=forms.HiddenInput())
\ No newline at end of file
+    new_hidden = forms.CharField(widget=forms.HiddenInput())
+
+class CodeInscriptionForm(forms.Form):
+    code = forms.CharField(max_length=4)
+    prenom_hidden = forms.CharField(max_length=50)
+    nom_hidden = forms.CharField(max_length=50)
+    username_hidden = forms.CharField(max_length=50)
+    mail_hidden = forms.EmailField()
+    passwd_hidden = forms.CharField(widget=forms.PasswordInput)
\ No newline at end of file
diff --git a/Projet/polls/templates/polls/code_inscription.html b/Projet/polls/templates/polls/code_inscription.html
new file mode 100644
index 0000000..46e6452
--- /dev/null
+++ b/Projet/polls/templates/polls/code_inscription.html
@@ -0,0 +1,45 @@
+<!DOCTYPE html>
+{% load static %}
+<html lang="en">
+<head>
+    <meta charset="UTF-8">
+    <title>Code de confirmation</title>
+</head>
+
+<link rel="stylesheet" type="text/css" href="{% static 'polls/style.css' %}" />
+
+<body>
+
+{% if user.is_authenticated %}
+
+Vous êtes connecté, {{ user.username }} !
+
+{% else %}
+
+<form method="post" action="/polls/manage_code_inscription">
+
+    {% csrf_token %}
+    <h2 class="inscription-title-block">Code de confirmation</h2>
+    <div class="inscription-block">
+        <h3 class="inscription-data">Veuillez entrer le code de confirmation qui vous a été envoyé par mail</h3>
+        {% if error %}
+        <p><strong>Code invalide</strong></p>
+        {% endif %}
+        <div class="inscription-form">
+        <br/>
+        {{ form.code }}
+    </div>
+        <input type='hidden' name="mail_hidden" value={{ mail }} />
+        <input type='hidden' name="prenom_hidden" value={{ prenom }} />
+        <input type='hidden' name="nom_hidden" value={{ nom }} />
+        <input type='hidden' name="username_hidden" value={{ username }} />
+        <input type='hidden' name="passwd_hidden" value={{ passwd }} />
+    </div>
+    <input class="button_submit" type="submit" value="Valider" />
+
+</form>
+
+{% endif %}
+
+</body>
+</html>
\ No newline at end of file
diff --git a/Projet/polls/templates/polls/inscription.html b/Projet/polls/templates/polls/inscription.html
index 102e8b4..1a6cfbe 100644
--- a/Projet/polls/templates/polls/inscription.html
+++ b/Projet/polls/templates/polls/inscription.html
@@ -15,6 +15,9 @@
     <h2 class="inscription-title-block">Identifiants</h2>
     <div class="inscription-block">
     <h3 class="inscription-data">Adresse mail</h3>
+        {% if error %}
+        <p><strong>Adresse mail invalide</strong></p>
+        {% endif %}
     <div class="inscription-form">
         {{ form.mail }}
     </div>
diff --git a/Projet/polls/urls.py b/Projet/polls/urls.py
index cc45f4e..a9b7170 100644
--- a/Projet/polls/urls.py
+++ b/Projet/polls/urls.py
@@ -10,6 +10,7 @@ urlpatterns = [
     url(r'^manage_report$', views.manage_report, name='manage_report'),
     url(r'^inscription$', views.inscription, name='inscription'),
     url(r'^manage_inscription$', views.manage_inscription, name='manage_inscription'),
+    url(r'^manage_code_inscription$', views.manage_code_inscription, name='manage_code_inscription'),
     url(r'^connexion$', views.connexion, name='connexion'),
     url(r'^manage_connexion$', views.manage_connexion, name='manage_connexion'),
     url(r'^deconnexion$', views.deconnexion, name='deconnexion'),
diff --git a/Projet/polls/views.py b/Projet/polls/views.py
index 135ad6a..c0f6afb 100644
--- a/Projet/polls/views.py
+++ b/Projet/polls/views.py
@@ -133,6 +133,7 @@ def inscription(request):
     return HttpResponse(template.render(context, request))
 
 def manage_inscription(request):
+    error = False
     form = InscriptionForm(request.POST)
     if form.is_valid():
         prenom = form.cleaned_data['prenom']
@@ -140,10 +141,58 @@ def manage_inscription(request):
         username = form.cleaned_data['username']
         mail = form.cleaned_data['mail']
         passwd = form.cleaned_data['passwd']
-        user = User.objects.create_user(username=username,email=mail,password=passwd)
-        user.first_name, user.last_name = prenom, nom
-        user.save()
-        return HttpResponse("Vous êtes bien enregistré")
+        try:
+            send_mail('Confirmation de l\'inscription', 'Votre code de confirmation est le suivant : 4321', 'noreply.chandeliier@gmail.com', [mail])
+            template = loader.get_template('polls/code_inscription.html')
+            form1 = CodeInscriptionForm(request.POST)
+            context = {
+                'form': form1,
+                'mail': mail,
+                'prenom' : prenom,
+                'nom' : nom,
+                'username' : username,
+                'passwd' : passwd,
+            }
+            return HttpResponse(template.render(context, request))
+        except:
+            error = True
+            template = loader.get_template('polls/inscription.html')
+            context = {
+                'error': error,
+                'form': form,
+            }
+            return HttpResponse(template.render(context, request))
+
+def manage_code_inscription(request):
+    error = False
+    form = CodeInscriptionForm(request.POST)
+    if form.is_valid():
+        code = form.cleaned_data['code']
+        mail = form.cleaned_data['mail_hidden']
+        prenom = form.cleaned_data['prenom_hidden']
+        nom = form.cleaned_data['nom_hidden']
+        passwd = form.cleaned_data['passwd_hidden']
+        username = form.cleaned_data['username_hidden']
+        if code == '4321':
+            user = User.objects.create_user(username=username, email=mail, password=passwd)
+            user.first_name, user.last_name = prenom, nom
+            user.save()
+            login(request, user)
+            return HttpResponse("Vous êtes bien enregistré")
+        else:
+            error = True
+            template = loader.get_template('polls/code_inscription.html')
+            context = {
+                'error': error,
+                'form': form,
+                'mail': mail,
+                'prenom': prenom,
+                'nom': nom,
+                'username': username,
+                'passwd': passwd,
+            }
+            return HttpResponse(template.render(context, request))
+
 
 def connexion(request):
     template = loader.get_template('polls/connexion.html')
@@ -191,7 +240,6 @@ def manage_forgotten_passwd(request):
         mail = form.cleaned_data['mail']
         new = form.cleaned_data['new']
         try:
-            user = User.objects.get(email=mail)
             send_mail('Nouveau mot de passe', 'Votre code de confirmation est le suivant : 1234', 'noreply.chandeliier@gmail.com', [mail])
             template = loader.get_template('polls/code_passwd.html')
             form1 = CodePasswdForm(request.POST)
-- 
GitLab