Suivi consommables : compteur papier, ruban et photos avec diagnostic ratio
- Onglet Consommables dans General : barres de progression papier/ruban, compteur photos - Capacites configurables (feuilles par bobine / poses par bobine) - Reset individuel papier/ruban (quand on change la bobine) - Diagnostic ratio ruban/papier pour verifier que le rembobinage fonctionne - Tracking automatique a chaque impression (format-aware) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -27,7 +27,7 @@ except ImportError:
|
||||
from backend.gallery import lister_photos, compter_photos, supprimer_photo, vider_galerie
|
||||
from backend.effects import appliquer_filtre, appliquer_overlay, chroma_key, lister_overlays, lister_fonds, lister_cadres, FILTRES
|
||||
from backend.collage import creer_strip, creer_collage
|
||||
from backend.destinations import distribuer_photo, detecter_usb, compteur_restant, reset_compteur, recuperer_booth_password
|
||||
from backend.destinations import distribuer_photo, detecter_usb, compteur_restant, reset_compteur, recuperer_booth_password, consommables_etat, reset_consommables
|
||||
from backend.printer import lister_imprimantes, imprimer
|
||||
from backend.mailer import envoyer_photo, charger_emails_historique, effacer_emails_historique, ajouter_au_spool, taille_spool, tache_spool_demarrage
|
||||
from backend.qrcode_gen import generer_qr, qr_galerie
|
||||
@@ -903,10 +903,41 @@ async def api_imprimer(donnees: dict):
|
||||
format_papier = donnees.get("format_papier") or None
|
||||
resultat = imprimer(chemin, copies=copies, cadre_override=cadre_override, format_papier=format_papier)
|
||||
if resultat.get("succes"):
|
||||
distribuer_photo(chemin, imprimee=True, copies=copies)
|
||||
distribuer_photo(chemin, imprimee=True, copies=copies, format_papier=format_papier)
|
||||
return resultat
|
||||
|
||||
|
||||
# --- API Consommables ---
|
||||
|
||||
@app.get("/api/consommables")
|
||||
async def api_consommables():
|
||||
return consommables_etat()
|
||||
|
||||
|
||||
@app.post("/api/consommables/reset")
|
||||
async def api_reset_consommables(request: Request):
|
||||
body = await request.json()
|
||||
quoi = body.get("quoi", "tout")
|
||||
reset_consommables(quoi)
|
||||
return consommables_etat()
|
||||
|
||||
|
||||
@app.post("/api/consommables/capacite")
|
||||
async def api_consommables_capacite(request: Request):
|
||||
body = await request.json()
|
||||
updates = {}
|
||||
if "papier_capacite" in body:
|
||||
updates["papier_capacite"] = int(body["papier_capacite"])
|
||||
if "ruban_capacite" in body:
|
||||
updates["ruban_capacite"] = int(body["ruban_capacite"])
|
||||
if updates:
|
||||
config = charger_config()
|
||||
conso = config.get("consommables", {})
|
||||
conso.update(updates)
|
||||
mettre_a_jour_config({"consommables": conso})
|
||||
return consommables_etat()
|
||||
|
||||
|
||||
# --- API Booth (galerie live) ---
|
||||
|
||||
@app.get("/api/booth/info")
|
||||
|
||||
Reference in New Issue
Block a user