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