gilles 174ed9c25d feat(plantes): popup variété + bouton Variété + temp_germination/temps_levee_j
- Ajoute detailPlantObj (ref<Plant>) synchronisé dans openDetails/prevVariety/nextVariety/closeDetail
- Renomme detailVarieties (ref<Plant[]>) en detailPlantGroup pour la navigation par groupe de nom_commun
- Ajoute detailVarieties comme computed<PlantVariety[]> depuis detailPlantObj.value.varieties
- Ajoute refs/fonctions formulaire variété : showFormVariety, editVariety, formVariety, openAddVariety, openEditVariety, closeFormVariety, submitVariety, deleteVariety
- Bouton  Variété dans le footer du popup détail
- Liste des PlantVariety dans le popup détail (avec édition/suppression et alerte DLUO)
- Champs temp_germination et temps_levee_j dans la section caractéristiques
- Popup formulaire variété (z-[70]) avec tous les champs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 19:34:39 +01:00
2026-03-01 07:21:46 +01:00
2026-03-08 10:04:14 +01:00
2026-02-22 15:05:40 +01:00
2026-02-22 15:05:40 +01:00
2026-02-22 22:18:32 +01:00
2026-02-22 22:18:32 +01:00
2026-02-22 15:05:40 +01:00
2026-02-22 18:34:50 +01:00
2026-02-22 15:05:40 +01:00
2026-03-08 10:04:14 +01:00
2026-02-22 22:18:32 +01:00
2026-02-22 15:05:40 +01:00
2026-02-22 22:18:32 +01:00
2026-02-22 15:05:40 +01:00
2026-02-22 15:05:40 +01:00
2026-02-22 15:05:40 +01:00
2026-02-22 15:05:40 +01:00
2026-02-22 22:18:32 +01:00
2026-02-22 15:05:40 +01:00
2026-02-22 18:34:50 +01:00

Jardin — Application de gestion de jardins

Interface web mobile-first pour gérer vos jardins, cultures, tâches et calendrier lunaire.
Thème : Gruvbox Dark Seventies.


Prérequis

  • Docker + Docker Compose

Lancement rapide

cp .env.example .env
docker compose up --build

Développement local

Backend

cd backend
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
DATABASE_URL=sqlite:///./data/jardin.db UPLOAD_DIR=./data/uploads uvicorn app.main:app --reload

Frontend

cd frontend
npm install
npm run dev   # → http://localhost:5173

Tests backend

cd backend
source .venv/bin/activate
pytest tests/ -v

Structure du projet

jardin/
├── backend/              # API FastAPI + SQLite
│   ├── app/
│   │   ├── main.py       # App FastAPI, lifespan, CORS
│   │   ├── database.py   # Engine SQLite, session
│   │   ├── config.py     # Variables d'environnement
│   │   ├── seed.py       # Données de démo
│   │   ├── models/       # Tables SQLModel (11 tables)
│   │   └── routers/      # Endpoints API
│   └── tests/            # Tests pytest (18 tests)
├── frontend/             # SPA Vue 3 + Vite + Tailwind
│   └── src/
│       ├── api/          # Clients Axios
│       ├── stores/       # Stores Pinia
│       ├── components/   # Header, Drawer
│       ├── router/       # Vue Router (9 routes)
│       └── views/        # 9 pages
├── data/                 # Volume persistant (SQLite + uploads)
├── docker-compose.yml
└── .env.example

Données de démo

Au premier démarrage, l'application crée automatiquement :

  • 1 jardin "Mon potager" (grille 6×4, plein sud)
  • 3 variétés : Tomate Andine Cornue, Courgette Verte, Laitue Batavia
  • 2 plantations en cours
  • 3 tâches (arrosage, traitement pucerons, compost)

Sauvegarde

La base SQLite se trouve dans data/jardin.db. Copiez ce fichier pour sauvegarder :

cp data/jardin.db data/jardin_backup_$(date +%Y%m%d).db

API

Documentation interactive disponible sur http://localhost:8060/docs (Swagger UI).

Guide reseau local / VM / OpenClaw:

  • docs/api_utilisation_reseau_local_openclaw.md

Endpoints principaux :

Méthode Endpoint Description
GET /api/health Santé de l'API
GET/POST /api/gardens Jardins
GET/PUT/DELETE /api/gardens/{id} Jardin par ID
GET/POST /api/gardens/{id}/cells Cases de la grille
GET/POST /api/gardens/{id}/measurements Mesures temp/humidité
GET/POST /api/varieties Variétés
GET/POST /api/plantings Plantations
GET/POST /api/plantings/{id}/events Historique d'une plantation
GET/POST /api/tasks Tâches
GET /api/settings Paramètres utilisateur
PUT /api/settings Mettre à jour les paramètres
GET /api/lunar?month=YYYY-MM Calendrier lunaire
POST /api/upload Upload d'une image
Description
No description provided
Readme 340 MiB
Languages
JavaScript 60.2%
Vue 19.6%
Python 17.7%
TypeScript 2.3%
CSS 0.1%