Cleanup login form

This commit is contained in:
Phillip Stephens
2019-07-10 20:35:10 -07:00
parent d0630d5252
commit bff2ed7263
5 changed files with 116 additions and 30 deletions
+1 -1
View File
@@ -24,7 +24,7 @@ class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE) user = models.OneToOneField(User, on_delete=models.CASCADE)
avatar = models.ImageField(upload_to=path_and_rename, null=True, blank=True) avatar = models.ImageField(upload_to=path_and_rename, null=True, blank=True)
birthdate = models.DateTimeField(null=True, blank=True) birthdate = models.DateTimeField(null=True, blank=True)
use_gravatar = models.BooleanField(blank=True, default=False) use_gravatar = models.BooleanField(blank=True, default=False, verbose_name='Use Avatars from Gravatar?')
location = models.CharField(max_length=100, null=True, blank=True) location = models.CharField(max_length=100, null=True, blank=True)
def __str__(self): def __str__(self):
+98 -10
View File
@@ -1,25 +1,113 @@
{% extends 'base_accounts.html' %} {% extends 'base_accounts.html' %}
{% load form_tags widget_tweaks static %}
{% block title %}Sign up to AxioDL{% endblock %} {% block title %}Sign up to AxioDL{% endblock %}
{% block content %} {% block content %}
<div class="row justify-content-center"> <div class="d-flex p-2 justify-content-center mb-4">
<div class="col-lg-8 col-md-10 col-sm-12"> <div class="card border-dark bg-dark">
<div class="card border-dark"> <div class="card-header bg-dark text-light align-text-center">
<div class="card-header bg-dark text-light">
<div class="card-title"><h2 class="card-title">Sign up</h2></div> <div class="card-title"><h2 class="card-title">Sign up</h2></div>
</div> </div>
<div class="card-body">
<form method="post" novalidate> <form method="post" novalidate>
<div class="card-body bg-light border-dark">
<h3>*Denotes required fields</h3>
{% csrf_token %} {% csrf_token %}
{% include 'includes/form.html' %} {% if form.non_field_errors %}
<button type="submit" class="btn btn-primary btn-block">Create an account</button> <div class="alert alert-danger" role="alert">
</form> {% for error in form.non_field_errors %}
<p{% if forloop.last %} class="mb-0"{% endif %}>{{ error }}</p>
{% endfor %}
</div> </div>
{% endif %}
<!-- Profile username -->
*{{ form.user.username.label_tag }}
{% render_field form.user.username class=form.user.username|input_class %}
{% for error in form.user.username.errors %}
<div class="invalid-feedback">
{{ error }}
</div>
{% endfor %}
{% if form.user.username.help_text %}
<small class="form-text text-muted">
{{ form.user.username.help_text|safe }}
</small>
{% endif %}
<!-- Profile email -->
*{{ form.user.email.label_tag }}
{% render_field form.user.email class=form.user.email|input_class %}
{% for error in form.user.email.errors %}
<div class="invalid-feedback">
{{ error }}
</div>
{% endfor %}
{% if form.user.email.help_text %}
<small class="form-text text-muted">
{{ form.user.email.help_text|safe }}
</small>
{% endif %}
<!-- Profile password -->
*{{ form.user.password1.label_tag }}
{% render_field form.user.password1 class=form.user.password1|input_class %}
{% for error in form.user.password1.errors %}
<div class="invalid-feedback">
{{ error }}
</div>
{% endfor %}
{% if form.user.password1.help_text %}
<small class="form-text text-muted">
{{ form.user.password1.help_text|safe }}
</small>
{% endif %}
<!-- Profile password confirmation -->
*{{ form.user.password2.label_tag }}
{% render_field form.user.password2 class=form.user.password2|input_class %}
{% for error in form.user.password2.errors %}
<div class="invalid-feedback">
{{ error }}
</div>
{% endfor %}
{% if form.user.password2.help_text %}
<small class="form-text text-muted">
{{ form.user.password2.help_text|safe }}
</small>
{% endif %}
<!-- Profile avatar -->
{{ form.profile.avatar.label_tag }}
{% render_field form.profile.avatar %}
{% for error in form.profile.avatar.errors %}
<div class="invalid-feedback">
{{ error }}
</div>
{% endfor %}
{% if form.profile.avatar.help_text %}
<small class="form-text text-muted">
{{ form.profile.avatar.help_text|safe }}
</small>
{% endif %}
<!-- Profile use_gravatar -->
<div class="form-check">
{% render_field form.profile.use_gravatar class=form.profile.use_gravatar|input_class %}
{{ form.profile.use_gravatar.label_tag }}
{% for error in form.profile.use_gravatar.errors %}
<div class="invalid-feedback">
{{ error }}
</div>
{% endfor %}
{% if form.profile.use_gravatar.help_text %}
<small class="form-text text-muted">
{{ form.profile.use_gravatar.help_text|safe }}
</small>
{% endif %}
</div>
<button type="submit" class="btn btn-primary btn-block">Create an account</button>
</div>
</form>
<div class="card-footer text-muted text-center"> <div class="card-footer text-muted text-center">
Already have an account? <a href="{% url 'login' %}">Log in</a> Already have an account? <a href="{% url 'login' %}">Log in</a>
</div> </div>
</div> </div>
</div> </div>
</div>
{% endblock %} {% endblock %}
+3 -3
View File
@@ -1,10 +1,10 @@
from django.shortcuts import render, redirect, get_object_or_404 from django.shortcuts import render, redirect, get_object_or_404
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required, permission_required
from django.db.models import Count from django.db.models import Count
from django.utils import timezone from django.utils import timezone
from django.urls import reverse from django.urls import reverse
from django.utils.decorators import method_decorator from django.utils.decorators import method_decorator
from django.views.generic import UpdateView, ListView from django.views.generic import UpdateView, ListView, CreateView, DeleteView
from .forms import NewTopicForm, PostForm from .forms import NewTopicForm, PostForm
from .models import Category, Board, Topic, Post from .models import Category, Board, Topic, Post
@@ -26,7 +26,7 @@ class TopicListView(ListView):
return queryset return queryset
@login_required @method_decorator(login_required, name='dispatch')
def new_topic(request, pk): def new_topic(request, pk):
board = get_object_or_404(Board, pk=pk) board = get_object_or_404(Board, pk=pk)
if request.method == 'POST': if request.method == 'POST':
@@ -1,2 +0,0 @@
{% extends "admin/base_site.html" %}
{% block title %}Test page{% endblock %}
+8 -8
View File
@@ -120,6 +120,14 @@
{% endblock %} {% endblock %}
</div> </div>
{% block javascript %}{% endblock %}
<div class="footer py-1 bg-dark text-white-50 text-center" style="z-index:20">
<small style="font-size:1.0em">Copyleft <span class="copy-left" ;>&copy</span> AxioDL, written in <a
href="https://python.org/">Python</a> using <a href="https://www.djangoproject.com/">Django</a>.
The source code for this website is available on our gitlab instance <a
href="https://gitlab.axiodl.com/AxioDL/axiodl-www">here</a>
</small>
</div>
{% endblock %} {% endblock %}
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"
@@ -148,13 +156,5 @@
}); });
$('.ui.dropdown').dropdown(); $('.ui.dropdown').dropdown();
</script> </script>
{% block javascript %}{% endblock %}
<div class="footer py-1 bg-dark text-white-50 text-center" style="z-index:20">
<small style="font-size:1.0em">Copyleft <span class="copy-left" ;>&copy</span> AxioDL, written in <a
href="https://python.org/">Python</a> using <a href="https://www.djangoproject.com/">Django</a>.
The source code for this website is available on our gitlab instance <a
href="https://gitlab.axiodl.com/AxioDL/axiodl-www">here</a>
</small>
</div>
</body> </body>
</html> </html>