From 7362ac04d99f9e77f8a62f3e3331b8c329a6513f Mon Sep 17 00:00:00 2001 From: Zambom Date: Tue, 20 Dec 2016 18:46:12 -0200 Subject: [PATCH] Adding register page --- amadeus/views.py | 3 ++- users/forms.py | 4 ++-- users/templates/users/login.html | 2 +- users/templates/users/register.html | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ users/urls.py | 4 +++- users/views.py | 28 +++++++++++++++++++++++++--- 6 files changed, 121 insertions(+), 8 deletions(-) create mode 100644 users/templates/users/register.html diff --git a/amadeus/views.py b/amadeus/views.py index 5475df0..9eadb59 100644 --- a/amadeus/views.py +++ b/amadeus/views.py @@ -1,7 +1,8 @@ +from django.http import Http404 from django.shortcuts import redirect def index(request): if request.user.is_authenticated: - return Http404('

Page not found

') + raise Http404('

Page not found

') else: return redirect('users:login') \ No newline at end of file diff --git a/users/forms.py b/users/forms.py index 7ec8399..a0056d0 100644 --- a/users/forms.py +++ b/users/forms.py @@ -28,7 +28,7 @@ class Validation(forms.ModelForm): return password2 -class RegisterUserForm(ValidationRegister): +class RegisterUserForm(Validation): password = forms.CharField(label=_('Password'), widget=forms.PasswordInput) password2 = forms.CharField(label = _('Confirm Password'), widget = forms.PasswordInput) @@ -45,4 +45,4 @@ class RegisterUserForm(ValidationRegister): class Meta: model = User - fields = ['username', 'name', 'last_name', 'social_name',] + fields = ['email', 'username', 'last_name', 'social_name',] diff --git a/users/templates/users/login.html b/users/templates/users/login.html index eded37e..98358c9 100644 --- a/users/templates/users/login.html +++ b/users/templates/users/login.html @@ -57,7 +57,7 @@
- {% trans 'Sign Up' %} + {% trans 'Sign Up' %}
diff --git a/users/templates/users/register.html b/users/templates/users/register.html new file mode 100644 index 0000000..493048a --- /dev/null +++ b/users/templates/users/register.html @@ -0,0 +1,88 @@ +{% extends 'base.html' %} + +{% load static i18n %} +{% load widget_tweaks %} + +{% block nav %} +{% endblock %} + +{% block sidebar %} +{% endblock sidebar %} + +{% block content %} + {% if messages %} + {% for message in messages %} + + {% endfor %} + {% endif %} + +
+
+
+ +
+
+
+ +
+
+
+
+
+
+

{% trans "User Register" %}

+
+
+ +
+ {% csrf_token %} + {% for field in form %} +
+
+
+ {% if field.field.required %} + + {% else %} + + {% endif %} +
+
+ {% render_field field class='form-control' %} + {{ field.help_text }} + {% if field.errors %} +
+ +
+ {% endif %} +
+
+
+ {% endfor %} +
+
+ +
+ +
+
+
+
+
+
+{% endblock %} \ No newline at end of file diff --git a/users/urls.py b/users/urls.py index 5581027..b1575b0 100644 --- a/users/urls.py +++ b/users/urls.py @@ -1,8 +1,10 @@ from django.conf.urls import url +from django.contrib.auth import views as auth_views from . import views urlpatterns = [ url(r'^login/$', views.login, name='login'), - + url(r'^logout/$', auth_views.logout, {'next_page': 'users:login'}, name='logout'), + url(r'^signup/$', views.RegisterUser.as_view(), name = 'signup'), ] diff --git a/users/views.py b/users/views.py index 80e845c..c77d399 100644 --- a/users/views.py +++ b/users/views.py @@ -1,3 +1,4 @@ +from django.http import Http404 from django.shortcuts import get_object_or_404,redirect, render from django.db.models import Q from django.views import generic @@ -13,7 +14,7 @@ from itertools import chain from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger from .models import User - +from .forms import RegisterUserForm #API IMPORTS from rest_framework import viewsets @@ -220,10 +221,31 @@ from rest_framework.permissions import IsAuthenticated, IsAuthenticatedOrReadOnl # return context +class RegisterUser(generic.edit.CreateView): + model = User + form_class = RegisterUserForm + template_name = 'users/register.html' + + success_url = reverse_lazy('users:login') + + def get_context_data(self, **kwargs): + context = super(RegisterUser, self).get_context_data(**kwargs) + context['title'] = _('Sign Up') + + return context + + def form_valid(self, form): + form.save() + + assign_role(form.instance, 'student') + + messages.success(self.request, _('User successfully registered!')) + + return super(RegisterUser, self).form_valid(form) def login(request): context = {} - context['title'] = 'Log In' + context['title'] = _('Log In') if request.POST: username = request.POST['email'] @@ -236,7 +258,7 @@ def login(request): messages.add_message(request, messages.ERROR, _('E-mail or password are incorrect.')) context["username"] = username elif request.user.is_authenticated: - return redirect(reverse('users:login')) + raise Http404('

Page not found

') return render(request,"users/login.html",context) -- libgit2 0.21.2