Signup about done. Also enabled apps again.
This commit is contained in:
parent
0d96243876
commit
1de0b1ad0e
|
@ -25,8 +25,8 @@ INSTALLED_APPS = [
|
||||||
'allauth.account',
|
'allauth.account',
|
||||||
'bootstrap3',
|
'bootstrap3',
|
||||||
|
|
||||||
# 'profiles',
|
'profiles',
|
||||||
# 'camps',
|
'camps',
|
||||||
]
|
]
|
||||||
|
|
||||||
STATIC_URL = '/static/'
|
STATIC_URL = '/static/'
|
||||||
|
@ -79,6 +79,6 @@ AUTHENTICATION_BACKENDS = (
|
||||||
ACCOUNT_AUTHENTICATION_METHOD = 'email'
|
ACCOUNT_AUTHENTICATION_METHOD = 'email'
|
||||||
ACCOUNT_EMAIL_REQUIRED = True
|
ACCOUNT_EMAIL_REQUIRED = True
|
||||||
ACCOUNT_EMAIL_VERIFICATION = True
|
ACCOUNT_EMAIL_VERIFICATION = True
|
||||||
ACCOUNT_EMAIL_SUBJECT_PREFIX = '[bornhack]'
|
ACCOUNT_EMAIL_SUBJECT_PREFIX = '[bornhack] '
|
||||||
ACCOUNT_USERNAME_REQUIRED = False
|
ACCOUNT_USERNAME_REQUIRED = False
|
||||||
LOGIN_URL = '/login/'
|
LOGIN_URL = '/login/'
|
||||||
|
|
|
@ -2,6 +2,10 @@ body {
|
||||||
margin-top: 90px;
|
margin-top: 90px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
* {
|
||||||
|
border-radius: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
a, a:active, a:focus {
|
a, a:active, a:focus {
|
||||||
outline: none;
|
outline: none;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,23 +4,25 @@
|
||||||
{% load account %}
|
{% load account %}
|
||||||
{% load bootstrap3 %}
|
{% load bootstrap3 %}
|
||||||
|
|
||||||
{% block body_class %}{{ block.super }} narrow{% endblock %}
|
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6 col-md-offset-3">
|
||||||
<h1>{% trans "Login" %}</h1>
|
<h1>{% trans "Login" %}</h1>
|
||||||
|
|
||||||
<p>{% blocktrans %}If you have not created an account yet, then please
|
<p>{% blocktrans %}If you have not created an account yet, then please
|
||||||
<a href="{{ signup_url }}">sign up</a> first.{% endblocktrans %}</p>
|
<a href="{{ signup_url }}">sign up</a> first.{% endblocktrans %}</p>
|
||||||
|
|
||||||
<form class="login" method="POST" action="{% url 'account_login' %}">
|
<form class="login" method="POST">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% bootstrap_form form %}
|
{% bootstrap_form form %}
|
||||||
<button class="form-control btn btn-primary " type="submit">{% trans "Login" %}</button>
|
<button class="form-control btn btn-black" type="submit">{% trans "Login" %}</button>
|
||||||
{% if redirect_field_value %}
|
{% if redirect_field_value %}
|
||||||
<input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
|
<input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<a class="button secondaryAction" href="{% url 'account_reset_password' %}">{% trans "Forgot Password?" %}</a>
|
<a class="button secondaryAction" href="{% url 'account_reset_password' %}">{% trans "Lost Password?" %}</a>
|
||||||
</form>
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
22
bornhack/templates/account/password_reset.html
Normal file
22
bornhack/templates/account/password_reset.html
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% load account %}
|
||||||
|
{% load bootstrap3 %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6 col-md-offset-3">
|
||||||
|
<h1>Lost your password?</h1>
|
||||||
|
<p>
|
||||||
|
Lost your password? Input your email, and we will send you an e-mail
|
||||||
|
with instructions for resetting your password.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<form class="login" method="POST">
|
||||||
|
{% csrf_token %}
|
||||||
|
{% bootstrap_form form %}
|
||||||
|
<button class="form-control btn btn-black" type="submit">Send e-mail</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
14
bornhack/templates/account/password_reset_done.html
Normal file
14
bornhack/templates/account/password_reset_done.html
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% load account %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6 col-md-offset-3">
|
||||||
|
<h1>Reset e-mail sent</h1>
|
||||||
|
<p>
|
||||||
|
We have now sent an e-mail with instructions for how to reset your
|
||||||
|
password.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
31
bornhack/templates/account/password_reset_from_key.html
Normal file
31
bornhack/templates/account/password_reset_from_key.html
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% load account %}
|
||||||
|
{% load bootstrap3 %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6 col-md-offset-3">
|
||||||
|
|
||||||
|
<h1>{% if token_fail %}Invalidt link{% else %}Reset password{% endif %}</h1>
|
||||||
|
{% if token_fail %}
|
||||||
|
<p>
|
||||||
|
The given token is invalid.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a href="{% url 'account_reset_password' %}" class="btn btn-primary">Request new reset</a>
|
||||||
|
</p>
|
||||||
|
{% else %}
|
||||||
|
{% if form %}
|
||||||
|
<form class="login" method="POST">
|
||||||
|
{% csrf_token %}
|
||||||
|
{% bootstrap_form form %}
|
||||||
|
<button class="form-control btn btn-black" type="submit">Reset password</button>
|
||||||
|
</form>
|
||||||
|
{% else %}
|
||||||
|
<p>Your password has been reset</p>
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
15
bornhack/templates/account/password_reset_from_key_done.html
Normal file
15
bornhack/templates/account/password_reset_from_key_done.html
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{% load account %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6 col-md-offset-3">
|
||||||
|
<h1>Password reset</h1>
|
||||||
|
<p>
|
||||||
|
Your password has been reset. You can now <a href="{% url 'account_login' %}">login</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -1,18 +1,21 @@
|
||||||
{% extends 'base.html' %}
|
{% extends "base.html" %}
|
||||||
{% load bootstrap3 %}
|
|
||||||
|
|
||||||
{% block body_class %}{{ block.super }} narrow{% endblock %}
|
{% load i18n %}
|
||||||
|
{% load account %}
|
||||||
|
{% load bootstrap3 %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<div class="cover">
|
<div class="row">
|
||||||
<form method="post" class="signup-form">
|
<div class="col-md-6 col-md-offset-3">
|
||||||
|
<h1>{% trans "Signup" %}</h1>
|
||||||
|
|
||||||
|
<form class="login" method="POST">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% bootstrap_form form %}
|
{% bootstrap_form form %}
|
||||||
<button type="submit" class="btn btn-primary btn-lg">
|
<button class="form-control btn btn-black" type="submit">{% trans "Sign Up" %}</button>
|
||||||
Signup
|
|
||||||
</button>
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
|
@ -33,9 +33,15 @@
|
||||||
|
|
||||||
<div id="navbar" class="navbar-collapse collapse">
|
<div id="navbar" class="navbar-collapse collapse">
|
||||||
<ul class="nav navbar-nav pull-right">
|
<ul class="nav navbar-nav pull-right">
|
||||||
<li><a href="#sign-up">Sign up</a></li>
|
|
||||||
<li><a href="#FAQ">FAQ</a></li>
|
<li><a href="#FAQ">FAQ</a></li>
|
||||||
<li><a href="https://wiki.bornhack.dk">Wiki</a></li>
|
<li><a href="https://wiki.bornhack.dk">Wiki</a></li>
|
||||||
|
{% if user.is_authenticated %}
|
||||||
|
<li><a href="{% url 'profiles:detail' %}">Profile</a></li>
|
||||||
|
<li><a href="{% url 'account_logout' %}">Logout</a></li>
|
||||||
|
{% else %}
|
||||||
|
<li><a href="{% url 'account_login' %}">Login</a></li>
|
||||||
|
<li><a href="{% url 'account_signup' %}">Sign up</a></li>
|
||||||
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
# from allauth.account.views import (
|
from allauth.account.views import (
|
||||||
# SignupView,
|
SignupView,
|
||||||
# LoginView,
|
LoginView,
|
||||||
# LogoutView,
|
LogoutView,
|
||||||
# ConfirmEmailView,
|
ConfirmEmailView,
|
||||||
# EmailVerificationSentView,
|
EmailVerificationSentView,
|
||||||
# PasswordResetView
|
PasswordResetView
|
||||||
# )
|
)
|
||||||
from django.conf.urls import include, url
|
from django.conf.urls import include, url
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.views.generic import TemplateView
|
from django.views.generic import TemplateView
|
||||||
|
@ -16,40 +16,41 @@ urlpatterns = [
|
||||||
TemplateView.as_view(template_name='frontpage.html'),
|
TemplateView.as_view(template_name='frontpage.html'),
|
||||||
name='frontpage'
|
name='frontpage'
|
||||||
),
|
),
|
||||||
# url(
|
#url(
|
||||||
# r'^login/$',
|
#r'^login/$',
|
||||||
# LoginView.as_view(),
|
#LoginView.as_view(),
|
||||||
# name='account_login',
|
#name='account_login',
|
||||||
# ),
|
#),
|
||||||
# url(
|
url(
|
||||||
# r'^logout/$',
|
r'^logout/$',
|
||||||
# LogoutView.as_view(),
|
LogoutView.as_view(),
|
||||||
# name='account_logout',
|
name='account_logout',
|
||||||
# ),
|
),
|
||||||
# url(
|
#url(
|
||||||
# r'^confirm/(?P<key>\S+)$',
|
#r'^confirm/(?P<key>\S+)$',
|
||||||
# ConfirmEmailView.as_view(),
|
#ConfirmEmailView.as_view(),
|
||||||
# name='account_confirm_email',
|
#name='account_confirm_email',
|
||||||
# ),
|
#),
|
||||||
# url(
|
#url(
|
||||||
# r'^signup/done/$',
|
#r'^signup/done/$',
|
||||||
# EmailVerificationSentView.as_view(),
|
#EmailVerificationSentView.as_view(),
|
||||||
# name='account_email_verification_sent',
|
#name='account_email_verification_sent',
|
||||||
# ),
|
#),
|
||||||
# url(
|
#url(
|
||||||
# r'^signup/$',
|
#r'^signup/$',
|
||||||
# SignupView.as_view(),
|
#SignupView.as_view(),
|
||||||
# name='account_signup',
|
#name='account_signup',
|
||||||
# ),
|
#),
|
||||||
# url(
|
#url(
|
||||||
# r'^reset-password/$',
|
#r'^reset-password/$',
|
||||||
# PasswordResetView.as_view(),
|
#PasswordResetView.as_view(),
|
||||||
# name='account_reset_password',
|
#name='account_reset_password',
|
||||||
# ),
|
#),
|
||||||
# url(
|
url(
|
||||||
# r'^profile/',
|
r'^profile/',
|
||||||
# include('profiles.urls', namespace='profiles')
|
include('profiles.urls', namespace='profiles')
|
||||||
# ),
|
),
|
||||||
|
url(r'^accounts/', include('allauth.urls')),
|
||||||
|
|
||||||
url(r'^admin/', include(admin.site.urls)),
|
url(r'^admin/', include(admin.site.urls)),
|
||||||
]
|
]
|
||||||
|
|
78
camps/migrations/0001_initial.py
Normal file
78
camps/migrations/0001_initial.py
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import models, migrations
|
||||||
|
import uuid
|
||||||
|
from django.conf import settings
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Camp',
|
||||||
|
fields=[
|
||||||
|
('created', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('updated', models.DateTimeField(auto_now=True)),
|
||||||
|
('uuid', models.UUIDField(default=uuid.uuid4, serialize=False, editable=False, primary_key=True)),
|
||||||
|
('name', models.CharField(max_length=255, help_text='Name of the camp, ie. Bornhack.', verbose_name='Name')),
|
||||||
|
('start', models.DateTimeField(help_text='When the camp starts.', unique=True, verbose_name='Start date')),
|
||||||
|
('end', models.DateTimeField(help_text='When the camp ends.', unique=True, verbose_name='End date')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name_plural': 'Camps',
|
||||||
|
'verbose_name': 'Camp',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Day',
|
||||||
|
fields=[
|
||||||
|
('created', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('updated', models.DateTimeField(auto_now=True)),
|
||||||
|
('uuid', models.UUIDField(default=uuid.uuid4, serialize=False, editable=False, primary_key=True)),
|
||||||
|
('date', models.DateField(help_text='What date?', verbose_name='Date')),
|
||||||
|
('camp', models.ForeignKey(to='camps.Camp', help_text='Which camp does this day belong to.', verbose_name='Camp')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name_plural': 'Days',
|
||||||
|
'verbose_name': 'Day',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Expense',
|
||||||
|
fields=[
|
||||||
|
('created', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('updated', models.DateTimeField(auto_now=True)),
|
||||||
|
('uuid', models.UUIDField(default=uuid.uuid4, serialize=False, editable=False, primary_key=True)),
|
||||||
|
('description', models.CharField(max_length=255, help_text='What this expense covers.', verbose_name='Description')),
|
||||||
|
('amount', models.DecimalField(max_digits=7, help_text='The amount of the expense.', verbose_name='Amount', decimal_places=2)),
|
||||||
|
('currency', models.CharField(max_length=3, choices=[('btc', 'BTC'), ('dkk', 'DKK'), ('eur', 'EUR'), ('sek', 'SEK')], help_text='What currency the amount is in.', verbose_name='Currency')),
|
||||||
|
('camp', models.ForeignKey(to='camps.Camp', help_text='The camp to which this expense relates to.', verbose_name='Camp')),
|
||||||
|
('covered_by', models.ForeignKey(to=settings.AUTH_USER_MODEL, blank=True, help_text='Which user, if any, covered this expense.', verbose_name='Covered by', null=True)),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name_plural': 'Expenses',
|
||||||
|
'verbose_name': 'Expense',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Signup',
|
||||||
|
fields=[
|
||||||
|
('created', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('updated', models.DateTimeField(auto_now=True)),
|
||||||
|
('uuid', models.UUIDField(default=uuid.uuid4, serialize=False, editable=False, primary_key=True)),
|
||||||
|
('cost', models.DecimalField(default=1500.0, decimal_places=2, help_text='What the user should/is willing to pay for this signup.', verbose_name='Cost', max_digits=7)),
|
||||||
|
('paid', models.BooleanField(help_text='Whether the user has paid.', verbose_name='Paid?', default=False)),
|
||||||
|
('camp', models.ForeignKey(to='camps.Camp', help_text='The camp that has been signed up for.', verbose_name='Camp')),
|
||||||
|
('user', models.ForeignKey(to=settings.AUTH_USER_MODEL, help_text='The user that has signed up.', verbose_name='User')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name_plural': 'Signups',
|
||||||
|
'verbose_name': 'Signup',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
21
camps/migrations/0002_auto_20160117_1718.py
Normal file
21
camps/migrations/0002_auto_20160117_1718.py
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.9.1 on 2016-01-17 17:18
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
import django.db.models.deletion
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('camps', '0001_initial'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='day',
|
||||||
|
name='camp',
|
||||||
|
field=models.ForeignKey(help_text='Which camp does this day belong to.', on_delete=django.db.models.deletion.CASCADE, related_name='days', to='camps.Camp', verbose_name='Camp'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -1,10 +0,0 @@
|
||||||
{% extends 'base.html' %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
|
|
||||||
<form method="post">
|
|
||||||
{{ form }}
|
|
||||||
<button type="submit">Signup</button>
|
|
||||||
</form>
|
|
||||||
|
|
||||||
{% endblock %}
|
|
29
profiles/migrations/0001_initial.py
Normal file
29
profiles/migrations/0001_initial.py
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import models, migrations
|
||||||
|
from django.conf import settings
|
||||||
|
import uuid
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Profile',
|
||||||
|
fields=[
|
||||||
|
('created', models.DateTimeField(auto_now_add=True)),
|
||||||
|
('updated', models.DateTimeField(auto_now=True)),
|
||||||
|
('uuid', models.UUIDField(serialize=False, editable=False, primary_key=True, default=uuid.uuid4)),
|
||||||
|
('user', models.OneToOneField(to=settings.AUTH_USER_MODEL, help_text='The django user this profile belongs to.', verbose_name='User')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'verbose_name_plural': 'Profiles',
|
||||||
|
'verbose_name': 'Profile',
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
|
@ -5,8 +5,5 @@
|
||||||
<p class="lead">
|
<p class="lead">
|
||||||
Yeah! You now have a BornHack user!
|
Yeah! You now have a BornHack user!
|
||||||
</p>
|
</p>
|
||||||
<p>
|
|
||||||
You have also been added to our announcement mailing list. It is on this list that we will announce more information about the camp.
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
Loading…
Reference in a new issue