feat: impression galerie utilisateur (enable/quota/max_copies)
🚀 Deploy — JH Photomaton / 🔍 Vérification (push) Has been cancelled
🚀 Deploy — JH Photomaton / 🍓 Deploy sur le Pi (push) Has been cancelled

This commit is contained in:
2026-07-17 17:44:47 +02:00
parent 4388503102
commit d6642c2519
3 changed files with 101 additions and 1 deletions
+24 -1
View File
@@ -4,7 +4,7 @@ import asyncio
import logging
from pathlib import Path
from fastapi import APIRouter, Request, Query
from fastapi import APIRouter, Request, Query, Body
from fastapi.responses import JSONResponse
logger = logging.getLogger(__name__)
@@ -125,6 +125,29 @@ async def set_print_mode(request: Request, mode: str = Query(...)):
return {"ok": True, "mode": mode}
@router.post("/print/user-print-config")
async def set_user_print_config(request: Request, body: dict = Body(...)):
"""Configure l'impression depuis la galerie utilisateur."""
enabled = bool(body.get("user_print_enabled", False))
quota = max(0, int(body.get("user_print_quota", 0)))
max_copies = max(1, min(10, int(body.get("user_print_max_copies", 1))))
config_svc = request.app.state.config_service
config_svc.save_user_print_config(enabled, quota, max_copies)
logger.info("User print config: enabled=%s quota=%d max_copies=%d", enabled, quota, max_copies)
return {"ok": True, "user_print_enabled": enabled, "user_print_quota": quota, "user_print_max_copies": max_copies}
@router.get("/print/user-print-config")
async def get_user_print_config(request: Request):
"""Retourne la config impression galerie utilisateur."""
cfg = request.app.state.config.print
return {
"user_print_enabled": cfg.user_print_enabled,
"user_print_quota": cfg.user_print_quota,
"user_print_max_copies": cfg.user_print_max_copies,
}
# ── Gestion avancée des imprimantes CUPS ──────────────────────────────────────
@router.post("/print/printers/{printer_name}/enable")