Commit 18115a0d authored by Skia's avatar Skia

Put view into a module

parent ebcdcf42
...@@ -2,8 +2,8 @@ from django.test import SimpleTestCase, Client ...@@ -2,8 +2,8 @@ from django.test import SimpleTestCase, Client
from django.core.urlresolvers import reverse from django.core.urlresolvers import reverse
from django.contrib.auth.models import Group from django.contrib.auth.models import Group
from .models import User from core.models import User
from .forms import RegisteringForm, LoginForm from core.views.forms import RegisteringForm, LoginForm
class UserRegistrationTest(SimpleTestCase): class UserRegistrationTest(SimpleTestCase):
def setUp(self): def setUp(self):
......
from .user import *
from .page import *
from .site import *
...@@ -3,7 +3,7 @@ from django import forms ...@@ -3,7 +3,7 @@ from django import forms
from django.contrib.auth import logout, login, authenticate from django.contrib.auth import logout, login, authenticate
import logging import logging
from .models import User, Page from core.models import User, Page
class RegisteringForm(UserCreationForm): class RegisteringForm(UserCreationForm):
error_css_class = 'error' error_css_class = 'error'
......
# This file contains all the views that concern the page model
from django.shortcuts import render, redirect, get_object_or_404 from django.shortcuts import render, redirect, get_object_or_404
from django.http import HttpResponse
from django.contrib.auth import logout as auth_logout
from django.db import models
from django.contrib.auth.forms import PasswordChangeForm
from .models import User, Page from core.models import Page
from .forms import RegisteringForm, LoginForm, UserEditForm, PageEditForm, PagePropForm from core.views.forms import PageEditForm, PagePropForm
import logging
logging.basicConfig(level=logging.DEBUG)
# This is a global default context that can be used everywhere and provide default basic values
# It needs to be completed by every function using templates
#context = {'title': 'Bienvenue!',
# 'tests': '',
# }
def index(request, context=None):
if context == None:
return render(request, "core/index.html", {'title': 'Bienvenue!'})
else:
return render(request, "core/index.html", context)
def register(request):
context = {'title': 'Register a user'}
if request.method == 'POST':
form = RegisteringForm(request.POST)
if form.is_valid():
logging.debug("Registering "+form.cleaned_data['first_name']+form.cleaned_data['last_name'])
u = form.save()
context['user_registered'] = u
context['tests'] = 'TEST_REGISTER_USER_FORM_OK'
form = RegisteringForm()
else:
context['error'] = 'Erreur'
context['tests'] = 'TEST_REGISTER_USER_FORM_FAIL'
else:
form = RegisteringForm()
context['form'] = form.as_p()
return render(request, "core/register.html", context)
def login(request):
"""
The login view
Needs to be improve with correct handling of form exceptions
"""
context = {'title': 'Login'}
if request.method == 'POST':
try:
form = LoginForm(request)
form.login()
context['tests'] = 'LOGIN_OK'
return render(request, 'core/index.html', context)
except Exception as e:
logging.debug(e)
context['error'] = "Login failed"
context['tests'] = 'LOGIN_FAIL'
else:
form = LoginForm()
context['form'] = form.as_p()
return render(request, "core/login.html", context)
def logout(request):
"""
The logout view
"""
auth_logout(request)
return redirect('core:index')
def user(request, user_id=None):
"""
Display a user's profile
"""
context = {'title': 'View a user'}
if user_id == None:
context['user_list'] = User.objects.all
return render(request, "core/user.html", context)
context['profile'] = get_object_or_404(User, pk=user_id)
return render(request, "core/user.html", context)
def user_edit(request, user_id=None):
"""
This view allows a user, or the allowed users to modify a profile
"""
user_id = int(user_id)
context = {'title': 'Edit a user'}
if user_id is not None:
user_id = int(user_id)
if request.user.is_authenticated() and (request.user.pk == user_id or request.user.is_superuser):
p = get_object_or_404(User, pk=user_id)
if request.method == 'POST':
f = UserEditForm(request.POST, instance=p)
# Saving user
if f.is_valid():
f.save()
context['tests'] = "USER_SAVED"
else:
context['tests'] = "USER_NOT_SAVED"
else:
f = UserEditForm(instance=p)
context['profile'] = p
context['user_form'] = f.as_p()
return render(request, "core/edit_user.html", context)
return user(request, user_id)
def page(request, page_name=None): def page(request, page_name=None):
""" """
......
from django.shortcuts import render, redirect, get_object_or_404
from django.http import HttpResponse
from django.contrib.auth import logout as auth_logout
from django.db import models
from django.contrib.auth.forms import PasswordChangeForm
from core.models import User, Page
from core.views.forms import RegisteringForm, LoginForm, UserEditForm, PageEditForm, PagePropForm
import logging
logging.basicConfig(level=logging.DEBUG)
def index(request, context=None):
if context == None:
return render(request, "core/index.html", {'title': 'Bienvenue!'})
else:
return render(request, "core/index.html", context)
# This file contains all the views that concern the user model
from django.shortcuts import render, redirect, get_object_or_404
import logging
from core.views.forms import RegisteringForm, LoginForm
def register(request):
context = {'title': 'Register a user'}
if request.method == 'POST':
form = RegisteringForm(request.POST)
if form.is_valid():
logging.debug("Registering "+form.cleaned_data['first_name']+form.cleaned_data['last_name'])
u = form.save()
context['user_registered'] = u
context['tests'] = 'TEST_REGISTER_USER_FORM_OK'
form = RegisteringForm()
else:
context['error'] = 'Erreur'
context['tests'] = 'TEST_REGISTER_USER_FORM_FAIL'
else:
form = RegisteringForm()
context['form'] = form.as_p()
return render(request, "core/register.html", context)
def login(request):
"""
The login view
Needs to be improve with correct handling of form exceptions
"""
context = {'title': 'Login'}
if request.method == 'POST':
try:
form = LoginForm(request)
form.login()
context['tests'] = 'LOGIN_OK'
return render(request, 'core/index.html', context)
except Exception as e:
logging.debug(e)
context['error'] = "Login failed"
context['tests'] = 'LOGIN_FAIL'
else:
form = LoginForm()
context['form'] = form.as_p()
return render(request, "core/login.html", context)
def logout(request):
"""
The logout view
"""
auth_logout(request)
return redirect('core:index')
def user(request, user_id=None):
"""
Display a user's profile
"""
context = {'title': 'View a user'}
if user_id == None:
context['user_list'] = User.objects.all
return render(request, "core/user.html", context)
context['profile'] = get_object_or_404(User, pk=user_id)
return render(request, "core/user.html", context)
def user_edit(request, user_id=None):
"""
This view allows a user, or the allowed users to modify a profile
"""
user_id = int(user_id)
context = {'title': 'Edit a user'}
if user_id is not None:
user_id = int(user_id)
if request.user.is_authenticated() and (request.user.pk == user_id or request.user.is_superuser):
p = get_object_or_404(User, pk=user_id)
if request.method == 'POST':
f = UserEditForm(request.POST, instance=p)
# Saving user
if f.is_valid():
f.save()
context['tests'] = "USER_SAVED"
else:
context['tests'] = "USER_NOT_SAVED"
else:
f = UserEditForm(instance=p)
context['profile'] = p
context['user_form'] = f.as_p()
return render(request, "core/edit_user.html", context)
return user(request, user_id)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment