Commit graph

7 commits

Author SHA1 Message Date
maxsoch f734259f73 Refonte du système visuel : tokens sémantiques, mode sombre, cohérence
Évolution du thème existant "étiquette d'inventaire" plutôt que
remplacement : couche de tokens sémantiques + échelles espacement/
typographie, mode sombre via prefers-color-scheme, hiérarchie de boutons
(primaire/secondaire/danger), icônes SVG et état actif dans la nav, fil
d'Ariane et compteur de résultats sur /materiels, badges de stock bas
réutilisés depuis /scan, formulaire de planification regroupé en carte
sur /destinataires, et correctif de contraste en mode sombre (inputs
natifs + boutons qui restaient rendus en clair).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EEC2W1xtjmpHkEYgua7gWC
2026-07-19 08:47:50 +02:00
maxsoch 5792b453e7 Prépare la dockerization : Dockerfile, docker-compose, .dockerignore
Image Python 3.14-slim (même version qu'en dev local), utilisateur
non-root, healthcheck sans dépendance externe, un seul worker Uvicorn
(SQLite gère mal les écritures concurrentes multi-process). data/ monté
en volume dans docker-compose.yml pour garder la base SQLite visible et
sauvegardable directement dans le dossier du projet, comme en dev local.

Non testé avec un vrai build : Docker indisponible dans cet environnement
de dev, à vérifier avant un premier déploiement.
2026-07-14 19:44:35 +02:00
maxsoch 11da706573 Planification du résumé de stock modifiable depuis l'interface
L'horaire de l'email récapitulatif se configure maintenant sur
/destinataires (raccourcis courants + expression cron personnalisée) au
lieu de .env, avec reprogrammation immédiate sans redémarrage. Stocké en
base (ParametrePlanification) plutôt que dans un fichier de config.
Défaut changé pour tous les lundis à 9h.

Les exemples et le code n'utilisent que des noms de jours (mon, tue, ...)
dans les expressions cron : vérifié empiriquement qu'APScheduler ne suit
pas la convention Unix pour les jours numériques (0=lundi chez lui, pas
0=dimanche), ce qui rendrait "0 9 * * 1" trompeur.
2026-07-14 19:37:36 +02:00
maxsoch a788bf4392 Résumé de stock dans les alertes + email récapitulatif planifié
L'alerte immédiate de stock bas inclut maintenant un résumé de tous les
articles actuellement sous leur seuil, pas seulement celui qui l'a
déclenchée. Ajout d'un second email, planifié via une expression cron
(RESUME_STOCK_CRON, APScheduler intégré à l'app — pas de cron système à
configurer) : stock bas en tête, puis le reste du stock groupé par
catégorie. scripts/envoyer_resume_stock.py permet de le déclencher
manuellement, ou de brancher l'envoi sur un cron système à la place.
2026-07-14 19:28:39 +02:00
maxsoch 5088182f20 Création rapide depuis le scan, ajustement de stock flexible, filtres matériels
Un code-barre inconnu scanné propose désormais le même formulaire de
création que /materiels au lieu d'un simple message d'erreur. La
quantité peut être ajustée d'un delta choisi librement (pas figé à ±1)
ou définie directement à une valeur absolue après un inventaire. La
racine "/" sert directement la liste des matériels sans redirection.
La page Matériels gagne un filtre par catégorie, un filtre stock bas,
et un tri incluant un regroupement par catégorie.
2026-07-14 19:17:27 +02:00
maxsoch 7ce6540924 Refonte des listings et arborescence de catégories à profondeur illimitée
Catégorie/SousCategorie fusionnées en un seul modèle auto-référencé
(parent_id), pour permettre une imbrication sans limite de niveaux. Les
listings matériels/catégories/destinataires passent en lignes repliées
(<details>) avec recherche côté serveur, ce qui corrige le débordement
horizontal du tableau tout-en-input et reste utilisable sur de longues
listes. Style de l'écran de scan également retravaillé (frontend-design).
2026-07-14 19:06:37 +02:00
maxsoch 8bb5c9406a Initial scaffold: gestion de stock IT pour le département IT
App FastAPI + SQLite + SQLModel + Jinja2 pour gérer le stock de matériel
IT (catégories/sous-catégories/matériels), avec recherche par scan de
code-barres et alertes email de stock bas.
2026-07-14 18:38:59 +02:00