docstring et petites ameliorations

This commit is contained in:
Xavier59 2017-04-02 14:40:38 +02:00
parent d3e7fd22bf
commit b9f0c34469
6 changed files with 56 additions and 25 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.pyc

View File

@ -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')

View File

@ -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"),
]

View File

@ -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')
return render(request, 'home/homepage.html', locals())

View File

@ -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

View File

@ -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")
]