feat(measure): timer cicalino con countdown e buzzer dopo fine ciclo misura
- Blueprint: passa measurement_interval_minutes dalla ricetta al template task_execute - Dopo "Fine ciclo misura": countdown MM:SS con banner amber animato sopra footer - Allo scadere: 3 beep sonori (Web Audio API 880Hz) + reset misurazioni per nuovo ciclo - Contatore cicli visibile nel banner timer Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -135,11 +135,15 @@ def task_execute(task_id: int):
|
||||
# Load all task IDs for this recipe (ordered) for auto-advance
|
||||
recipe_id = task_resp.get("recipe_id")
|
||||
all_task_ids = []
|
||||
measurement_interval_minutes = None
|
||||
if recipe_id:
|
||||
tasks_resp = api_client.get(f"/api/recipes/{recipe_id}/tasks")
|
||||
if isinstance(tasks_resp, list):
|
||||
sorted_tasks = sorted(tasks_resp, key=lambda t: t.get("order_index", 0))
|
||||
all_task_ids = [t["id"] for t in sorted_tasks]
|
||||
recipe_resp = api_client.get(f"/api/recipes/{recipe_id}")
|
||||
if not recipe_resp.get("error"):
|
||||
measurement_interval_minutes = recipe_resp.get("measurement_interval_minutes")
|
||||
|
||||
return render_template(
|
||||
"measure/task_execute.html",
|
||||
@@ -147,6 +151,7 @@ def task_execute(task_id: int):
|
||||
lot_number=lot_number,
|
||||
serial_number=serial_number,
|
||||
all_task_ids=all_task_ids,
|
||||
measurement_interval_minutes=measurement_interval_minutes,
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user