From b9f0c34469f729e97383825bc6567e8ed9603734 Mon Sep 17 00:00:00 2001 From: Xavier59 Date: Sun, 2 Apr 2017 14:40:38 +0200 Subject: [PATCH] docstring et petites ameliorations --- .gitignore | 1 + account/views.py | 57 ++++++++++++++++++++++++++++----------- home/urls.py | 2 +- home/views.py | 6 +++-- planete_casio/settings.py | 3 ++- planete_casio/urls.py | 12 ++++----- 6 files changed, 56 insertions(+), 25 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7e99e36 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.pyc \ No newline at end of file diff --git a/account/views.py b/account/views.py index 3fa98ae..381edd6 100644 --- a/account/views.py +++ b/account/views.py @@ -6,12 +6,15 @@ from account.forms import * from django.core.urlresolvers import reverse from django.core.validators import validate_email from django.conf import settings as s - +from django.http import JsonResponse from home.views import homepage - +from django.http import HttpResponseNotFound def login(request): - error = False + """ + Login validation + Only accessible with ajax POST from menu and return json + """ form = LoginForm() if request.method == "POST": if form.is_valid(): @@ -20,19 +23,34 @@ def login(request): user = authenticate(username=username, password=password) if user: a_login(request, user) - return redirect(reverse(homepage)) + data = { + 'login':True + } + return JsonResponse(data) else: - error = True + data = { + 'login':False, + 'error':'Mauvais identifiant ou mot de passe' + } + return JsonResponse(data) - return render(request, 'login.html', locals()) + return HttpResponseNotFound() def logout(request): + """ + Logout user + with ajax POST from menu and reload page + """ a_logout(request) return redirect(reverse(homepage)) def signup(request): + """ + Signup user + with ajax POST from signup page and return json + """ error = False form = InscriptionForm() if request.method == "POST": @@ -43,24 +61,33 @@ def signup(request): email = form.cleaned_data["email"] cgu = form.cleaned_data["cgu"] if( - username.length < s.USERNAME_MIN_LENGTH or username.length > s.USERNAME_MAX_LENGTH or - password.length < s.PASSWORD_MIN_LENGTH or password.length > s.PASSWORD_MAX_LENGTH or - password1 != password2 or cgu==False + s.USERNAME_MAX_LENGTH < username.length < s.USERNAME_MIN_LENGTH or + s.PASSWORD_MAX_LENGTH < password.length < s.PASSWORD_MIN_LENGTH or + password1 != password2 or cgu is False ): - error = True - return render(request, 'signup.html', locals()) + data = { + signed:False, + error:"Désolé ! Nous ne sommes pas assez bête pour ne pas faire de verification server side !" + } + return JsonResponse(data) try: validate_email(email) except forms.ValidationError: - error = True - return render(request, 'signup.html', locals()) + data = { + signed:False, + error:"Mauvais format d'e-mail" + } + return JsonResponse(data) create_user(username, email, password1) authenticate(username, password1) - return render(request, 'home.html', locals()) + data = { + signed:True + } + return JsonResponse(data) - return render(request, 'signupt.html', locals()) + return render(request, 'signup.html', locals()) def account(request): return render(request, 'account.html') \ No newline at end of file diff --git a/home/urls.py b/home/urls.py index c5759d9..fa87bef 100644 --- a/home/urls.py +++ b/home/urls.py @@ -2,5 +2,5 @@ from django.conf.urls import url import home.views as v urlpatterns = [ - url(r'^$', v.homepage), + url(r'^$', v.homepage, name="homepage"), ] diff --git a/home/views.py b/home/views.py index 7016fa5..dd30ddc 100644 --- a/home/views.py +++ b/home/views.py @@ -1,6 +1,8 @@ #-*- coding: utf-8 -*- -from django.shortcuts import render +from django.shortcuts import render, redirect +from django.contrib.auth import authenticate +from django.http import HttpResponse, Http404 def homepage(request): - return render(request, 'home/homepage.html') \ No newline at end of file + return render(request, 'home/homepage.html', locals()) \ No newline at end of file diff --git a/planete_casio/settings.py b/planete_casio/settings.py index d114006..d68867b 100644 --- a/planete_casio/settings.py +++ b/planete_casio/settings.py @@ -60,7 +60,7 @@ TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [ - '/home/darks/web/planete_casio/templates/', + os.path.join(BASE_DIR, 'templates/'), ], 'APP_DIRS': True, 'OPTIONS': { @@ -145,6 +145,7 @@ STATICFILES_DIRS = ( "/home/web/planete_casio/sfiles/", ) + USERNAME_MIN_LENGTH = 3 USERNAME_MAX_LENGTH = 30 PASSWORD_MIN_LENGTH = 8 diff --git a/planete_casio/urls.py b/planete_casio/urls.py index a65614e..36e34b7 100644 --- a/planete_casio/urls.py +++ b/planete_casio/urls.py @@ -16,14 +16,14 @@ Including another URLconf from django.conf import settings from django.conf.urls import url, include from django.contrib import admin -import account.views as v +import account.views as av urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^', include('home.urls')), - url(r'^forum/', include('forum.urls')), - url(r'^account/', include('account.urls')), - url(r'^login', v.login), - url(r'^logout', v.logout), - url(r'^signup', v.signup) + url(r'^forum/', include('forum.urls'), name="forum"), + url(r'^account/', include('account.urls'), name="account"), + url(r'^login', av.login, name="login"), + url(r'^logout', av.logout, name="logout"), + url(r'^signup', av.signup, name="signup") ]