""" Routes pour l'écran de scan à la douchette code-barres. La douchette émule un clavier : elle "tape" le code puis un retour à la ligne (touche Entrée). Il suffit donc d'un unique dans un
: le navigateur soumet automatiquement le formulaire quand Entrée est pressée, sans qu'on ait besoin d'écrire de JavaScript spécifique pour capter le scan. """ from fastapi import APIRouter, Depends, Form from fastapi.requests import Request from sqlmodel import Session, select from app.categories_arbre import aplatir, categories_racines from app.database import get_session from app.email_alerts import verifier_et_alerter from app.models import Materiel from app.templates_engine import templates router = APIRouter() def _contexte(session: Session, **kwargs) -> dict: """Contexte commun à toutes les réponses de l'écran de scan. categories_aplaties est toujours nécessaire : que le matériel scanné existe ou non, on peut avoir besoin du