diff --git a/static/css/style.css b/static/css/style.css index 9b509b8..4160d26 100644 --- a/static/css/style.css +++ b/static/css/style.css @@ -221,6 +221,10 @@ header menu a.identity { width: 250px; } +body.no-sidebar header menu a.identity { + display: none; +} + header menu a.identity i { display: inline-block; vertical-align: middle; @@ -289,11 +293,13 @@ nav a i { .columns { display: flex; align-items: stretch; + justify-content: center; } .left-column { flex-grow: 1; width: 300px; + max-width: 700px; padding: 15px; } @@ -315,6 +321,10 @@ nav a i { border-radius: 0 0 5px 0; } +body.no-sidebar .right-column { + display: none; +} + .right-column h2 { background: var(--color-highlight); padding: 8px 10px; diff --git a/templates/auth/login.html b/templates/auth/login.html index 96c0e98..a0588a9 100644 --- a/templates/auth/login.html +++ b/templates/auth/login.html @@ -2,11 +2,14 @@ {% block title %}Login{% endblock %} +{% block body_class %}no-sidebar{% endblock %} + {% block content %}
{% csrf_token %}
Login + {{ form.non_field_errors }} {% for field in form %} {% include "forms/_field.html" %} {% endfor %} diff --git a/users/views/auth.py b/users/views/auth.py index acb22b6..02c75e6 100644 --- a/users/views/auth.py +++ b/users/views/auth.py @@ -1,8 +1,10 @@ from django import forms from django.conf import settings +from django.contrib.auth.forms import AuthenticationForm from django.contrib.auth.password_validation import validate_password from django.contrib.auth.views import LoginView, LogoutView from django.shortcuts import get_object_or_404, render +from django.utils.translation import gettext_lazy as _ from django.views.generic import FormView from core.models import Config @@ -10,6 +12,11 @@ from users.models import Invite, PasswordReset, User class Login(LoginView): + class form_class(AuthenticationForm): + error_messages = { + "invalid_login": _("No account was found with that email and password."), + "inactive": _("This account is inactive."), + } template_name = "auth/login.html"