0a4ba2001b
modified: .env.example new file: compta/__pycache__/__init__.cpython-310.pyc new file: compta/__pycache__/admin.cpython-310.pyc new file: compta/__pycache__/apps.cpython-310.pyc new file: compta/__pycache__/models.cpython-310.pyc modified: compta/admin.py new file: compta/categories_indy.py modified: compta/indy.py modified: compta/management/commands/seed_reference.py new file: compta/migrations/0010_categorie_compte_pcg.py modified: compta/models.py modified: compta/templates/compta/base.html new file: compta/templates/compta/gestion.html modified: compta/urls.py new file: compta/views_gestion.py new file: config/__pycache__/__init__.cpython-310.pyc new file: config/__pycache__/settings.cpython-310.pyc modified: config/settings.py modified: entrypoint.sh
88 lines
4.7 KiB
HTML
88 lines
4.7 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="fr">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<title>JB Compta — {% block titre %}Tableau de bord{% endblock %}</title>
|
|
<style>
|
|
:root { --bg:#0f172a; --card:#1e293b; --txt:#e2e8f0; --muted:#94a3b8;
|
|
--accent:#38bdf8; --ok:#34d399; --warn:#fbbf24; --bad:#f87171; }
|
|
* { box-sizing:border-box; }
|
|
body { margin:0; font-family:system-ui,Segoe UI,Roboto,sans-serif;
|
|
background:var(--bg); color:var(--txt); padding:24px; }
|
|
h1 { margin:0 0 4px; font-size:22px; }
|
|
h2 { font-size:15px; color:var(--muted); margin:24px 0 10px; font-weight:600; }
|
|
a { color:var(--accent); text-decoration:none; }
|
|
.sub { color:var(--muted); margin-bottom:16px; }
|
|
.nav { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
|
|
.nav a { padding:7px 13px; border-radius:8px; border:1px solid #334155;
|
|
background:var(--card); font-size:14px; }
|
|
.nav a.on { background:var(--accent); color:#04263a; border-color:var(--accent); font-weight:600; }
|
|
.nav a.saisie { margin-left:auto; }
|
|
form.filters { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:20px; }
|
|
select, button, input { background:var(--card); color:var(--txt); border:1px solid #334155;
|
|
border-radius:8px; padding:8px 12px; font-size:14px; }
|
|
button { cursor:pointer; }
|
|
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:16px; margin-bottom:8px; }
|
|
.card { background:var(--card); border:1px solid #334155; border-radius:12px; padding:16px; }
|
|
.card .label { color:var(--muted); font-size:13px; }
|
|
.card .value { font-size:24px; font-weight:600; margin-top:6px; }
|
|
.card .hint { color:var(--muted); font-size:12px; margin-top:4px; }
|
|
.ok{color:var(--ok)} .warn{color:var(--warn)} .bad{color:var(--bad)}
|
|
.bar { height:8px; background:#334155; border-radius:99px; overflow:hidden; margin-top:8px; }
|
|
.bar > span { display:block; height:100%; background:var(--accent); }
|
|
.row { display:grid; grid-template-columns:2fr 1fr; gap:16px; margin-top:8px; }
|
|
@media(max-width:800px){ .row{grid-template-columns:1fr;} }
|
|
canvas { max-width:100%; }
|
|
table { width:100%; border-collapse:collapse; font-size:14px; }
|
|
td,th { padding:8px; border-bottom:1px solid #334155; text-align:right; }
|
|
th:first-child, td:first-child { text-align:left; }
|
|
tr.total td { font-weight:600; border-top:2px solid #475569; }
|
|
.exports a { display:inline-block; margin-right:12px; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
{% if not entreprise %}
|
|
<h1>Aucune entreprise</h1>
|
|
<p class="sub">Crée une entreprise dans <a href="/admin/">l'administration</a>,
|
|
ou <a href="/saisie/">saisis une opération</a>.</p>
|
|
{% else %}
|
|
<div class="nav">
|
|
<a class="{% if vue == 'global' %}on{% endif %}" href="/dashboard/?entreprise={{ entreprise.pk }}&annee={{ annee }}">Global</a>
|
|
<a class="{% if vue == 'mensuel' %}on{% endif %}" href="/dashboard/mensuel/?entreprise={{ entreprise.pk }}&annee={{ annee }}">Mensuel</a>
|
|
<a class="{% if vue == 'urssaf' %}on{% endif %}" href="/declaration/urssaf/?entreprise={{ entreprise.pk }}&annee={{ annee }}">Déclaration URSSAF</a>
|
|
<a class="{% if vue == 'tva' %}on{% endif %}" href="/declaration/tva/?entreprise={{ entreprise.pk }}&annee={{ annee }}">Déclaration TVA</a>
|
|
<a class="{% if vue == 'gestion' %}on{% endif %}" href="/gestion/?entreprise={{ entreprise.pk }}">Entrées / sorties</a>
|
|
<a class="saisie" href="/saisie/">+ Saisir</a>
|
|
<a href="/import/">Importer</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>
|
|
<div class="sub">{{ entreprise.get_activite_display }} (principale) ·
|
|
{% if entreprise.franchise_tva %}Franchise de TVA{% else %}Assujetti TVA{% endif %}
|
|
{% if entreprise.versement_liberatoire %}· Versement libératoire{% endif %}
|
|
· Exercice {{ annee }}</div>
|
|
|
|
<form class="filters" method="get">
|
|
<select name="entreprise" onchange="this.form.submit()">
|
|
{% for e in entreprises %}<option value="{{ e.pk }}" {% if e.pk == entreprise.pk %}selected{% endif %}>{{ e.nom }}</option>{% endfor %}
|
|
</select>
|
|
<select name="annee" onchange="this.form.submit()">
|
|
{% for a in annees %}<option value="{{ a }}" {% if a == annee %}selected{% endif %}>{{ a }}</option>{% endfor %}
|
|
</select>
|
|
{% block extrafilters %}{% endblock %}
|
|
</form>
|
|
|
|
{% block content %}{% endblock %}
|
|
{% endif %}
|
|
|
|
{% block scripts %}{% endblock %}
|
|
</body>
|
|
</html>
|