Vraie page de connexion app (non-staff) + deconnexion

This commit is contained in:
2026-06-30 23:06:43 +02:00
parent e5138c60bd
commit 358cf35790
4 changed files with 54 additions and 3 deletions
+5 -1
View File
@@ -55,7 +55,11 @@
<a class="{% if vue == 'tva' %}on{% endif %}" href="/declaration/tva/?entreprise={{ entreprise.pk }}&annee={{ annee }}">Déclaration TVA</a>
<a class="saisie" href="/saisie/">+ Saisir</a>
<a href="/import/">Importer</a>
<a href="/admin/">Admin</a>
{% if user.is_staff %}<a href="/admin/">Admin</a>{% endif %}
<form method="post" action="/logout/" style="display:inline;margin:0;">
{% csrf_token %}
<button type="submit" style="background:var(--card);color:var(--txt);border:1px solid #334155;border-radius:8px;padding:7px 13px;font-size:14px;cursor:pointer;">Déconnexion</button>
</form>
</div>
<h1>{{ entreprise.nom }}</h1>
+42
View File
@@ -0,0 +1,42 @@
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>JB Compta — Connexion</title>
<style>
:root { --bg:#0f172a; --card:#1e293b; --txt:#e2e8f0; --muted:#94a3b8; --accent:#38bdf8; --bad:#f87171; }
body{margin:0;min-height:100vh;display:flex;align-items:center;justify-content:center;
font-family:system-ui,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--txt);}
.card{background:var(--card);border:1px solid #334155;border-radius:14px;padding:28px;width:340px;}
h1{font-size:20px;margin:0 0 4px;}
.sub{color:var(--muted);font-size:13px;margin-bottom:18px;}
label{display:block;font-size:12px;color:var(--muted);margin:10px 0 4px;}
input{width:100%;background:#0f172a;color:var(--txt);border:1px solid #334155;border-radius:8px;
padding:10px;font-size:14px;}
button{width:100%;margin-top:18px;background:var(--accent);color:#04263a;border:none;
border-radius:8px;padding:11px;font-size:15px;font-weight:600;cursor:pointer;}
.err{background:#7f1d1d;border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:12px;}
</style>
</head>
<body>
<div class="card">
<h1>JB Compta</h1>
<div class="sub">Connexion à ton espace comptable.</div>
{% if form.errors %}
<div class="err">Identifiant ou mot de passe incorrect. Vérifie aussi que ton compte est actif.</div>
{% endif %}
<form method="post" action="{% url 'login' %}">
{% csrf_token %}
<label for="id_username">Identifiant</label>
{{ form.username }}
<label for="id_password">Mot de passe</label>
{{ form.password }}
<input type="hidden" name="next" value="{{ next }}">
<button type="submit">Se connecter</button>
</form>
</div>
</body>
</html>
+4 -2
View File
@@ -106,5 +106,7 @@ STORAGES = {
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
# Redirections de connexion vers l'admin
LOGIN_URL = "/admin/login/"
# Connexion via la page de l'app (ouverte à tout utilisateur actif, pas seulement staff)
LOGIN_URL = "/login/"
LOGIN_REDIRECT_URL = "/dashboard/"
LOGOUT_REDIRECT_URL = "/login/"
+3
View File
@@ -1,4 +1,5 @@
from django.contrib import admin
from django.contrib.auth import views as auth_views
from django.urls import path, include
from django.views.generic import RedirectView
@@ -8,6 +9,8 @@ admin.site.index_title = "Gestion de la micro-entreprise"
urlpatterns = [
path("", RedirectView.as_view(url="/dashboard/", permanent=False)),
path("login/", auth_views.LoginView.as_view(), name="login"),
path("logout/", auth_views.LogoutView.as_view(), name="logout"),
path("admin/", admin.site.urls),
path("", include("compta.urls")),
]