Adding static signup page.

This commit is contained in:
Samuel Clay 2014-02-14 15:30:46 -08:00
parent 2455bb7b15
commit 3bd8c56e71
6 changed files with 86 additions and 3 deletions

View file

@ -2,7 +2,9 @@ import stripe
import datetime
from django.contrib.auth.decorators import login_required
from django.views.decorators.http import require_POST
from django.views.decorators.csrf import csrf_protect
from django.contrib.auth import logout as logout_user
from django.contrib.auth import login as login_user
from django.http import HttpResponse, HttpResponseRedirect
from django.contrib.sites.models import Site
from django.contrib.auth.models import User
@ -16,6 +18,7 @@ from apps.profile.models import Profile, PaymentHistory, RNewUserQueue
from apps.reader.models import UserSubscription, UserSubscriptionFolders
from apps.profile.forms import StripePlusPaymentForm, PLANS, DeleteAccountForm
from apps.profile.forms import ForgotPasswordForm, ForgotPasswordReturnForm, AccountSettingsForm
from apps.reader.forms import SignupForm
from apps.social.models import MSocialServices, MActivity, MSocialProfile
from utils import json_functions as json
from utils.user_functions import ajax_login_required
@ -76,6 +79,24 @@ def get_preference(request):
response = dict(code=code, payload=payload)
return response
@csrf_protect
def signup(request):
form = SignupForm()
if request.method == "POST":
form = SignupForm(data=request.POST)
if form.is_valid():
new_user = form.save()
login_user(request, new_user)
logging.user(new_user, "~FG~SB~BBNEW SIGNUP~FW")
new_user.profile.activate_free()
return HttpResponseRedirect(request.POST['next'])
return render_to_response('accounts/signup.html', {
'form': form,
'next': request.REQUEST.get('next', "")
}, context_instance=RequestContext(request))
@ajax_login_required
@require_POST

View file

@ -77,7 +77,7 @@ class SignupForm(forms.Form):
'invalid': "Your username may only contain letters and numbers."
})
email = forms.EmailField(widget=forms.TextInput(attrs={'maxlength': 75, 'class': 'NB-input'}),
label=_(u'email address'),
label=_(u'email'),
required=True,
error_messages={'required': 'Please enter an email.'})
password = forms.CharField(widget=forms.PasswordInput(attrs={'class': 'NB-input'}),

View file

@ -10225,7 +10225,7 @@ form.opml_import_form input {
margin: 24px auto;
}
.NB-static-login .NB-static-form {
width: 360px;
width: 320px;
}
.NB-static-oauth .NB-static-form-label label {
width: 120px;
@ -10259,7 +10259,11 @@ form.opml_import_form input {
font-weight: bold;
clear: both;
}
.NB-static-form-alttext {
margin: 24px 0 0 120px;
padding-top: 12px;
border-top: 1px solid rgba(0, 0, 0, .1);
}
/* ======================== */
/* = Feed Options Popover = */

View file

@ -38,6 +38,7 @@
<input type="submit" value="login" class="NB-modal-submit-button NB-modal-submit-green NB-static-form-submit" />
<input type="hidden" name="next" value="{{ next }}" />
<p class="NB-static-form-alttext"><a href="{% url "signup" %}?next={{ next }}">Create an account</a></a>
</form>
</div>

View file

@ -0,0 +1,55 @@
{% extends 'base.html' %}
{% load typogrify_tags utils_tags zebra_tags %}
{% block bodyclass %}NB-static NB-static-oauth NB-static-login{% endblock %}
{% block extra_head_js %}
<script type="text/javascript" charset="utf-8">
$(document).ready(function() {
$("input[name=username]").focus();
});
</script>
{% include_stylesheets "common" %}
{% endblock %}
{% block title %}Create an Account{% endblock %}
{% block content %}
<div class="NB-static-title">
Create an Account
</div>
<div class="NB-static-form-wrapper" style="overflow:hidden">
<form method="post" class="NB-static-form" action="{% url "signup" %}">
{% if form.errors %}
{% if form.errors.username %}
<p class="NB-error error">{{ form.errors.username.as_text }}</p>
{% else %}{% if form.errors.email %}
<p class="NB-error error">{{ form.errors.email.as_text }}</p>
{% else %}
<p class="NB-error error">{{ form.non_field_errors.as_text }}</p>
{% endif %}{% endif %}
{% else %}{% if next %}
<p class="NB-error error">Please create an account to continue.</p>
{% endif %}{% endif %}
{% csrf_token %}
<div class="NB-static-form-label">{{ form.username.label_tag }}</div>
<div class="NB-static-form-input">{{ form.username }}</div>
<div class="NB-static-form-label">{{ form.password.label_tag }}</div>
<div class="NB-static-form-input">{{ form.password }}</div>
<div class="NB-static-form-label">{{ form.email.label_tag }}</div>
<div class="NB-static-form-input">{{ form.email }}</div>
<input type="submit" value="Sign Up" class="NB-modal-submit-button NB-modal-submit-green NB-static-form-submit" />
<input type="hidden" name="next" value="{{ next }}" />
<p class="NB-static-form-alttext"><a href="{% url "login" %}?next={{ next }}">Login to your account</a></a>
</form>
</div>
{% endblock %}

View file

@ -3,6 +3,7 @@ from django.conf import settings
from apps.reader import views as reader_views
from apps.social import views as social_views
from apps.static import views as static_views
from apps.profile import views as profile_views
from django.contrib import admin
admin.autodiscover()
@ -53,6 +54,7 @@ urlpatterns = patterns('',
url(r'^account/login/?$',
'django.contrib.auth.views.login',
{'template_name': 'accounts/login.html'}, name='login'),
url(r'^account/signup/?$', profile_views.signup, name='signup'),
url(r'^account/logout/?$',
'django.contrib.auth.views.logout',
{'next_page': '/'}, name='logout'),