docs: update CLAUDE.md with session learnings
This commit is contained in:
@@ -23,6 +23,9 @@ python -m venv .venv
|
||||
|
||||
# Production (Gunicorn)
|
||||
SECRET_KEY=<secret> ./start.sh
|
||||
|
||||
# Git commit (GPG signing désactivé — pinentry inaccessible dans cet env)
|
||||
git -c commit.gpgsign=false commit -m "..."
|
||||
```
|
||||
|
||||
## Variables d'environnement
|
||||
@@ -57,3 +60,6 @@ Flask app using the factory pattern (`create_app()` in `app/__init__.py`). The D
|
||||
- **Pas de migration de schéma** : l'app utilise `db.create_all()` uniquement (pas d'Alembic). Tout changement de modèle nécessite de supprimer `instance/worklog.db` en dev, ou une migration manuelle en prod.
|
||||
- **Barème kilométrique** : les tranches dans `config.toml` sont à mettre à jour manuellement chaque année (section `[bareme_kilometrique.YYYY]`).
|
||||
- **`datetime.utcnow()` deprecated** : les modèles utilisent `datetime.utcnow` (warning sur Python 3.14+). À remplacer par `datetime.now(UTC)` lors d'une prochaine évolution des modèles.
|
||||
- **Dates en français** : `strftime` utilise la locale système (anglais). Utiliser le filtre Jinja2 `{{ date | date_fr }}` défini dans `app/__init__.py`.
|
||||
- **`db.get_engine()` deprecated** en Flask-SQLAlchemy 3.x → utiliser `db.engine`.
|
||||
- **Migration `_migrate_db`** : vérifier l'existence de la table avant `ALTER TABLE` — SQLite peut avoir un fichier DB sans tables (ex: premier démarrage avec `instance/worklog.db` vide).
|
||||
|
||||
Reference in New Issue
Block a user