summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--website/forms.py29
-rw-r--r--website/static/css/bootstrap.css7
-rw-r--r--website/templates/cfp.html5
-rw-r--r--website/templates/user-login.html52
-rw-r--r--website/templates/user-register.html43
-rw-r--r--website/urls.py6
-rw-r--r--website/views.py44
7 files changed, 177 insertions, 9 deletions
diff --git a/website/forms.py b/website/forms.py
index 3617a93..da48647 100644
--- a/website/forms.py
+++ b/website/forms.py
@@ -1,8 +1,9 @@
from django import forms
from django.db import models
from django.contrib.auth.models import User
+from django.contrib.auth import login, logout, authenticate
from django.core.validators import validate_email
-
+from django.contrib.auth.forms import UserCreationForm
from website.models import Proposal
@@ -21,3 +22,29 @@ class ProposalForm(forms.ModelForm):
elif attachment.size > (5*1024*1024):
raise forms.ValidationError('File size exceeds 5MB')
return attachment
+
+
+class UserRegisterForm(UserCreationForm):
+ class Meta:
+ model = User
+ fields = ('first_name', 'last_name', 'email', 'username', 'password1',
+ 'password2')
+
+
+class UserLoginForm(forms.Form):
+ username = forms.CharField(
+ widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Username'}),
+ label=''
+ )
+ password = forms.CharField(
+ widget=forms.PasswordInput(attrs={'class': 'form-control', 'placeholder': 'Password'}),
+ label=''
+ )
+ def clean(self):
+ super(UserLoginForm, self).clean()
+ u_name, pwd = self.cleaned_data["username"],\
+ self.cleaned_data["password"]
+ user = authenticate(username=u_name, password=pwd)
+ if not user:
+ raise forms.ValidationError("Invalid username/password")
+ return user
diff --git a/website/static/css/bootstrap.css b/website/static/css/bootstrap.css
index 5fd35bb..c1515c1 100644
--- a/website/static/css/bootstrap.css
+++ b/website/static/css/bootstrap.css
@@ -3758,7 +3758,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
float: left;
height: 20px;
padding: 15px 15px;
- font-size: 18px;
+ font-size: 15px;
line-height: 20px;
}
.navbar-brand:hover,
@@ -3770,8 +3770,8 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
.navbar > .container-fluid .navbar-brand {
margin-left: -15px;
color: #3676ab;
- font-size:35px;
- font-weight: 400;
+ font-size:30px;
+ font-weight: 300;
}
}
.navbar-toggle {
@@ -4056,6 +4056,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
}
.navbar-inverse .navbar-nav > li > a {
color: #3676ab;
+ font-size: 18px;
}
.navbar-inverse .navbar-nav > li > a:hover,
.navbar-inverse .navbar-nav > li > a:focus {
diff --git a/website/templates/cfp.html b/website/templates/cfp.html
index c584cc5..22b481e 100644
--- a/website/templates/cfp.html
+++ b/website/templates/cfp.html
@@ -17,7 +17,7 @@
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">{{ user.get_full_name|default:user.username }}<b class="caret"></b></a>
<ul class="dropdown-menu">
- <li><a href="{% url 'auth:logout' %}?next={{ request.path }}">Logout</a></li>
+ <li><a href="{% url 'auth:logout' %}?next=/2015/cfp">Logout</a></li>
</ul>
{% endif %}
</ul>
@@ -77,7 +77,8 @@
{% else %}
To Submit a Talk Login with:
<p><a href="{% url 'social:begin' 'google-oauth2' %}?next={{ request.path }}" class="btn btn btn-primary">Google</a> or
- <a href="{% url 'social:begin' 'facebook' %}?next={{ request.path }}" class="btn btn btn-primary">Facebook</a>
+ <a href="{% url 'social:begin' 'facebook' %}?next={{ request.path }}" class="btn btn btn-primary">Facebook</a> or
+ <a href="{% url 'website:userlogin' %}" class="btn btn btn-primary">Login/SignUp</a>
{% endif %}
</div>
</div>
diff --git a/website/templates/user-login.html b/website/templates/user-login.html
new file mode 100644
index 0000000..0020e34
--- /dev/null
+++ b/website/templates/user-login.html
@@ -0,0 +1,52 @@
+{% extends 'base.html' %}
+{% load static %}
+
+{% block navbar %}
+<div id="navbar-main">
+ <!-- Fixed navbar -->
+ <div class="navbar navbar-inverse navbar-fixed-top">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button>
+ <a class="navbar-brand" href="{% url 'website:home' %}">SciPy India 2015 </a>
+ </div>
+ <div class="navbar-collapse collapse">
+ <ul class="nav navbar-nav navbar-right">
+ <li><a href="{% url 'website:home' %}">Home</a></li>
+ <li><a href="{% url 'website:userregister' %}">Sign Up</a></li>
+ </ul>
+ </div>
+ <!--/.nav-collapse -->
+ </div>
+ </div>
+</div>
+{% endblock %}
+
+{% block content %}
+<div id="contact" name="contact">
+ <div class="container">
+ <div class="row white">
+ {% if login_required %}
+ <div class="alert alert-success" role="alert">
+ <button type="button" class="close" data-dismiss="alert" aria-label="Close">
+ <span aria-hidden="true">&times;</span>
+ </button>
+ <p>Successfully Registered ! Kindly login to proceed.</p>
+ </div>
+ {% endif %}
+ <h2 class="centered">Login</h2>
+ <hr>
+ <div class="col-md-4">
+ </div>
+ <div class="col-md-4">
+ <form action="" method="POST">
+ {{ form.as_p }}
+ <button class="btn btn btn-primary" type="submit">Login</button>
+ <a href="{% url 'website:userregister' %}" class="btn btn btn-primary">Sign Up</a>
+ {% csrf_token %}
+ </form>
+ </div>
+ </div>
+ </div>
+</div>
+{% endblock %}
diff --git a/website/templates/user-register.html b/website/templates/user-register.html
new file mode 100644
index 0000000..53cf8a6
--- /dev/null
+++ b/website/templates/user-register.html
@@ -0,0 +1,43 @@
+{% extends 'base.html' %}
+{% load static %}
+
+{% block navbar %}
+<div id="navbar-main">
+ <!-- Fixed navbar -->
+ <div class="navbar navbar-inverse navbar-fixed-top">
+ <div class="container">
+ <div class="navbar-header">
+ <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button>
+ <a class="navbar-brand" href="{% url 'website:home' %}">SciPy India 2015 </a>
+ </div>
+ <div class="navbar-collapse collapse">
+ <ul class="nav navbar-nav navbar-right">
+ <li><a href="{% url 'website:home' %}">Home</a></li>
+ <li><a href="{% url 'website:userlogin' %}">Login</a></li>
+ </ul>
+ </div>
+ <!--/.nav-collapse -->
+ </div>
+ </div>
+</div>
+{% endblock %}
+
+{% block content %}
+<div id="contact" name="contact">
+ <div class="container">
+ <div class="row white">
+ <h2 class="centered">Sign Up</h2>
+ <hr>
+ <div class="col-md-4">
+ </div>
+ <div class="col-md-4">
+ <form action="" method="POST">
+ {{ form.as_p }}
+ <button class="btn btn btn-primary" type="submit">SignUp</button>
+ {% csrf_token %}
+ </form>
+ </div>
+ </div>
+ </div>
+</div>
+{% endblock %}
diff --git a/website/urls.py b/website/urls.py
index d3e2508..324befe 100644
--- a/website/urls.py
+++ b/website/urls.py
@@ -3,6 +3,8 @@ from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
url(r'^$', 'website.views.home', name='home'),
- url(r'^cfp$', 'website.views.cfp', name='cfp'),
- url(r'^submit-cfp$', 'website.views.submitcfp', name='submitcfp'),
+ url(r'^cfp/$', 'website.views.cfp', name='cfp'),
+ url(r'^submit-cfp/$', 'website.views.submitcfp', name='submitcfp'),
+ url(r'^accounts/register/$', 'website.views.userregister', name='userregister'),
+ url(r'^accounts/login/$', 'website.views.userlogin', name='userlogin'),
)
diff --git a/website/views.py b/website/views.py
index c793c09..a85536d 100644
--- a/website/views.py
+++ b/website/views.py
@@ -13,11 +13,53 @@ from django.contrib.auth.decorators import login_required
from django.core.mail import send_mail
-from website.forms import ProposalForm
+from website.forms import ProposalForm, UserRegisterForm, UserLoginForm
from website.models import Proposal, Comments
from social.apps.django_app.default.models import UserSocialAuth
+def userregister(request):
+ context = {}
+ context.update(csrf(request))
+ if request.user.is_anonymous():
+ if request.method == 'POST':
+ form = UserRegisterForm(request.POST)
+ if form.is_valid():
+ form.save()
+ return HttpResponseRedirect('/accounts/login')
+ else:
+ context.update(csrf(request))
+ context['form'] = form
+ return render_to_response('user-register.html', context)
+ else:
+ form = UserRegisterForm()
+ context.update(csrf(request))
+ context['form'] = form
+ return render_to_response('user-register.html', context)
+ else:
+ context['user'] = request.user
+ return HttpResponseRedirect('/cfp')
+
+
+def userlogin(request):
+ context = {}
+ context.update(csrf(request))
+ if request.method == "POST":
+ form = UserLoginForm(request.POST)
+ if form.is_valid():
+ user = form.cleaned_data
+ login(request, user)
+ context['user'] = user
+ return render_to_response('cfp.html', context)
+ else:
+ context['form'] = form
+ return render_to_response('user-login.html', context)
+ else:
+ form = UserLoginForm()
+ context['form'] = form
+ return render_to_response('user-login.html', context)
+
+
def home(request):
context = {}
context.update(csrf(request))