diff --git a/src/backend/api/routers/tasks.py b/src/backend/api/routers/tasks.py
index 501dbba..7d1ad1f 100644
--- a/src/backend/api/routers/tasks.py
+++ b/src/backend/api/routers/tasks.py
@@ -172,6 +172,7 @@ async def create_task(
new_task = RecipeTask(
version_id=new_version.id,
order_index=max_order + 1,
+ task_type=data.task_type,
title=data.title,
directive=data.directive,
description=data.description,
diff --git a/src/backend/migrations/versions/007_add_task_type.py b/src/backend/migrations/versions/007_add_task_type.py
new file mode 100644
index 0000000..807d99f
--- /dev/null
+++ b/src/backend/migrations/versions/007_add_task_type.py
@@ -0,0 +1,64 @@
+"""add an explicit type to recipe tasks
+
+Until now the kind of a task was deduced: quotes present meant a measurement,
+otherwise a note. A measurement task whose quotes had not been entered yet was
+therefore treated as a note - the system behaved differently depending on how
+complete the recipe happened to be.
+
+Existing rows are classified by the rule that was in force, so nothing changes
+behaviour on upgrade: tasks with quotes become 'measure'. Tasks with no quotes but
+a drawing attached become 'drawing' rather than 'note' - that is what they already
+displayed as, and calling them notes would be the one place this migration did
+change behaviour.
+
+Revision ID: 007_task_type
+Revises: 006_measurement_run
+Create Date: 2026-07-28
+
+"""
+from typing import Sequence, Union
+
+from alembic import op
+import sqlalchemy as sa
+
+revision: str = '007_task_type'
+down_revision: Union[str, None] = '006_measurement_run'
+branch_labels: Union[str, Sequence[str], None] = None
+depends_on: Union[str, Sequence[str], None] = None
+
+TASK_TYPES = ('note', 'measure', 'drawing', 'xf_compare', 'camera_measure')
+
+
+def upgrade() -> None:
+ op.add_column(
+ 'recipe_tasks',
+ sa.Column(
+ 'task_type',
+ sa.Enum(*TASK_TYPES, name='task_type_enum'),
+ nullable=False,
+ server_default='note',
+ ),
+ )
+ op.create_index('ix_recipe_tasks_task_type', 'recipe_tasks', ['task_type'])
+
+ # Backfill by the rule the frontend used, so no recipe changes behaviour.
+ op.execute(
+ """
+ UPDATE recipe_tasks
+ SET task_type = 'measure'
+ WHERE id IN (SELECT DISTINCT task_id FROM recipe_subtasks)
+ """
+ )
+ op.execute(
+ """
+ UPDATE recipe_tasks
+ SET task_type = 'drawing'
+ WHERE task_type = 'note'
+ AND file_path IS NOT NULL
+ """
+ )
+
+
+def downgrade() -> None:
+ op.drop_index('ix_recipe_tasks_task_type', table_name='recipe_tasks')
+ op.drop_column('recipe_tasks', 'task_type')
diff --git a/src/backend/models/api/task.py b/src/backend/models/api/task.py
index 9119a14..f2e50de 100644
--- a/src/backend/models/api/task.py
+++ b/src/backend/models/api/task.py
@@ -1,8 +1,13 @@
"""Pydantic schemas for RecipeTask and RecipeSubtask operations."""
-from typing import Any, Optional
+from typing import Any, Literal, Optional
from pydantic import BaseModel, ConfigDict, Field
+from src.backend.models.orm.task import TASK_TYPES
+
+# Kept in step with the ORM enum so the two cannot drift apart.
+TaskType = Literal[TASK_TYPES]
+
class SubtaskCreate(BaseModel):
"""Schema for creating a subtask."""
@@ -53,6 +58,7 @@ class SubtaskResponse(BaseModel):
class TaskCreate(BaseModel):
"""Schema for creating a task."""
title: str = Field(..., min_length=1, max_length=255)
+ task_type: TaskType = "note"
directive: Optional[str] = None
description: Optional[str] = None
file_path: Optional[str] = Field(None, max_length=500)
@@ -64,6 +70,7 @@ class TaskCreate(BaseModel):
class TaskUpdate(BaseModel):
"""Schema for updating a task."""
title: Optional[str] = Field(None, min_length=1, max_length=255)
+ task_type: Optional[TaskType] = None
directive: Optional[str] = None
description: Optional[str] = None
file_path: Optional[str] = Field(None, max_length=500)
@@ -79,6 +86,7 @@ class TaskResponse(BaseModel):
version_id: int
recipe_id: Optional[int] = None
order_index: int
+ task_type: str
title: str
directive: Optional[str] = None
description: Optional[str] = None
diff --git a/src/backend/models/orm/task.py b/src/backend/models/orm/task.py
index 7973943..9fdd6a3 100644
--- a/src/backend/models/orm/task.py
+++ b/src/backend/models/orm/task.py
@@ -12,6 +12,15 @@ if TYPE_CHECKING:
from src.backend.models.orm.recipe import RecipeVersion
+# What a task is, declared by whoever writes the recipe instead of guessed from its
+# contents. The last two are not built yet; they are in the enum from the start
+# because widening a MySQL enum later is an ALTER on a live table.
+TASK_TYPES = ("note", "measure", "drawing", "xf_compare", "camera_measure")
+
+# Types the operator screen treats as "there are quotes to take here".
+MEASURING_TASK_TYPES = ("measure", "camera_measure")
+
+
class RecipeTask(Base):
__tablename__ = "recipe_tasks"
@@ -20,6 +29,16 @@ class RecipeTask(Base):
Integer, ForeignKey("recipe_versions.id"), nullable=False
)
order_index: Mapped[int] = mapped_column(Integer, nullable=False, default=0)
+ # Declared, not deduced. The old rule - "has subtasks, therefore a measurement" -
+ # meant a measurement task whose quotes had not been entered yet behaved as a
+ # note, so the system acted differently depending on how finished the recipe was.
+ task_type: Mapped[str] = mapped_column(
+ Enum(*TASK_TYPES, name="task_type_enum"),
+ nullable=False,
+ default="note",
+ server_default="note",
+ index=True,
+ )
title: Mapped[str] = mapped_column(String(255), nullable=False)
directive: Mapped[Optional[str]] = mapped_column(Text, nullable=True)
description: Mapped[Optional[str]] = mapped_column(Text, nullable=True)
diff --git a/src/backend/services/recipe_service.py b/src/backend/services/recipe_service.py
index 8065804..8d40812 100644
--- a/src/backend/services/recipe_service.py
+++ b/src/backend/services/recipe_service.py
@@ -55,6 +55,9 @@ async def _copy_tasks_to_version(
new_task = RecipeTask(
version_id=target_version.id,
order_index=task.order_index,
+ # Carried over explicitly: a copy-on-write version that dropped the type
+ # would silently reclassify every task the moment a recipe is edited.
+ task_type=task.task_type,
title=task.title,
directive=task.directive,
description=task.description,
@@ -254,6 +257,7 @@ async def create_new_version(
default_task = RecipeTask(
version_id=new_version.id,
order_index=0,
+ task_type="drawing",
title="Technical Drawing",
file_path=data.file_path,
file_type=data.file_type or (
diff --git a/src/backend/tests/test_task_type.py b/src/backend/tests/test_task_type.py
new file mode 100644
index 0000000..f20e3dd
--- /dev/null
+++ b/src/backend/tests/test_task_type.py
@@ -0,0 +1,171 @@
+"""Tests for the explicit task type (point 2).
+
+The type used to be deduced - quotes present meant a measurement - so a measurement
+task whose quotes had not been entered yet was treated as a note, and the system
+behaved differently depending on how complete the recipe was. These tests pin the
+type down as something declared and carried.
+"""
+import pytest
+from httpx import AsyncClient
+from sqlalchemy import select
+
+from src.backend.models.orm.recipe import RecipeVersion
+from src.backend.models.orm.task import RecipeTask
+from src.backend.tests.conftest import auth_headers, create_test_recipe
+
+
+async def _current_version(db_session, recipe_id: int) -> RecipeVersion:
+ row = await db_session.execute(
+ select(RecipeVersion).where(
+ RecipeVersion.recipe_id == recipe_id,
+ RecipeVersion.is_current == True, # noqa: E712
+ )
+ )
+ return row.scalar_one()
+
+
+async def test_task_defaults_to_note(client: AsyncClient, maker_user, db_session):
+ recipe = await create_test_recipe(db_session, user_id=maker_user.id, code="REC-T1")
+ await db_session.commit()
+
+ resp = await client.post(
+ f"/api/recipes/{recipe.id}/tasks",
+ headers=auth_headers(maker_user),
+ json={"title": "Solo una nota"},
+ )
+ assert resp.status_code == 201, resp.text
+ assert resp.json()["task_type"] == "note"
+
+
+@pytest.mark.parametrize("declared", ["note", "measure", "drawing"])
+async def test_task_keeps_the_declared_type(
+ client: AsyncClient, maker_user, db_session, declared,
+):
+ recipe = await create_test_recipe(
+ db_session, user_id=maker_user.id, code=f"REC-{declared}",
+ )
+ await db_session.commit()
+
+ resp = await client.post(
+ f"/api/recipes/{recipe.id}/tasks",
+ headers=auth_headers(maker_user),
+ json={"title": f"Task {declared}", "task_type": declared},
+ )
+ assert resp.status_code == 201, resp.text
+ assert resp.json()["task_type"] == declared
+
+
+async def test_measure_task_without_quotes_is_still_a_measure_task(
+ client: AsyncClient, maker_user, db_session,
+):
+ """The criterion from the document: an unfinished recipe must not change kind."""
+ recipe = await create_test_recipe(db_session, user_id=maker_user.id, code="REC-NOQ")
+ await db_session.commit()
+
+ created = await client.post(
+ f"/api/recipes/{recipe.id}/tasks",
+ headers=auth_headers(maker_user),
+ json={"title": "Misura da compilare", "task_type": "measure"},
+ )
+ task_id = created.json()["id"]
+
+ fetched = await client.get(f"/api/tasks/{task_id}", headers=auth_headers(maker_user))
+ body = fetched.json()
+ assert body["subtasks"] == [], "il task non ha ancora quote"
+ assert body["task_type"] == "measure", "e resta comunque un task di misura"
+
+
+async def test_unknown_type_is_rejected(client: AsyncClient, maker_user, db_session):
+ recipe = await create_test_recipe(db_session, user_id=maker_user.id, code="REC-BAD")
+ await db_session.commit()
+
+ resp = await client.post(
+ f"/api/recipes/{recipe.id}/tasks",
+ headers=auth_headers(maker_user),
+ json={"title": "x", "task_type": "qualcosa"},
+ )
+ assert resp.status_code == 422
+
+
+async def test_type_can_be_changed(client: AsyncClient, maker_user, db_session):
+ recipe = await create_test_recipe(db_session, user_id=maker_user.id, code="REC-CHG")
+ await db_session.commit()
+ created = await client.post(
+ f"/api/recipes/{recipe.id}/tasks",
+ headers=auth_headers(maker_user),
+ json={"title": "Nasce nota", "task_type": "note"},
+ )
+ task_id = created.json()["id"]
+
+ resp = await client.put(
+ f"/api/tasks/{task_id}",
+ headers=auth_headers(maker_user),
+ json={"task_type": "measure"},
+ )
+ assert resp.status_code == 200, resp.text
+ assert resp.json()["task_type"] == "measure"
+
+
+async def test_type_survives_copy_on_write_versioning(
+ client: AsyncClient, maker_user, measurement_tec_user, db_session,
+):
+ """A new version must not silently reclassify every task of the recipe."""
+ recipe = await create_test_recipe(db_session, user_id=maker_user.id, code="REC-COW")
+ await db_session.commit()
+
+ version = await _current_version(db_session, recipe.id)
+ row = await db_session.execute(
+ select(RecipeTask).where(RecipeTask.version_id == version.id)
+ )
+ first_task = row.scalars().first()
+
+ # Declare it a drawing. The point is that this survives, not how it got set.
+ await client.put(
+ f"/api/tasks/{first_task.id}",
+ headers=auth_headers(maker_user),
+ json={"task_type": "drawing"},
+ )
+
+ # Measure on the current version, which forces the next edit to copy-on-write.
+ await client.post(
+ "/api/measurements/",
+ headers=auth_headers(measurement_tec_user),
+ json={
+ "subtask_id": first_task.subtasks[0].id,
+ "version_id": version.id,
+ "value": 10.0,
+ },
+ )
+
+ # Editing now must create a new version.
+ await client.put(
+ f"/api/recipes/{recipe.id}",
+ headers=auth_headers(maker_user),
+ json={"name": "Rinominata"},
+ )
+
+ new_version = await _current_version(db_session, recipe.id)
+ assert new_version.id != version.id, "l'edit doveva creare una nuova versione"
+
+ copied = await db_session.execute(
+ select(RecipeTask).where(RecipeTask.version_id == new_version.id)
+ )
+ types = sorted(t.task_type for t in copied.scalars().all())
+ assert "drawing" in types, "il tipo dichiarato non e' sopravvissuto alla copia"
+
+
+async def test_task_list_exposes_the_type(client: AsyncClient, maker_user, db_session):
+ """The operator's task list reads the type, so it must come over the wire."""
+ recipe = await create_test_recipe(db_session, user_id=maker_user.id, code="REC-LST")
+ await db_session.commit()
+ await client.post(
+ f"/api/recipes/{recipe.id}/tasks",
+ headers=auth_headers(maker_user),
+ json={"title": "Misura", "task_type": "measure"},
+ )
+
+ resp = await client.get(
+ f"/api/recipes/{recipe.id}/tasks", headers=auth_headers(maker_user),
+ )
+ assert resp.status_code == 200
+ assert all("task_type" in t for t in resp.json())
diff --git a/src/frontend/flask_app/templates/maker/task_editor.html b/src/frontend/flask_app/templates/maker/task_editor.html
index bbd30ac..0badd37 100644
--- a/src/frontend/flask_app/templates/maker/task_editor.html
+++ b/src/frontend/flask_app/templates/maker/task_editor.html
@@ -270,6 +270,18 @@
class="tmf-input"
placeholder="{{ _('Es. Controllo dimensionale flangia') }}">
+
+
+
{{ _('Tipo') }} *
+
+ {{ _('Nota') }}
+ {{ _('Misura') }}
+ {{ _('Disegno') }}
+
+
+ {{ _('Un task di misura resta tale anche prima di inserire le quote') }}
+
+
{{ _('Direttiva') }}
@@ -516,6 +528,14 @@
+
+ {{ _('Tipo') }}
+
+ {{ _('Nota') }}
+ {{ _('Misura') }}
+ {{ _('Disegno') }}
+
+
{{ _('Direttiva') }}
{# Fermo linea + Fine produzione (measurement tasks only) #}
-
+
{# While the line is stopped this becomes the way to restart it, so the
capoturno never has to hunt for a second control. #}
@@ -182,7 +182,7 @@
{# ──────────────────────────────────────────────
LEFT SIDEBAR — Marker list (vertical, hidden when no subtasks)
────────────────────────────────────────────── #}
-
+ {# ================================================================
+ MISURA SENZA QUOTE — declared a measurement task but none configured yet.
+ Under the old rule this screen quietly looked like a note; now the task keeps
+ its identity and says what is missing instead.
+ ================================================================ #}
+
+
+
+
+
+
+ {{ _('Task di misura senza quote configurate: la ricetta è incompleta') }}
+
+
+
+
{# ================================================================
LINEA FERMA — the countdown is frozen, not merely hidden. Stated plainly
because a stopped line that looks like a running one is how a measurement
@@ -486,7 +505,7 @@
{# ================================================================
AVVIO PRODUZIONE — visible after first cycle, before production started
================================================================ #}
-
@@ -505,7 +524,7 @@
{{ _('Invia segnale al gestionale per avviare il timer della linea') }}
-
@@ -548,7 +567,7 @@
{# Right: Fine ciclo misura (measurement tasks) / Completato (non-measurement or after cycle) #}
-
+
-
+
@@ -1238,6 +1257,23 @@ function taskExecute() {
this.supervisorError = '';
},
+ /* What kind of task this is, as declared in the recipe.
+ Deducing it from the quotes meant a measurement task whose quotes had not
+ been entered yet behaved as a note - the screen changed shape depending on
+ how finished the recipe was. Falls back to the old rule for tasks saved
+ before the type existed and not yet migrated. */
+ get isMeasureTask() {
+ const declared = this.task.task_type;
+ if (!declared) return this.subtasks.length > 0;
+ return declared === 'measure' || declared === 'camera_measure';
+ },
+
+ /* A measurement task with no quotes yet: the recipe is unfinished. Said out
+ loud rather than silently rendering an empty screen. */
+ get isMeasureTaskWithoutQuotes() {
+ return this.isMeasureTask && this.subtasks.length === 0;
+ },
+
// ---- Is the production stopped? ----
get isPaused() {
return !!this.productionRun && this.productionRun.status === 'paused';
diff --git a/src/frontend/flask_app/templates/measure/task_list.html b/src/frontend/flask_app/templates/measure/task_list.html
index 6d7beac..2bc7fb2 100644
--- a/src/frontend/flask_app/templates/measure/task_list.html
+++ b/src/frontend/flask_app/templates/measure/task_list.html
@@ -164,8 +164,26 @@
{% endif %}
-
+
+ {# The declared type, so the operator sees what a task is before opening
+ it - and a measurement task still reads as one before its quotes are in. #}
+ {% set task_type_labels = {
+ 'measure': _('Misura'),
+ 'drawing': _('Disegno'),
+ 'note': _('Nota'),
+ 'xf_compare': _('Confronto profilo'),
+ 'camera_measure': _('Misura camera'),
+ } %}
+ {% set is_measure = task.task_type in ('measure', 'camera_measure') %}
+ {% if task.task_type %}
+
+ {{ task_type_labels.get(task.task_type, task.task_type) }}
+
+ {% endif %}
+
{% if task.subtask_count is defined or task.subtasks %}
diff --git a/src/frontend/flask_app/translations/en/LC_MESSAGES/messages.po b/src/frontend/flask_app/translations/en/LC_MESSAGES/messages.po
index 756cd0d..f695cb8 100644
--- a/src/frontend/flask_app/translations/en/LC_MESSAGES/messages.po
+++ b/src/frontend/flask_app/translations/en/LC_MESSAGES/messages.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TieMeasureFlow 1.0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2026-07-28 17:30+0000\n"
+"POT-Creation-Date: 2026-07-28 18:13+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: en\n"
@@ -236,11 +236,11 @@ msgstr "Save settings"
#: templates/admin/stations.html:665 templates/admin/stations.html:700
#: templates/admin/stations.html:723 templates/admin/users.html:497
#: templates/admin/users.html:533 templates/maker/recipe_editor.html:571
-#: templates/maker/task_drawing.html:65 templates/maker/task_editor.html:1243
-#: templates/maker/task_editor.html:1321 templates/maker/task_editor.html:1382
-#: templates/maker/task_editor.html:1415 templates/maker/task_editor.html:1510
-#: templates/maker/task_editor.html:1586 templates/maker/task_editor.html:1660
-#: templates/maker/task_editor.html:1697 templates/maker/task_editor.html:1776
+#: templates/maker/task_drawing.html:65 templates/maker/task_editor.html:1263
+#: templates/maker/task_editor.html:1342 templates/maker/task_editor.html:1405
+#: templates/maker/task_editor.html:1438 templates/maker/task_editor.html:1533
+#: templates/maker/task_editor.html:1609 templates/maker/task_editor.html:1683
+#: templates/maker/task_editor.html:1720 templates/maker/task_editor.html:1799
#: templates/statistics/dashboard.html:372
#: templates/statistics/dashboard.html:457
msgid "Errore di connessione al server"
@@ -291,7 +291,7 @@ msgid "Stato"
msgstr "Status"
#: templates/admin/stations.html:54 templates/admin/users.html:53
-#: templates/maker/task_editor.html:551
+#: templates/maker/task_editor.html:571
msgid "Azioni"
msgstr "Actions"
@@ -322,13 +322,13 @@ msgid "Nessuna ricetta da azzerare"
msgstr "No recipes to clear"
#: templates/admin/stations.html:113 templates/admin/users.html:100
-#: templates/maker/recipe_list.html:237 templates/maker/task_editor.html:602
+#: templates/maker/recipe_list.html:237 templates/maker/task_editor.html:622
msgid "Modifica"
msgstr "Edit"
#: templates/admin/stations.html:120 templates/admin/stations.html:421
#: templates/maker/recipe_list.html:277 templates/maker/recipe_list.html:387
-#: templates/maker/task_drawing.html:275 templates/maker/task_editor.html:610
+#: templates/maker/task_drawing.html:275 templates/maker/task_editor.html:630
msgid "Elimina"
msgstr "Delete"
@@ -372,11 +372,11 @@ msgstr "Optional notes"
#: templates/admin/stations.html:416 templates/admin/users.html:292
#: templates/admin/users.html:323 templates/maker/recipe_editor.html:137
#: templates/maker/recipe_editor.html:456 templates/maker/recipe_list.html:383
-#: templates/maker/task_editor.html:294 templates/maker/task_editor.html:403
-#: templates/maker/task_editor.html:747 templates/maker/task_editor.html:866
-#: templates/maker/task_editor.html:931 templates/maker/task_editor.html:1036
+#: templates/maker/task_editor.html:306 templates/maker/task_editor.html:415
+#: templates/maker/task_editor.html:767 templates/maker/task_editor.html:886
+#: templates/maker/task_editor.html:951 templates/maker/task_editor.html:1056
#: templates/measure/select_recipe.html:367
-#: templates/measure/task_execute.html:719
+#: templates/measure/task_execute.html:738
msgid "Annulla"
msgstr "Cancel"
@@ -521,7 +521,7 @@ msgstr "New User"
#: templates/admin/users.html:48 templates/admin/users.html:173
#: templates/admin/users.html:179 templates/auth/login.html:35
#: templates/auth/login.html:49 templates/auth/profile.html:36
-#: templates/measure/task_execute.html:704
+#: templates/measure/task_execute.html:723
msgid "Username"
msgstr "Username"
@@ -573,7 +573,7 @@ msgstr "Username cannot be changed"
#: templates/admin/users.html:206 templates/admin/users.html:214
#: templates/auth/login.html:57 templates/auth/login.html:71
-#: templates/measure/task_execute.html:709
+#: templates/measure/task_execute.html:728
msgid "Password"
msgstr "Password"
@@ -849,7 +849,7 @@ msgstr "New Recipe"
msgid "Compila i dati della ricetta"
msgstr "Fill in the recipe data"
-#: templates/maker/recipe_editor.html:107 templates/maker/task_editor.html:396
+#: templates/maker/recipe_editor.html:107 templates/maker/task_editor.html:408
msgid "Salva"
msgstr "Save"
@@ -864,7 +864,7 @@ msgstr "Preview"
#: templates/maker/recipe_editor.html:128 templates/maker/recipe_list.html:246
#: templates/maker/task_drawing.html:106 templates/maker/task_editor.html:130
#: templates/measure/task_complete.html:168
-#: templates/measure/task_execute.html:532 templates/measure/task_list.html:2
+#: templates/measure/task_execute.html:551 templates/measure/task_list.html:2
#: templates/measure/task_list.html:156
msgid "Task"
msgstr "Task"
@@ -889,10 +889,10 @@ msgstr "Code cannot be changed after creation"
msgid "Es. Coupling Assembly 256"
msgstr "E.g. Coupling Assembly 256"
-#: templates/maker/recipe_editor.html:226 templates/maker/task_editor.html:283
-#: templates/maker/task_editor.html:509 templates/maker/task_editor.html:527
-#: templates/maker/task_editor.html:542 templates/maker/task_editor.html:660
-#: templates/maker/task_editor.html:1025
+#: templates/maker/recipe_editor.html:226 templates/maker/task_editor.html:295
+#: templates/maker/task_editor.html:521 templates/maker/task_editor.html:547
+#: templates/maker/task_editor.html:562 templates/maker/task_editor.html:680
+#: templates/maker/task_editor.html:1045
#: templates/measure/task_complete.html:169
msgid "Descrizione"
msgstr "Description"
@@ -926,7 +926,7 @@ msgstr "Image uploaded"
msgid "Caricamento in corso..."
msgstr "Upload in progress..."
-#: templates/maker/recipe_editor.html:302 templates/maker/task_editor.html:473
+#: templates/maker/recipe_editor.html:302 templates/maker/task_editor.html:485
msgid "Sostituisci"
msgstr "Replace"
@@ -1013,8 +1013,8 @@ msgstr "Error during deletion"
# Recipe Selection Additional
#: templates/maker/recipe_list.html:55 templates/measure/select_recipe.html:55
-#: templates/measure/task_execute.html:1102
-#: templates/measure/task_execute.html:1301
+#: templates/measure/task_execute.html:1121
+#: templates/measure/task_execute.html:1337
msgid "Errore di connessione"
msgstr "Connection Error"
@@ -1052,7 +1052,7 @@ msgid "ricette trovate"
msgstr "recipes found"
#: templates/maker/recipe_list.html:211 templates/maker/task_editor.html:222
-#: templates/maker/task_editor.html:1049
+#: templates/maker/task_editor.html:1069
msgid "task"
msgstr "task"
@@ -1131,7 +1131,7 @@ msgstr ""
msgid "misure"
msgstr "measurements"
-#: templates/maker/recipe_preview.html:213 templates/maker/task_editor.html:448
+#: templates/maker/recipe_preview.html:213 templates/maker/task_editor.html:460
msgid "Disegno Tecnico"
msgstr "Technical Drawing"
@@ -1152,8 +1152,8 @@ msgstr "No image attached"
msgid "Punti di Misura"
msgstr "Measurement Points"
-#: templates/maker/recipe_preview.html:299 templates/maker/task_editor.html:544
-#: templates/maker/task_editor.html:686
+#: templates/maker/recipe_preview.html:299 templates/maker/task_editor.html:564
+#: templates/maker/task_editor.html:706
#: templates/measure/task_complete.html:170
#: templates/measure/task_execute.html:300
msgid "Nominale"
@@ -1163,7 +1163,7 @@ msgstr "Nominal"
msgid "Nessun punto di misura definito per questo task"
msgstr "No measurement points defined for this task"
-#: templates/maker/recipe_preview.html:383 templates/maker/task_editor.html:794
+#: templates/maker/recipe_preview.html:383 templates/maker/task_editor.html:814
msgid "Nessun task definito"
msgstr "No tasks defined"
@@ -1311,7 +1311,7 @@ msgstr "Import from PDF"
msgid "Nuovo Task"
msgstr "New Task"
-#: templates/maker/task_editor.html:265 templates/maker/task_editor.html:1021
+#: templates/maker/task_editor.html:265 templates/maker/task_editor.html:1041
msgid "Titolo"
msgstr "Title"
@@ -1319,328 +1319,349 @@ msgstr "Title"
msgid "Es. Controllo dimensionale flangia"
msgstr "E.g. Flange dimensional check"
-#: templates/maker/task_editor.html:275 templates/maker/task_editor.html:503
-#: templates/maker/task_editor.html:520 templates/maker/task_editor.html:1023
-msgid "Direttiva"
-msgstr "Directive"
-
-#: templates/maker/task_editor.html:279
-msgid "Es. Seguire procedura ISO 2768"
-msgstr "E.g. Follow ISO 2768 procedure"
-
-#: templates/maker/task_editor.html:287 templates/maker/task_editor.html:531
-msgid "Descrizione opzionale..."
-msgstr "Optional description..."
-
-#: templates/maker/task_editor.html:306
-msgid "Crea Task"
-msgstr "Create Task"
-
-#: templates/maker/task_editor.html:336
-msgid "Trascina per riordinare"
-msgstr "Drag to reorder"
-
-#: templates/maker/task_editor.html:372
-#: templates/maker/version_history.html:188
-#: templates/measure/task_list.html:171
-msgid "misurazioni"
-msgstr "measurements"
-
-#: templates/maker/task_editor.html:382
-msgid "Modifica task"
-msgstr "Edit task"
-
-#: templates/maker/task_editor.html:414
-msgid "Espandi/Comprimi"
-msgstr "Expand/Collapse"
-
-#: templates/maker/task_editor.html:425
-msgid "Elimina task"
-msgstr "Delete task"
-
-#: templates/maker/task_editor.html:467
-msgid "Modifica Disegno"
-msgstr "Edit Drawing"
-
-#: templates/maker/task_editor.html:489
-msgid "Carica immagine o PDF"
-msgstr "Upload image or PDF"
-
-#: templates/maker/task_editor.html:524
-msgid "Direttiva opzionale..."
-msgstr "Optional directive..."
-
-#: templates/maker/task_editor.html:541
-msgid "#"
-msgstr "#"
-
-#: templates/maker/task_editor.html:543 templates/maker/task_editor.html:669
+#: templates/maker/task_editor.html:275 templates/maker/task_editor.html:532
+#: templates/maker/task_editor.html:563 templates/maker/task_editor.html:689
msgid "Tipo"
msgstr "Type"
-#: templates/maker/task_editor.html:545 templates/maker/task_editor.html:735
+#: templates/maker/task_editor.html:277 templates/maker/task_editor.html:534
+#: templates/measure/task_list.html:174
+msgid "Nota"
+msgstr "Note"
+
+#: templates/maker/task_editor.html:278 templates/maker/task_editor.html:535
+#: templates/measure/task_execute.html:288 templates/measure/task_list.html:172
+msgid "Misura"
+msgstr "Measure"
+
+# Maker - Task Editor
+#: templates/maker/task_editor.html:279 templates/maker/task_editor.html:536
+#: templates/measure/task_list.html:173
+msgid "Disegno"
+msgstr "Drawing"
+
+#: templates/maker/task_editor.html:282
+msgid "Un task di misura resta tale anche prima di inserire le quote"
+msgstr "A measurement task stays one even before its quotes are entered"
+
+#: templates/maker/task_editor.html:287 templates/maker/task_editor.html:515
+#: templates/maker/task_editor.html:540 templates/maker/task_editor.html:1043
+msgid "Direttiva"
+msgstr "Directive"
+
+#: templates/maker/task_editor.html:291
+msgid "Es. Seguire procedura ISO 2768"
+msgstr "E.g. Follow ISO 2768 procedure"
+
+#: templates/maker/task_editor.html:299 templates/maker/task_editor.html:551
+msgid "Descrizione opzionale..."
+msgstr "Optional description..."
+
+#: templates/maker/task_editor.html:318
+msgid "Crea Task"
+msgstr "Create Task"
+
+#: templates/maker/task_editor.html:348
+msgid "Trascina per riordinare"
+msgstr "Drag to reorder"
+
+#: templates/maker/task_editor.html:384
+#: templates/maker/version_history.html:188
+#: templates/measure/task_list.html:189
+msgid "misurazioni"
+msgstr "measurements"
+
+#: templates/maker/task_editor.html:394
+msgid "Modifica task"
+msgstr "Edit task"
+
+#: templates/maker/task_editor.html:426
+msgid "Espandi/Comprimi"
+msgstr "Expand/Collapse"
+
+#: templates/maker/task_editor.html:437
+msgid "Elimina task"
+msgstr "Delete task"
+
+#: templates/maker/task_editor.html:479
+msgid "Modifica Disegno"
+msgstr "Edit Drawing"
+
+#: templates/maker/task_editor.html:501
+msgid "Carica immagine o PDF"
+msgstr "Upload image or PDF"
+
+#: templates/maker/task_editor.html:544
+msgid "Direttiva opzionale..."
+msgstr "Optional directive..."
+
+#: templates/maker/task_editor.html:561
+msgid "#"
+msgstr "#"
+
+#: templates/maker/task_editor.html:565 templates/maker/task_editor.html:755
msgid "UTL"
msgstr "UTL"
-#: templates/maker/task_editor.html:546 templates/maker/task_editor.html:728
+#: templates/maker/task_editor.html:566 templates/maker/task_editor.html:748
msgid "UWL"
msgstr "UWL"
-#: templates/maker/task_editor.html:547 templates/maker/task_editor.html:721
+#: templates/maker/task_editor.html:567 templates/maker/task_editor.html:741
msgid "LWL"
msgstr "LWL"
-#: templates/maker/task_editor.html:548 templates/maker/task_editor.html:714
+#: templates/maker/task_editor.html:568 templates/maker/task_editor.html:734
msgid "LTL"
msgstr "LTL"
-#: templates/maker/task_editor.html:549 templates/maker/task_editor.html:694
+#: templates/maker/task_editor.html:569 templates/maker/task_editor.html:714
#: templates/measure/task_complete.html:275
msgid "Unita"
msgstr "Unit"
-#: templates/maker/task_editor.html:550
+#: templates/maker/task_editor.html:570
msgid "Tolleranze"
msgstr "Tolerances"
-#: templates/maker/task_editor.html:635
+#: templates/maker/task_editor.html:655
msgid "Nessuna misurazione definita"
msgstr "No measurements defined"
-#: templates/maker/task_editor.html:638
+#: templates/maker/task_editor.html:658
msgid "Aggiungi la prima misurazione per questo task"
msgstr "Add the first measurement for this task"
-#: templates/maker/task_editor.html:647
+#: templates/maker/task_editor.html:667
msgid "Modifica Misurazione"
msgstr "Edit Measurement"
-#: templates/maker/task_editor.html:647
+#: templates/maker/task_editor.html:667
msgid "Nuova Misurazione"
msgstr "New Measurement"
-#: templates/maker/task_editor.html:652
+#: templates/maker/task_editor.html:672
msgid "Marker #"
msgstr "Marker #"
-#: templates/maker/task_editor.html:665
+#: templates/maker/task_editor.html:685
msgid "Es. Diametro foro principale"
msgstr "E.g. Main hole diameter"
-#: templates/maker/task_editor.html:673
+#: templates/maker/task_editor.html:693
msgid "Lineare"
msgstr "Linear"
-#: templates/maker/task_editor.html:674
+#: templates/maker/task_editor.html:694
msgid "Diametro"
msgstr "Diameter"
-#: templates/maker/task_editor.html:675
+#: templates/maker/task_editor.html:695
msgid "Raggio"
msgstr "Radius"
-#: templates/maker/task_editor.html:676
+#: templates/maker/task_editor.html:696
msgid "Angolo"
msgstr "Angle"
-#: templates/maker/task_editor.html:677
+#: templates/maker/task_editor.html:697
msgid "Rugosita"
msgstr "Roughness"
-#: templates/maker/task_editor.html:678
+#: templates/maker/task_editor.html:698
msgid "Coppia"
msgstr "Torque"
-#: templates/maker/task_editor.html:679
+#: templates/maker/task_editor.html:699
msgid "Forza"
msgstr "Force"
-#: templates/maker/task_editor.html:680
+#: templates/maker/task_editor.html:700
msgid "Peso"
msgstr "Weight"
-#: templates/maker/task_editor.html:681
+#: templates/maker/task_editor.html:701
msgid "Altro"
msgstr "Other"
-#: templates/maker/task_editor.html:718
+#: templates/maker/task_editor.html:738
msgid "Lim. Tol. Inf."
msgstr "Lower Tol. Lim."
-#: templates/maker/task_editor.html:725
+#: templates/maker/task_editor.html:745
msgid "Lim. Warn. Inf."
msgstr "Lower Warn. Lim."
-#: templates/maker/task_editor.html:732
+#: templates/maker/task_editor.html:752
msgid "Lim. Warn. Sup."
msgstr "Upper Warn. Lim."
-#: templates/maker/task_editor.html:739
+#: templates/maker/task_editor.html:759
msgid "Lim. Tol. Sup."
msgstr "Upper Tol. Lim."
-#: templates/maker/task_editor.html:759
+#: templates/maker/task_editor.html:779
msgid "Aggiorna Misurazione"
msgstr "Update Measurement"
-#: templates/maker/task_editor.html:759 templates/maker/task_editor.html:773
+#: templates/maker/task_editor.html:779 templates/maker/task_editor.html:793
msgid "Aggiungi Misurazione"
msgstr "Add Measurement"
-#: templates/maker/task_editor.html:797
+#: templates/maker/task_editor.html:817
msgid "Inizia aggiungendo il primo task di misurazione per questa ricetta"
msgstr "Start by adding the first measurement task for this recipe"
-#: templates/maker/task_editor.html:804
+#: templates/maker/task_editor.html:824
msgid "Aggiungi Primo Task"
msgstr "Add First Task"
-#: templates/maker/task_editor.html:847
+#: templates/maker/task_editor.html:867
msgid "Conferma Eliminazione Task"
msgstr "Confirm Task Deletion"
-#: templates/maker/task_editor.html:852
+#: templates/maker/task_editor.html:872
msgid "Sei sicuro di voler eliminare il task"
msgstr "Are you sure you want to delete the task"
-#: templates/maker/task_editor.html:857
+#: templates/maker/task_editor.html:877
msgid "Verranno eliminate anche"
msgstr "The following will also be deleted:"
-#: templates/maker/task_editor.html:859
+#: templates/maker/task_editor.html:879
msgid "misurazioni associate."
msgstr "associated measurements."
-#: templates/maker/task_editor.html:870
+#: templates/maker/task_editor.html:890
msgid "Elimina Task"
msgstr "Delete Task"
-#: templates/maker/task_editor.html:917
+#: templates/maker/task_editor.html:937
msgid "Conferma Eliminazione Misurazione"
msgstr "Confirm Measurement Deletion"
-#: templates/maker/task_editor.html:921
+#: templates/maker/task_editor.html:941
msgid "Sei sicuro di voler eliminare la misurazione"
msgstr "Are you sure you want to delete the measurement"
-#: templates/maker/task_editor.html:935
+#: templates/maker/task_editor.html:955
msgid "Elimina Misurazione"
msgstr "Delete Measurement"
-#: templates/maker/task_editor.html:967
+#: templates/maker/task_editor.html:987
msgid "Importa da Scheda Tecnica"
msgstr "Import from Technical Sheet"
-#: templates/maker/task_editor.html:968
+#: templates/maker/task_editor.html:988
msgid "Carica un PDF e l'AI estrarrà i task automaticamente"
msgstr "Upload a PDF and the AI will extract tasks automatically"
-#: templates/maker/task_editor.html:982
+#: templates/maker/task_editor.html:1002
msgid "Clicca per caricare un PDF"
msgstr "Click to upload a PDF"
-#: templates/maker/task_editor.html:983
+#: templates/maker/task_editor.html:1003
msgid "Max 20MB"
msgstr "Max 20MB"
-#: templates/maker/task_editor.html:994
+#: templates/maker/task_editor.html:1014
msgid "Analisi in corso con AI..."
msgstr "AI analysis in progress..."
-#: templates/maker/task_editor.html:995
+#: templates/maker/task_editor.html:1015
msgid "Potrebbe richiedere fino a 30 secondi"
msgstr "It may take up to 30 seconds"
-#: templates/maker/task_editor.html:1001
+#: templates/maker/task_editor.html:1021
msgid "Riprova"
msgstr "Retry"
-#: templates/maker/task_editor.html:1007
+#: templates/maker/task_editor.html:1027
msgid "task suggeriti — modifica o rimuovi prima di confermare"
msgstr "suggested tasks — edit or remove before confirming"
-#: templates/maker/task_editor.html:1049
+#: templates/maker/task_editor.html:1069
msgid "Crea"
msgstr "Create"
-#: templates/maker/task_editor.html:1234
+#: templates/maker/task_editor.html:1254
msgid "Errore nell'analisi del PDF"
msgstr "Error parsing the PDF"
-#: templates/maker/task_editor.html:1238
+#: templates/maker/task_editor.html:1258
msgid "Nessun task identificato nel PDF"
msgstr "No tasks identified in the PDF"
-#: templates/maker/task_editor.html:1283
+#: templates/maker/task_editor.html:1303
msgid "task creati dalla scheda tecnica"
msgstr "tasks created from the technical sheet"
-#: templates/maker/task_editor.html:1309
+#: templates/maker/task_editor.html:1330
msgid "Errore nella creazione del task"
msgstr "Error creating task"
-#: templates/maker/task_editor.html:1317
+#: templates/maker/task_editor.html:1338
msgid "Task creato con successo"
msgstr "Task created successfully"
-#: templates/maker/task_editor.html:1365 templates/maker/task_editor.html:1761
+#: templates/maker/task_editor.html:1388 templates/maker/task_editor.html:1784
msgid "Errore nel salvataggio del task"
msgstr "Error saving task"
-#: templates/maker/task_editor.html:1378
+#: templates/maker/task_editor.html:1401
msgid "Task aggiornato"
msgstr "Task updated"
-#: templates/maker/task_editor.html:1408
+#: templates/maker/task_editor.html:1431
msgid "Task eliminato"
msgstr "Task deleted"
-#: templates/maker/task_editor.html:1411
+#: templates/maker/task_editor.html:1434
msgid "Errore nell'eliminazione del task"
msgstr "Error deleting task"
-#: templates/maker/task_editor.html:1506
+#: templates/maker/task_editor.html:1529
msgid "Errore nel riordinamento"
msgstr "Error reordering"
-#: templates/maker/task_editor.html:1574
+#: templates/maker/task_editor.html:1597
msgid "Errore nella creazione della misurazione"
msgstr "Error creating measurement"
-#: templates/maker/task_editor.html:1582
+#: templates/maker/task_editor.html:1605
msgid "Misurazione aggiunta"
msgstr "Measurement added"
-#: templates/maker/task_editor.html:1645
-#: templates/measure/task_execute.html:976
+#: templates/maker/task_editor.html:1668
+#: templates/measure/task_execute.html:995
msgid "Errore nel salvataggio della misurazione"
msgstr "Error saving measurement"
-#: templates/maker/task_editor.html:1656
+#: templates/maker/task_editor.html:1679
msgid "Misurazione aggiornata"
msgstr "Measurement updated"
-#: templates/maker/task_editor.html:1690
+#: templates/maker/task_editor.html:1713
msgid "Misurazione eliminata"
msgstr "Measurement deleted"
-#: templates/maker/task_editor.html:1693
+#: templates/maker/task_editor.html:1716
msgid "Errore nell'eliminazione della misurazione"
msgstr "Error deleting measurement"
-#: templates/maker/task_editor.html:1712
+#: templates/maker/task_editor.html:1735
msgid "Formato file non supportato. Usa PNG, JPG o PDF."
msgstr "Unsupported file format. Use PNG, JPG or PDF."
-#: templates/maker/task_editor.html:1717
+#: templates/maker/task_editor.html:1740
msgid "File troppo grande. Dimensione massima: 20MB."
msgstr "File too large. Maximum size: 20MB."
-#: templates/maker/task_editor.html:1738
+#: templates/maker/task_editor.html:1761
msgid "Errore durante il caricamento del file"
msgstr "Error uploading file"
-#: templates/maker/task_editor.html:1769
+#: templates/maker/task_editor.html:1792
msgid "File caricato con successo"
msgstr "File uploaded successfully"
@@ -1770,13 +1791,13 @@ msgstr "Search"
#: templates/measure/task_complete.html:3
#: templates/measure/task_complete.html:36
#: templates/measure/task_execute.html:112
-#: templates/measure/task_execute.html:640
+#: templates/measure/task_execute.html:659
#: templates/statistics/dashboard.html:139
msgid "Riepilogo"
msgstr "Summary"
#: templates/measure/task_complete.html:44
-#: templates/measure/task_execute.html:617
+#: templates/measure/task_execute.html:636
msgid "Misurazioni Complete"
msgstr "Measurements Complete"
@@ -1797,12 +1818,12 @@ msgid "Totale"
msgstr "Total"
#: templates/measure/task_complete.html:103
-#: templates/measure/task_execute.html:625
+#: templates/measure/task_execute.html:644
msgid "Conformi"
msgstr "Pass"
#: templates/measure/task_complete.html:120
-#: templates/measure/task_execute.html:629
+#: templates/measure/task_execute.html:648
msgid "Attenzione"
msgstr "Warning"
@@ -1990,10 +2011,6 @@ msgstr "Measurement detail image"
msgid "Misurazione"
msgstr "Measurement"
-#: templates/measure/task_execute.html:288
-msgid "Misura"
-msgstr "Measure"
-
#: templates/measure/task_execute.html:364
msgid "Registrata"
msgstr "Recorded"
@@ -2007,108 +2024,112 @@ msgid "Ciclo"
msgstr "Cycle"
#: templates/measure/task_execute.html:456
+msgid "Task di misura senza quote configurate: la ricetta è incompleta"
+msgstr "Measurement task with no quotes configured: the recipe is incomplete"
+
+#: templates/measure/task_execute.html:475
msgid "Linea ferma"
msgstr "Line stopped"
-#: templates/measure/task_execute.html:459
+#: templates/measure/task_execute.html:478
msgid "Il conto alla rovescia è congelato a"
msgstr "The countdown is frozen at"
-#: templates/measure/task_execute.html:461
+#: templates/measure/task_execute.html:480
msgid "serve il capoturno per riprendere"
msgstr "the supervisor must authorise the restart"
-#: templates/measure/task_execute.html:480
+#: templates/measure/task_execute.html:499
msgid "Produzione non registrata sul server"
msgstr "Production not recorded on the server"
-#: templates/measure/task_execute.html:501
-#: templates/measure/task_execute.html:667
+#: templates/measure/task_execute.html:520
+#: templates/measure/task_execute.html:686
msgid "Avvio Produzione"
msgstr "Production Start"
-#: templates/measure/task_execute.html:505
+#: templates/measure/task_execute.html:524
msgid "Invia segnale al gestionale per avviare il timer della linea"
msgstr "Send a signal to the ERP system to start the line timer"
-#: templates/measure/task_execute.html:516
+#: templates/measure/task_execute.html:535
msgid "Produzione avviata"
msgstr "Production started"
-#: templates/measure/task_execute.html:561
+#: templates/measure/task_execute.html:580
msgid "Fine ciclo misura"
msgstr "Measurement cycle complete"
-#: templates/measure/task_execute.html:571
-#: templates/measure/task_execute.html:585
+#: templates/measure/task_execute.html:590
+#: templates/measure/task_execute.html:604
msgid "Completato"
msgstr "Completed"
-#: templates/measure/task_execute.html:619
+#: templates/measure/task_execute.html:638
msgid "Tutte le"
msgstr "All"
-#: templates/measure/task_execute.html:619
+#: templates/measure/task_execute.html:638
msgid "misurazioni sono state registrate."
msgstr "measurements have been recorded."
-#: templates/measure/task_execute.html:633
+#: templates/measure/task_execute.html:652
msgid "Non Conf."
msgstr "Fail"
-#: templates/measure/task_execute.html:647
+#: templates/measure/task_execute.html:666
msgid "Conferma ciclo"
msgstr "Confirm cycle"
-#: templates/measure/task_execute.html:657
+#: templates/measure/task_execute.html:676
msgid "Task successivo"
msgstr "Next task"
-#: templates/measure/task_execute.html:697
+#: templates/measure/task_execute.html:716
msgid "Autorizzazione capoturno"
msgstr "Shift supervisor authorization"
-#: templates/measure/task_execute.html:706
+#: templates/measure/task_execute.html:725
msgid "Username capoturno"
msgstr "Supervisor username"
-#: templates/measure/task_execute.html:728
+#: templates/measure/task_execute.html:747
msgid "Autorizza"
msgstr "Authorize"
-#: templates/measure/task_execute.html:1020
+#: templates/measure/task_execute.html:1039
msgid "Errore di rete. Riprovare."
msgstr "Network error. Please retry."
-#: templates/measure/task_execute.html:1097
+#: templates/measure/task_execute.html:1116
msgid "Errore di comunicazione con il server"
msgstr "Error communicating with the server"
-#: templates/measure/task_execute.html:1248
+#: templates/measure/task_execute.html:1284
msgid "Misurazione fuori tolleranza"
msgstr "Measurement out of tolerance"
-#: templates/measure/task_execute.html:1249
+#: templates/measure/task_execute.html:1285
msgid "Fermo linea richiesto"
msgstr "Line stop requested"
-#: templates/measure/task_execute.html:1250
+#: templates/measure/task_execute.html:1286
msgid "Ripresa della produzione"
msgstr "Resuming production"
-#: templates/measure/task_execute.html:1251
+#: templates/measure/task_execute.html:1287
msgid "Fine produzione richiesta"
msgstr "End of production requested"
-#: templates/measure/task_execute.html:1280
+#: templates/measure/task_execute.html:1316
msgid "Credenziali non valide o utente non autorizzato"
msgstr "Invalid credentials or unauthorized user"
-#: templates/measure/task_execute.html:1312
+#: templates/measure/task_execute.html:1348
msgid "Nessuna produzione aperta su questa stazione"
msgstr "No production open at this station"
-#: templates/measure/task_execute.html:1329
+#: templates/measure/task_execute.html:1365
msgid "Azione non riuscita"
msgstr "Action failed"
@@ -2124,19 +2145,27 @@ msgstr "Tasks to execute"
msgid "misurazioni totali"
msgstr "total measurements"
-#: templates/measure/task_list.html:180
+#: templates/measure/task_list.html:175
+msgid "Confronto profilo"
+msgstr "Profile comparison"
+
+#: templates/measure/task_list.html:176
+msgid "Misura camera"
+msgstr "Camera measurement"
+
+#: templates/measure/task_list.html:198
msgid "Allegato"
msgstr "Attachment"
-#: templates/measure/task_list.html:204
+#: templates/measure/task_list.html:222
msgid "Visualizza Task"
msgstr "View Tasks"
-#: templates/measure/task_list.html:227
+#: templates/measure/task_list.html:245
msgid "Nessun task disponibile"
msgstr "No tasks available"
-#: templates/measure/task_list.html:230
+#: templates/measure/task_list.html:248
msgid "Questa ricetta non ha ancora task definiti."
msgstr "This recipe has no tasks defined yet."
diff --git a/src/frontend/flask_app/translations/it/LC_MESSAGES/messages.po b/src/frontend/flask_app/translations/it/LC_MESSAGES/messages.po
index b7f9424..6c8bd10 100644
--- a/src/frontend/flask_app/translations/it/LC_MESSAGES/messages.po
+++ b/src/frontend/flask_app/translations/it/LC_MESSAGES/messages.po
@@ -3,7 +3,7 @@ msgid ""
msgstr ""
"Project-Id-Version: TieMeasureFlow 1.0\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2026-07-28 17:30+0000\n"
+"POT-Creation-Date: 2026-07-28 18:13+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language: it\n"
@@ -236,11 +236,11 @@ msgstr "Salva impostazioni"
#: templates/admin/stations.html:665 templates/admin/stations.html:700
#: templates/admin/stations.html:723 templates/admin/users.html:497
#: templates/admin/users.html:533 templates/maker/recipe_editor.html:571
-#: templates/maker/task_drawing.html:65 templates/maker/task_editor.html:1243
-#: templates/maker/task_editor.html:1321 templates/maker/task_editor.html:1382
-#: templates/maker/task_editor.html:1415 templates/maker/task_editor.html:1510
-#: templates/maker/task_editor.html:1586 templates/maker/task_editor.html:1660
-#: templates/maker/task_editor.html:1697 templates/maker/task_editor.html:1776
+#: templates/maker/task_drawing.html:65 templates/maker/task_editor.html:1263
+#: templates/maker/task_editor.html:1342 templates/maker/task_editor.html:1405
+#: templates/maker/task_editor.html:1438 templates/maker/task_editor.html:1533
+#: templates/maker/task_editor.html:1609 templates/maker/task_editor.html:1683
+#: templates/maker/task_editor.html:1720 templates/maker/task_editor.html:1799
#: templates/statistics/dashboard.html:372
#: templates/statistics/dashboard.html:457
msgid "Errore di connessione al server"
@@ -293,7 +293,7 @@ msgid "Stato"
msgstr "Stato"
#: templates/admin/stations.html:54 templates/admin/users.html:53
-#: templates/maker/task_editor.html:551
+#: templates/maker/task_editor.html:571
msgid "Azioni"
msgstr "Azioni"
@@ -324,13 +324,13 @@ msgid "Nessuna ricetta da azzerare"
msgstr "Nessuna ricetta da azzerare"
#: templates/admin/stations.html:113 templates/admin/users.html:100
-#: templates/maker/recipe_list.html:237 templates/maker/task_editor.html:602
+#: templates/maker/recipe_list.html:237 templates/maker/task_editor.html:622
msgid "Modifica"
msgstr "Modifica"
#: templates/admin/stations.html:120 templates/admin/stations.html:421
#: templates/maker/recipe_list.html:277 templates/maker/recipe_list.html:387
-#: templates/maker/task_drawing.html:275 templates/maker/task_editor.html:610
+#: templates/maker/task_drawing.html:275 templates/maker/task_editor.html:630
msgid "Elimina"
msgstr "Elimina"
@@ -374,11 +374,11 @@ msgstr "Note opzionali"
#: templates/admin/stations.html:416 templates/admin/users.html:292
#: templates/admin/users.html:323 templates/maker/recipe_editor.html:137
#: templates/maker/recipe_editor.html:456 templates/maker/recipe_list.html:383
-#: templates/maker/task_editor.html:294 templates/maker/task_editor.html:403
-#: templates/maker/task_editor.html:747 templates/maker/task_editor.html:866
-#: templates/maker/task_editor.html:931 templates/maker/task_editor.html:1036
+#: templates/maker/task_editor.html:306 templates/maker/task_editor.html:415
+#: templates/maker/task_editor.html:767 templates/maker/task_editor.html:886
+#: templates/maker/task_editor.html:951 templates/maker/task_editor.html:1056
#: templates/measure/select_recipe.html:367
-#: templates/measure/task_execute.html:719
+#: templates/measure/task_execute.html:738
msgid "Annulla"
msgstr "Annulla"
@@ -523,7 +523,7 @@ msgstr "Nuovo Utente"
#: templates/admin/users.html:48 templates/admin/users.html:173
#: templates/admin/users.html:179 templates/auth/login.html:35
#: templates/auth/login.html:49 templates/auth/profile.html:36
-#: templates/measure/task_execute.html:704
+#: templates/measure/task_execute.html:723
msgid "Username"
msgstr "Username"
@@ -575,7 +575,7 @@ msgstr "Il nome utente non può essere modificato"
#: templates/admin/users.html:206 templates/admin/users.html:214
#: templates/auth/login.html:57 templates/auth/login.html:71
-#: templates/measure/task_execute.html:709
+#: templates/measure/task_execute.html:728
msgid "Password"
msgstr "Password"
@@ -851,7 +851,7 @@ msgstr "Nuova Ricetta"
msgid "Compila i dati della ricetta"
msgstr "Compila i dati della ricetta"
-#: templates/maker/recipe_editor.html:107 templates/maker/task_editor.html:396
+#: templates/maker/recipe_editor.html:107 templates/maker/task_editor.html:408
msgid "Salva"
msgstr "Salva"
@@ -866,7 +866,7 @@ msgstr "Anteprima"
#: templates/maker/recipe_editor.html:128 templates/maker/recipe_list.html:246
#: templates/maker/task_drawing.html:106 templates/maker/task_editor.html:130
#: templates/measure/task_complete.html:168
-#: templates/measure/task_execute.html:532 templates/measure/task_list.html:2
+#: templates/measure/task_execute.html:551 templates/measure/task_list.html:2
#: templates/measure/task_list.html:156
msgid "Task"
msgstr "Task"
@@ -891,10 +891,10 @@ msgstr "Il codice non puo essere modificato dopo la creazione"
msgid "Es. Coupling Assembly 256"
msgstr "Es. Coupling Assembly 256"
-#: templates/maker/recipe_editor.html:226 templates/maker/task_editor.html:283
-#: templates/maker/task_editor.html:509 templates/maker/task_editor.html:527
-#: templates/maker/task_editor.html:542 templates/maker/task_editor.html:660
-#: templates/maker/task_editor.html:1025
+#: templates/maker/recipe_editor.html:226 templates/maker/task_editor.html:295
+#: templates/maker/task_editor.html:521 templates/maker/task_editor.html:547
+#: templates/maker/task_editor.html:562 templates/maker/task_editor.html:680
+#: templates/maker/task_editor.html:1045
#: templates/measure/task_complete.html:169
msgid "Descrizione"
msgstr "Descrizione"
@@ -928,7 +928,7 @@ msgstr "Immagine caricata"
msgid "Caricamento in corso..."
msgstr "Caricamento in corso..."
-#: templates/maker/recipe_editor.html:302 templates/maker/task_editor.html:473
+#: templates/maker/recipe_editor.html:302 templates/maker/task_editor.html:485
msgid "Sostituisci"
msgstr "Sostituisci"
@@ -1015,8 +1015,8 @@ msgstr "Errore durante eliminazione"
# Recipe Selection Additional
#: templates/maker/recipe_list.html:55 templates/measure/select_recipe.html:55
-#: templates/measure/task_execute.html:1102
-#: templates/measure/task_execute.html:1301
+#: templates/measure/task_execute.html:1121
+#: templates/measure/task_execute.html:1337
msgid "Errore di connessione"
msgstr "Errore di connessione"
@@ -1054,7 +1054,7 @@ msgid "ricette trovate"
msgstr "ricette trovate"
#: templates/maker/recipe_list.html:211 templates/maker/task_editor.html:222
-#: templates/maker/task_editor.html:1049
+#: templates/maker/task_editor.html:1069
msgid "task"
msgstr "task"
@@ -1133,7 +1133,7 @@ msgstr ""
msgid "misure"
msgstr "misure"
-#: templates/maker/recipe_preview.html:213 templates/maker/task_editor.html:448
+#: templates/maker/recipe_preview.html:213 templates/maker/task_editor.html:460
msgid "Disegno Tecnico"
msgstr "Disegno Tecnico"
@@ -1154,8 +1154,8 @@ msgstr "Nessuna immagine allegata"
msgid "Punti di Misura"
msgstr "Punti di Misura"
-#: templates/maker/recipe_preview.html:299 templates/maker/task_editor.html:544
-#: templates/maker/task_editor.html:686
+#: templates/maker/recipe_preview.html:299 templates/maker/task_editor.html:564
+#: templates/maker/task_editor.html:706
#: templates/measure/task_complete.html:170
#: templates/measure/task_execute.html:300
msgid "Nominale"
@@ -1165,7 +1165,7 @@ msgstr "Nominale"
msgid "Nessun punto di misura definito per questo task"
msgstr "Nessun punto di misura definito per questo task"
-#: templates/maker/recipe_preview.html:383 templates/maker/task_editor.html:794
+#: templates/maker/recipe_preview.html:383 templates/maker/task_editor.html:814
msgid "Nessun task definito"
msgstr "Nessun task definito"
@@ -1313,7 +1313,7 @@ msgstr "Importa da PDF"
msgid "Nuovo Task"
msgstr "Nuovo Task"
-#: templates/maker/task_editor.html:265 templates/maker/task_editor.html:1021
+#: templates/maker/task_editor.html:265 templates/maker/task_editor.html:1041
msgid "Titolo"
msgstr "Titolo"
@@ -1321,328 +1321,349 @@ msgstr "Titolo"
msgid "Es. Controllo dimensionale flangia"
msgstr "Es. Controllo dimensionale flangia"
-#: templates/maker/task_editor.html:275 templates/maker/task_editor.html:503
-#: templates/maker/task_editor.html:520 templates/maker/task_editor.html:1023
-msgid "Direttiva"
-msgstr "Direttiva"
-
-#: templates/maker/task_editor.html:279
-msgid "Es. Seguire procedura ISO 2768"
-msgstr "Es. Seguire procedura ISO 2768"
-
-#: templates/maker/task_editor.html:287 templates/maker/task_editor.html:531
-msgid "Descrizione opzionale..."
-msgstr "Descrizione opzionale..."
-
-#: templates/maker/task_editor.html:306
-msgid "Crea Task"
-msgstr "Crea Task"
-
-#: templates/maker/task_editor.html:336
-msgid "Trascina per riordinare"
-msgstr "Trascina per riordinare"
-
-#: templates/maker/task_editor.html:372
-#: templates/maker/version_history.html:188
-#: templates/measure/task_list.html:171
-msgid "misurazioni"
-msgstr "misurazioni"
-
-#: templates/maker/task_editor.html:382
-msgid "Modifica task"
-msgstr "Modifica task"
-
-#: templates/maker/task_editor.html:414
-msgid "Espandi/Comprimi"
-msgstr "Espandi/Comprimi"
-
-#: templates/maker/task_editor.html:425
-msgid "Elimina task"
-msgstr "Elimina task"
-
-#: templates/maker/task_editor.html:467
-msgid "Modifica Disegno"
-msgstr "Modifica Disegno"
-
-#: templates/maker/task_editor.html:489
-msgid "Carica immagine o PDF"
-msgstr "Carica immagine o PDF"
-
-#: templates/maker/task_editor.html:524
-msgid "Direttiva opzionale..."
-msgstr "Direttiva opzionale..."
-
-#: templates/maker/task_editor.html:541
-msgid "#"
-msgstr "#"
-
-#: templates/maker/task_editor.html:543 templates/maker/task_editor.html:669
+#: templates/maker/task_editor.html:275 templates/maker/task_editor.html:532
+#: templates/maker/task_editor.html:563 templates/maker/task_editor.html:689
msgid "Tipo"
msgstr "Tipo"
-#: templates/maker/task_editor.html:545 templates/maker/task_editor.html:735
+#: templates/maker/task_editor.html:277 templates/maker/task_editor.html:534
+#: templates/measure/task_list.html:174
+msgid "Nota"
+msgstr "Nota"
+
+#: templates/maker/task_editor.html:278 templates/maker/task_editor.html:535
+#: templates/measure/task_execute.html:288 templates/measure/task_list.html:172
+msgid "Misura"
+msgstr "Misura"
+
+# Maker - Task Editor
+#: templates/maker/task_editor.html:279 templates/maker/task_editor.html:536
+#: templates/measure/task_list.html:173
+msgid "Disegno"
+msgstr "Disegno"
+
+#: templates/maker/task_editor.html:282
+msgid "Un task di misura resta tale anche prima di inserire le quote"
+msgstr "Un task di misura resta tale anche prima di inserire le quote"
+
+#: templates/maker/task_editor.html:287 templates/maker/task_editor.html:515
+#: templates/maker/task_editor.html:540 templates/maker/task_editor.html:1043
+msgid "Direttiva"
+msgstr "Direttiva"
+
+#: templates/maker/task_editor.html:291
+msgid "Es. Seguire procedura ISO 2768"
+msgstr "Es. Seguire procedura ISO 2768"
+
+#: templates/maker/task_editor.html:299 templates/maker/task_editor.html:551
+msgid "Descrizione opzionale..."
+msgstr "Descrizione opzionale..."
+
+#: templates/maker/task_editor.html:318
+msgid "Crea Task"
+msgstr "Crea Task"
+
+#: templates/maker/task_editor.html:348
+msgid "Trascina per riordinare"
+msgstr "Trascina per riordinare"
+
+#: templates/maker/task_editor.html:384
+#: templates/maker/version_history.html:188
+#: templates/measure/task_list.html:189
+msgid "misurazioni"
+msgstr "misurazioni"
+
+#: templates/maker/task_editor.html:394
+msgid "Modifica task"
+msgstr "Modifica task"
+
+#: templates/maker/task_editor.html:426
+msgid "Espandi/Comprimi"
+msgstr "Espandi/Comprimi"
+
+#: templates/maker/task_editor.html:437
+msgid "Elimina task"
+msgstr "Elimina task"
+
+#: templates/maker/task_editor.html:479
+msgid "Modifica Disegno"
+msgstr "Modifica Disegno"
+
+#: templates/maker/task_editor.html:501
+msgid "Carica immagine o PDF"
+msgstr "Carica immagine o PDF"
+
+#: templates/maker/task_editor.html:544
+msgid "Direttiva opzionale..."
+msgstr "Direttiva opzionale..."
+
+#: templates/maker/task_editor.html:561
+msgid "#"
+msgstr "#"
+
+#: templates/maker/task_editor.html:565 templates/maker/task_editor.html:755
msgid "UTL"
msgstr "UTL"
-#: templates/maker/task_editor.html:546 templates/maker/task_editor.html:728
+#: templates/maker/task_editor.html:566 templates/maker/task_editor.html:748
msgid "UWL"
msgstr "UWL"
-#: templates/maker/task_editor.html:547 templates/maker/task_editor.html:721
+#: templates/maker/task_editor.html:567 templates/maker/task_editor.html:741
msgid "LWL"
msgstr "LWL"
-#: templates/maker/task_editor.html:548 templates/maker/task_editor.html:714
+#: templates/maker/task_editor.html:568 templates/maker/task_editor.html:734
msgid "LTL"
msgstr "LTL"
-#: templates/maker/task_editor.html:549 templates/maker/task_editor.html:694
+#: templates/maker/task_editor.html:569 templates/maker/task_editor.html:714
#: templates/measure/task_complete.html:275
msgid "Unita"
msgstr "Unita"
-#: templates/maker/task_editor.html:550
+#: templates/maker/task_editor.html:570
msgid "Tolleranze"
msgstr "Tolleranze"
-#: templates/maker/task_editor.html:635
+#: templates/maker/task_editor.html:655
msgid "Nessuna misurazione definita"
msgstr "Nessuna misurazione definita"
-#: templates/maker/task_editor.html:638
+#: templates/maker/task_editor.html:658
msgid "Aggiungi la prima misurazione per questo task"
msgstr "Aggiungi la prima misurazione per questo task"
-#: templates/maker/task_editor.html:647
+#: templates/maker/task_editor.html:667
msgid "Modifica Misurazione"
msgstr "Modifica Misurazione"
-#: templates/maker/task_editor.html:647
+#: templates/maker/task_editor.html:667
msgid "Nuova Misurazione"
msgstr "Nuova Misurazione"
-#: templates/maker/task_editor.html:652
+#: templates/maker/task_editor.html:672
msgid "Marker #"
msgstr "Marker #"
-#: templates/maker/task_editor.html:665
+#: templates/maker/task_editor.html:685
msgid "Es. Diametro foro principale"
msgstr "Es. Diametro foro principale"
-#: templates/maker/task_editor.html:673
+#: templates/maker/task_editor.html:693
msgid "Lineare"
msgstr "Lineare"
-#: templates/maker/task_editor.html:674
+#: templates/maker/task_editor.html:694
msgid "Diametro"
msgstr "Diametro"
-#: templates/maker/task_editor.html:675
+#: templates/maker/task_editor.html:695
msgid "Raggio"
msgstr "Raggio"
-#: templates/maker/task_editor.html:676
+#: templates/maker/task_editor.html:696
msgid "Angolo"
msgstr "Angolo"
-#: templates/maker/task_editor.html:677
+#: templates/maker/task_editor.html:697
msgid "Rugosita"
msgstr "Rugosita"
-#: templates/maker/task_editor.html:678
+#: templates/maker/task_editor.html:698
msgid "Coppia"
msgstr "Coppia"
-#: templates/maker/task_editor.html:679
+#: templates/maker/task_editor.html:699
msgid "Forza"
msgstr "Forza"
-#: templates/maker/task_editor.html:680
+#: templates/maker/task_editor.html:700
msgid "Peso"
msgstr "Peso"
-#: templates/maker/task_editor.html:681
+#: templates/maker/task_editor.html:701
msgid "Altro"
msgstr "Altro"
-#: templates/maker/task_editor.html:718
+#: templates/maker/task_editor.html:738
msgid "Lim. Tol. Inf."
msgstr "Lim. Tol. Inf."
-#: templates/maker/task_editor.html:725
+#: templates/maker/task_editor.html:745
msgid "Lim. Warn. Inf."
msgstr "Lim. Warn. Inf."
-#: templates/maker/task_editor.html:732
+#: templates/maker/task_editor.html:752
msgid "Lim. Warn. Sup."
msgstr "Lim. Warn. Sup."
-#: templates/maker/task_editor.html:739
+#: templates/maker/task_editor.html:759
msgid "Lim. Tol. Sup."
msgstr "Lim. Tol. Sup."
-#: templates/maker/task_editor.html:759
+#: templates/maker/task_editor.html:779
msgid "Aggiorna Misurazione"
msgstr "Aggiorna Misurazione"
-#: templates/maker/task_editor.html:759 templates/maker/task_editor.html:773
+#: templates/maker/task_editor.html:779 templates/maker/task_editor.html:793
msgid "Aggiungi Misurazione"
msgstr "Aggiungi Misurazione"
-#: templates/maker/task_editor.html:797
+#: templates/maker/task_editor.html:817
msgid "Inizia aggiungendo il primo task di misurazione per questa ricetta"
msgstr "Inizia aggiungendo il primo task di misurazione per questa ricetta"
-#: templates/maker/task_editor.html:804
+#: templates/maker/task_editor.html:824
msgid "Aggiungi Primo Task"
msgstr "Aggiungi Primo Task"
-#: templates/maker/task_editor.html:847
+#: templates/maker/task_editor.html:867
msgid "Conferma Eliminazione Task"
msgstr "Conferma Eliminazione Task"
-#: templates/maker/task_editor.html:852
+#: templates/maker/task_editor.html:872
msgid "Sei sicuro di voler eliminare il task"
msgstr "Sei sicuro di voler eliminare il task"
-#: templates/maker/task_editor.html:857
+#: templates/maker/task_editor.html:877
msgid "Verranno eliminate anche"
msgstr "Verranno eliminate anche"
-#: templates/maker/task_editor.html:859
+#: templates/maker/task_editor.html:879
msgid "misurazioni associate."
msgstr "misurazioni associate."
-#: templates/maker/task_editor.html:870
+#: templates/maker/task_editor.html:890
msgid "Elimina Task"
msgstr "Elimina Task"
-#: templates/maker/task_editor.html:917
+#: templates/maker/task_editor.html:937
msgid "Conferma Eliminazione Misurazione"
msgstr "Conferma Eliminazione Misurazione"
-#: templates/maker/task_editor.html:921
+#: templates/maker/task_editor.html:941
msgid "Sei sicuro di voler eliminare la misurazione"
msgstr "Sei sicuro di voler eliminare la misurazione"
-#: templates/maker/task_editor.html:935
+#: templates/maker/task_editor.html:955
msgid "Elimina Misurazione"
msgstr "Elimina Misurazione"
-#: templates/maker/task_editor.html:967
+#: templates/maker/task_editor.html:987
msgid "Importa da Scheda Tecnica"
msgstr "Importa da Scheda Tecnica"
-#: templates/maker/task_editor.html:968
+#: templates/maker/task_editor.html:988
msgid "Carica un PDF e l'AI estrarrà i task automaticamente"
msgstr "Carica un PDF e l'AI estrarrà i task automaticamente"
-#: templates/maker/task_editor.html:982
+#: templates/maker/task_editor.html:1002
msgid "Clicca per caricare un PDF"
msgstr "Clicca per caricare un PDF"
-#: templates/maker/task_editor.html:983
+#: templates/maker/task_editor.html:1003
msgid "Max 20MB"
msgstr "Max 20MB"
-#: templates/maker/task_editor.html:994
+#: templates/maker/task_editor.html:1014
msgid "Analisi in corso con AI..."
msgstr "Analisi in corso con AI..."
-#: templates/maker/task_editor.html:995
+#: templates/maker/task_editor.html:1015
msgid "Potrebbe richiedere fino a 30 secondi"
msgstr "Potrebbe richiedere fino a 30 secondi"
-#: templates/maker/task_editor.html:1001
+#: templates/maker/task_editor.html:1021
msgid "Riprova"
msgstr "Riprova"
-#: templates/maker/task_editor.html:1007
+#: templates/maker/task_editor.html:1027
msgid "task suggeriti — modifica o rimuovi prima di confermare"
msgstr "task suggeriti — modifica o rimuovi prima di confermare"
-#: templates/maker/task_editor.html:1049
+#: templates/maker/task_editor.html:1069
msgid "Crea"
msgstr "Crea"
-#: templates/maker/task_editor.html:1234
+#: templates/maker/task_editor.html:1254
msgid "Errore nell'analisi del PDF"
msgstr "Errore nell'analisi del PDF"
-#: templates/maker/task_editor.html:1238
+#: templates/maker/task_editor.html:1258
msgid "Nessun task identificato nel PDF"
msgstr "Nessun task identificato nel PDF"
-#: templates/maker/task_editor.html:1283
+#: templates/maker/task_editor.html:1303
msgid "task creati dalla scheda tecnica"
msgstr "task creati dalla scheda tecnica"
-#: templates/maker/task_editor.html:1309
+#: templates/maker/task_editor.html:1330
msgid "Errore nella creazione del task"
msgstr "Errore nella creazione del task"
-#: templates/maker/task_editor.html:1317
+#: templates/maker/task_editor.html:1338
msgid "Task creato con successo"
msgstr "Task creato con successo"
-#: templates/maker/task_editor.html:1365 templates/maker/task_editor.html:1761
+#: templates/maker/task_editor.html:1388 templates/maker/task_editor.html:1784
msgid "Errore nel salvataggio del task"
msgstr "Errore nel salvataggio del task"
-#: templates/maker/task_editor.html:1378
+#: templates/maker/task_editor.html:1401
msgid "Task aggiornato"
msgstr "Task aggiornato"
-#: templates/maker/task_editor.html:1408
+#: templates/maker/task_editor.html:1431
msgid "Task eliminato"
msgstr "Task eliminato"
-#: templates/maker/task_editor.html:1411
+#: templates/maker/task_editor.html:1434
msgid "Errore nell'eliminazione del task"
msgstr "Errore nell'eliminazione del task"
-#: templates/maker/task_editor.html:1506
+#: templates/maker/task_editor.html:1529
msgid "Errore nel riordinamento"
msgstr "Errore nel riordinamento"
-#: templates/maker/task_editor.html:1574
+#: templates/maker/task_editor.html:1597
msgid "Errore nella creazione della misurazione"
msgstr "Errore nella creazione della misurazione"
-#: templates/maker/task_editor.html:1582
+#: templates/maker/task_editor.html:1605
msgid "Misurazione aggiunta"
msgstr "Misurazione aggiunta"
-#: templates/maker/task_editor.html:1645
-#: templates/measure/task_execute.html:976
+#: templates/maker/task_editor.html:1668
+#: templates/measure/task_execute.html:995
msgid "Errore nel salvataggio della misurazione"
msgstr "Errore nel salvataggio della misurazione"
-#: templates/maker/task_editor.html:1656
+#: templates/maker/task_editor.html:1679
msgid "Misurazione aggiornata"
msgstr "Misurazione aggiornata"
-#: templates/maker/task_editor.html:1690
+#: templates/maker/task_editor.html:1713
msgid "Misurazione eliminata"
msgstr "Misurazione eliminata"
-#: templates/maker/task_editor.html:1693
+#: templates/maker/task_editor.html:1716
msgid "Errore nell'eliminazione della misurazione"
msgstr "Errore nell'eliminazione della misurazione"
-#: templates/maker/task_editor.html:1712
+#: templates/maker/task_editor.html:1735
msgid "Formato file non supportato. Usa PNG, JPG o PDF."
msgstr "Formato file non supportato. Usa PNG, JPG o PDF."
-#: templates/maker/task_editor.html:1717
+#: templates/maker/task_editor.html:1740
msgid "File troppo grande. Dimensione massima: 20MB."
msgstr "File troppo grande. Dimensione massima: 20MB."
-#: templates/maker/task_editor.html:1738
+#: templates/maker/task_editor.html:1761
msgid "Errore durante il caricamento del file"
msgstr "Errore durante il caricamento del file"
-#: templates/maker/task_editor.html:1769
+#: templates/maker/task_editor.html:1792
msgid "File caricato con successo"
msgstr "File caricato con successo"
@@ -1774,13 +1795,13 @@ msgstr "Cerca"
#: templates/measure/task_complete.html:3
#: templates/measure/task_complete.html:36
#: templates/measure/task_execute.html:112
-#: templates/measure/task_execute.html:640
+#: templates/measure/task_execute.html:659
#: templates/statistics/dashboard.html:139
msgid "Riepilogo"
msgstr "Riepilogo"
#: templates/measure/task_complete.html:44
-#: templates/measure/task_execute.html:617
+#: templates/measure/task_execute.html:636
msgid "Misurazioni Complete"
msgstr "Misurazioni Complete"
@@ -1801,12 +1822,12 @@ msgid "Totale"
msgstr "Totale"
#: templates/measure/task_complete.html:103
-#: templates/measure/task_execute.html:625
+#: templates/measure/task_execute.html:644
msgid "Conformi"
msgstr "Conformi"
#: templates/measure/task_complete.html:120
-#: templates/measure/task_execute.html:629
+#: templates/measure/task_execute.html:648
msgid "Attenzione"
msgstr "Attenzione"
@@ -1994,10 +2015,6 @@ msgstr "Immagine dettaglio misura"
msgid "Misurazione"
msgstr "Misurazione"
-#: templates/measure/task_execute.html:288
-msgid "Misura"
-msgstr "Misura"
-
#: templates/measure/task_execute.html:364
msgid "Registrata"
msgstr "Registrata"
@@ -2011,108 +2028,112 @@ msgid "Ciclo"
msgstr "Ciclo"
#: templates/measure/task_execute.html:456
+msgid "Task di misura senza quote configurate: la ricetta è incompleta"
+msgstr "Task di misura senza quote configurate: la ricetta è incompleta"
+
+#: templates/measure/task_execute.html:475
msgid "Linea ferma"
msgstr "Linea ferma"
-#: templates/measure/task_execute.html:459
+#: templates/measure/task_execute.html:478
msgid "Il conto alla rovescia è congelato a"
msgstr "Il conto alla rovescia è congelato a"
-#: templates/measure/task_execute.html:461
+#: templates/measure/task_execute.html:480
msgid "serve il capoturno per riprendere"
msgstr "serve il capoturno per riprendere"
-#: templates/measure/task_execute.html:480
+#: templates/measure/task_execute.html:499
msgid "Produzione non registrata sul server"
msgstr "Produzione non registrata sul server"
-#: templates/measure/task_execute.html:501
-#: templates/measure/task_execute.html:667
+#: templates/measure/task_execute.html:520
+#: templates/measure/task_execute.html:686
msgid "Avvio Produzione"
msgstr "Avvio Produzione"
-#: templates/measure/task_execute.html:505
+#: templates/measure/task_execute.html:524
msgid "Invia segnale al gestionale per avviare il timer della linea"
msgstr "Invia segnale al gestionale per avviare il timer della linea"
-#: templates/measure/task_execute.html:516
+#: templates/measure/task_execute.html:535
msgid "Produzione avviata"
msgstr "Produzione avviata"
-#: templates/measure/task_execute.html:561
+#: templates/measure/task_execute.html:580
msgid "Fine ciclo misura"
msgstr "Fine ciclo misura"
-#: templates/measure/task_execute.html:571
-#: templates/measure/task_execute.html:585
+#: templates/measure/task_execute.html:590
+#: templates/measure/task_execute.html:604
msgid "Completato"
msgstr "Completato"
-#: templates/measure/task_execute.html:619
+#: templates/measure/task_execute.html:638
msgid "Tutte le"
msgstr "Tutte le"
-#: templates/measure/task_execute.html:619
+#: templates/measure/task_execute.html:638
msgid "misurazioni sono state registrate."
msgstr "misurazioni sono state registrate."
-#: templates/measure/task_execute.html:633
+#: templates/measure/task_execute.html:652
msgid "Non Conf."
msgstr "Non Conf."
-#: templates/measure/task_execute.html:647
+#: templates/measure/task_execute.html:666
msgid "Conferma ciclo"
msgstr "Conferma ciclo"
-#: templates/measure/task_execute.html:657
+#: templates/measure/task_execute.html:676
msgid "Task successivo"
msgstr "Task successivo"
-#: templates/measure/task_execute.html:697
+#: templates/measure/task_execute.html:716
msgid "Autorizzazione capoturno"
msgstr "Autorizzazione capoturno"
-#: templates/measure/task_execute.html:706
+#: templates/measure/task_execute.html:725
msgid "Username capoturno"
msgstr "Username capoturno"
-#: templates/measure/task_execute.html:728
+#: templates/measure/task_execute.html:747
msgid "Autorizza"
msgstr "Autorizza"
-#: templates/measure/task_execute.html:1020
+#: templates/measure/task_execute.html:1039
msgid "Errore di rete. Riprovare."
msgstr "Errore di rete. Riprovare."
-#: templates/measure/task_execute.html:1097
+#: templates/measure/task_execute.html:1116
msgid "Errore di comunicazione con il server"
msgstr "Errore di comunicazione con il server"
-#: templates/measure/task_execute.html:1248
+#: templates/measure/task_execute.html:1284
msgid "Misurazione fuori tolleranza"
msgstr "Misurazione fuori tolleranza"
-#: templates/measure/task_execute.html:1249
+#: templates/measure/task_execute.html:1285
msgid "Fermo linea richiesto"
msgstr "Fermo linea richiesto"
-#: templates/measure/task_execute.html:1250
+#: templates/measure/task_execute.html:1286
msgid "Ripresa della produzione"
msgstr "Ripresa della produzione"
-#: templates/measure/task_execute.html:1251
+#: templates/measure/task_execute.html:1287
msgid "Fine produzione richiesta"
msgstr "Fine produzione richiesta"
-#: templates/measure/task_execute.html:1280
+#: templates/measure/task_execute.html:1316
msgid "Credenziali non valide o utente non autorizzato"
msgstr "Credenziali non valide o utente non autorizzato"
-#: templates/measure/task_execute.html:1312
+#: templates/measure/task_execute.html:1348
msgid "Nessuna produzione aperta su questa stazione"
msgstr "Nessuna produzione aperta su questa stazione"
-#: templates/measure/task_execute.html:1329
+#: templates/measure/task_execute.html:1365
msgid "Azione non riuscita"
msgstr "Azione non riuscita"
@@ -2128,19 +2149,27 @@ msgstr "Task da eseguire"
msgid "misurazioni totali"
msgstr "misurazioni totali"
-#: templates/measure/task_list.html:180
+#: templates/measure/task_list.html:175
+msgid "Confronto profilo"
+msgstr "Confronto profilo"
+
+#: templates/measure/task_list.html:176
+msgid "Misura camera"
+msgstr "Misura camera"
+
+#: templates/measure/task_list.html:198
msgid "Allegato"
msgstr "Allegato"
-#: templates/measure/task_list.html:204
+#: templates/measure/task_list.html:222
msgid "Visualizza Task"
msgstr "Visualizza Task"
-#: templates/measure/task_list.html:227
+#: templates/measure/task_list.html:245
msgid "Nessun task disponibile"
msgstr "Nessun task disponibile"
-#: templates/measure/task_list.html:230
+#: templates/measure/task_list.html:248
msgid "Questa ricetta non ha ancora task definiti."
msgstr "Questa ricetta non ha ancora task definiti."
diff --git a/src/frontend/flask_app/translations/messages.pot b/src/frontend/flask_app/translations/messages.pot
index a16af89..19339ee 100644
--- a/src/frontend/flask_app/translations/messages.pot
+++ b/src/frontend/flask_app/translations/messages.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2026-07-28 17:30+0000\n"
+"POT-Creation-Date: 2026-07-28 18:13+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -231,11 +231,11 @@ msgstr ""
#: templates/admin/stations.html:665 templates/admin/stations.html:700
#: templates/admin/stations.html:723 templates/admin/users.html:497
#: templates/admin/users.html:533 templates/maker/recipe_editor.html:571
-#: templates/maker/task_drawing.html:65 templates/maker/task_editor.html:1243
-#: templates/maker/task_editor.html:1321 templates/maker/task_editor.html:1382
-#: templates/maker/task_editor.html:1415 templates/maker/task_editor.html:1510
-#: templates/maker/task_editor.html:1586 templates/maker/task_editor.html:1660
-#: templates/maker/task_editor.html:1697 templates/maker/task_editor.html:1776
+#: templates/maker/task_drawing.html:65 templates/maker/task_editor.html:1263
+#: templates/maker/task_editor.html:1342 templates/maker/task_editor.html:1405
+#: templates/maker/task_editor.html:1438 templates/maker/task_editor.html:1533
+#: templates/maker/task_editor.html:1609 templates/maker/task_editor.html:1683
+#: templates/maker/task_editor.html:1720 templates/maker/task_editor.html:1799
#: templates/statistics/dashboard.html:372
#: templates/statistics/dashboard.html:457
msgid "Errore di connessione al server"
@@ -285,7 +285,7 @@ msgid "Stato"
msgstr ""
#: templates/admin/stations.html:54 templates/admin/users.html:53
-#: templates/maker/task_editor.html:551
+#: templates/maker/task_editor.html:571
msgid "Azioni"
msgstr ""
@@ -315,13 +315,13 @@ msgid "Nessuna ricetta da azzerare"
msgstr ""
#: templates/admin/stations.html:113 templates/admin/users.html:100
-#: templates/maker/recipe_list.html:237 templates/maker/task_editor.html:602
+#: templates/maker/recipe_list.html:237 templates/maker/task_editor.html:622
msgid "Modifica"
msgstr ""
#: templates/admin/stations.html:120 templates/admin/stations.html:421
#: templates/maker/recipe_list.html:277 templates/maker/recipe_list.html:387
-#: templates/maker/task_drawing.html:275 templates/maker/task_editor.html:610
+#: templates/maker/task_drawing.html:275 templates/maker/task_editor.html:630
msgid "Elimina"
msgstr ""
@@ -365,11 +365,11 @@ msgstr ""
#: templates/admin/stations.html:416 templates/admin/users.html:292
#: templates/admin/users.html:323 templates/maker/recipe_editor.html:137
#: templates/maker/recipe_editor.html:456 templates/maker/recipe_list.html:383
-#: templates/maker/task_editor.html:294 templates/maker/task_editor.html:403
-#: templates/maker/task_editor.html:747 templates/maker/task_editor.html:866
-#: templates/maker/task_editor.html:931 templates/maker/task_editor.html:1036
+#: templates/maker/task_editor.html:306 templates/maker/task_editor.html:415
+#: templates/maker/task_editor.html:767 templates/maker/task_editor.html:886
+#: templates/maker/task_editor.html:951 templates/maker/task_editor.html:1056
#: templates/measure/select_recipe.html:367
-#: templates/measure/task_execute.html:719
+#: templates/measure/task_execute.html:738
msgid "Annulla"
msgstr ""
@@ -513,7 +513,7 @@ msgstr ""
#: templates/admin/users.html:48 templates/admin/users.html:173
#: templates/admin/users.html:179 templates/auth/login.html:35
#: templates/auth/login.html:49 templates/auth/profile.html:36
-#: templates/measure/task_execute.html:704
+#: templates/measure/task_execute.html:723
msgid "Username"
msgstr ""
@@ -565,7 +565,7 @@ msgstr ""
#: templates/admin/users.html:206 templates/admin/users.html:214
#: templates/auth/login.html:57 templates/auth/login.html:71
-#: templates/measure/task_execute.html:709
+#: templates/measure/task_execute.html:728
msgid "Password"
msgstr ""
@@ -829,7 +829,7 @@ msgstr ""
msgid "Compila i dati della ricetta"
msgstr ""
-#: templates/maker/recipe_editor.html:107 templates/maker/task_editor.html:396
+#: templates/maker/recipe_editor.html:107 templates/maker/task_editor.html:408
msgid "Salva"
msgstr ""
@@ -843,7 +843,7 @@ msgstr ""
#: templates/maker/recipe_editor.html:128 templates/maker/recipe_list.html:246
#: templates/maker/task_drawing.html:106 templates/maker/task_editor.html:130
#: templates/measure/task_complete.html:168
-#: templates/measure/task_execute.html:532 templates/measure/task_list.html:2
+#: templates/measure/task_execute.html:551 templates/measure/task_list.html:2
#: templates/measure/task_list.html:156
msgid "Task"
msgstr ""
@@ -868,10 +868,10 @@ msgstr ""
msgid "Es. Coupling Assembly 256"
msgstr ""
-#: templates/maker/recipe_editor.html:226 templates/maker/task_editor.html:283
-#: templates/maker/task_editor.html:509 templates/maker/task_editor.html:527
-#: templates/maker/task_editor.html:542 templates/maker/task_editor.html:660
-#: templates/maker/task_editor.html:1025
+#: templates/maker/recipe_editor.html:226 templates/maker/task_editor.html:295
+#: templates/maker/task_editor.html:521 templates/maker/task_editor.html:547
+#: templates/maker/task_editor.html:562 templates/maker/task_editor.html:680
+#: templates/maker/task_editor.html:1045
#: templates/measure/task_complete.html:169
msgid "Descrizione"
msgstr ""
@@ -905,7 +905,7 @@ msgstr ""
msgid "Caricamento in corso..."
msgstr ""
-#: templates/maker/recipe_editor.html:302 templates/maker/task_editor.html:473
+#: templates/maker/recipe_editor.html:302 templates/maker/task_editor.html:485
msgid "Sostituisci"
msgstr ""
@@ -990,8 +990,8 @@ msgid "Errore durante eliminazione"
msgstr ""
#: templates/maker/recipe_list.html:55 templates/measure/select_recipe.html:55
-#: templates/measure/task_execute.html:1102
-#: templates/measure/task_execute.html:1301
+#: templates/measure/task_execute.html:1121
+#: templates/measure/task_execute.html:1337
msgid "Errore di connessione"
msgstr ""
@@ -1029,7 +1029,7 @@ msgid "ricette trovate"
msgstr ""
#: templates/maker/recipe_list.html:211 templates/maker/task_editor.html:222
-#: templates/maker/task_editor.html:1049
+#: templates/maker/task_editor.html:1069
msgid "task"
msgstr ""
@@ -1105,7 +1105,7 @@ msgstr ""
msgid "misure"
msgstr ""
-#: templates/maker/recipe_preview.html:213 templates/maker/task_editor.html:448
+#: templates/maker/recipe_preview.html:213 templates/maker/task_editor.html:460
msgid "Disegno Tecnico"
msgstr ""
@@ -1126,8 +1126,8 @@ msgstr ""
msgid "Punti di Misura"
msgstr ""
-#: templates/maker/recipe_preview.html:299 templates/maker/task_editor.html:544
-#: templates/maker/task_editor.html:686
+#: templates/maker/recipe_preview.html:299 templates/maker/task_editor.html:564
+#: templates/maker/task_editor.html:706
#: templates/measure/task_complete.html:170
#: templates/measure/task_execute.html:300
msgid "Nominale"
@@ -1137,7 +1137,7 @@ msgstr ""
msgid "Nessun punto di misura definito per questo task"
msgstr ""
-#: templates/maker/recipe_preview.html:383 templates/maker/task_editor.html:794
+#: templates/maker/recipe_preview.html:383 templates/maker/task_editor.html:814
msgid "Nessun task definito"
msgstr ""
@@ -1281,7 +1281,7 @@ msgstr ""
msgid "Nuovo Task"
msgstr ""
-#: templates/maker/task_editor.html:265 templates/maker/task_editor.html:1021
+#: templates/maker/task_editor.html:265 templates/maker/task_editor.html:1041
msgid "Titolo"
msgstr ""
@@ -1289,328 +1289,348 @@ msgstr ""
msgid "Es. Controllo dimensionale flangia"
msgstr ""
-#: templates/maker/task_editor.html:275 templates/maker/task_editor.html:503
-#: templates/maker/task_editor.html:520 templates/maker/task_editor.html:1023
-msgid "Direttiva"
-msgstr ""
-
-#: templates/maker/task_editor.html:279
-msgid "Es. Seguire procedura ISO 2768"
-msgstr ""
-
-#: templates/maker/task_editor.html:287 templates/maker/task_editor.html:531
-msgid "Descrizione opzionale..."
-msgstr ""
-
-#: templates/maker/task_editor.html:306
-msgid "Crea Task"
-msgstr ""
-
-#: templates/maker/task_editor.html:336
-msgid "Trascina per riordinare"
-msgstr ""
-
-#: templates/maker/task_editor.html:372
-#: templates/maker/version_history.html:188
-#: templates/measure/task_list.html:171
-msgid "misurazioni"
-msgstr ""
-
-#: templates/maker/task_editor.html:382
-msgid "Modifica task"
-msgstr ""
-
-#: templates/maker/task_editor.html:414
-msgid "Espandi/Comprimi"
-msgstr ""
-
-#: templates/maker/task_editor.html:425
-msgid "Elimina task"
-msgstr ""
-
-#: templates/maker/task_editor.html:467
-msgid "Modifica Disegno"
-msgstr ""
-
-#: templates/maker/task_editor.html:489
-msgid "Carica immagine o PDF"
-msgstr ""
-
-#: templates/maker/task_editor.html:524
-msgid "Direttiva opzionale..."
-msgstr ""
-
-#: templates/maker/task_editor.html:541
-msgid "#"
-msgstr ""
-
-#: templates/maker/task_editor.html:543 templates/maker/task_editor.html:669
+#: templates/maker/task_editor.html:275 templates/maker/task_editor.html:532
+#: templates/maker/task_editor.html:563 templates/maker/task_editor.html:689
msgid "Tipo"
msgstr ""
-#: templates/maker/task_editor.html:545 templates/maker/task_editor.html:735
+#: templates/maker/task_editor.html:277 templates/maker/task_editor.html:534
+#: templates/measure/task_list.html:174
+msgid "Nota"
+msgstr ""
+
+#: templates/maker/task_editor.html:278 templates/maker/task_editor.html:535
+#: templates/measure/task_execute.html:288 templates/measure/task_list.html:172
+msgid "Misura"
+msgstr ""
+
+#: templates/maker/task_editor.html:279 templates/maker/task_editor.html:536
+#: templates/measure/task_list.html:173
+msgid "Disegno"
+msgstr ""
+
+#: templates/maker/task_editor.html:282
+msgid "Un task di misura resta tale anche prima di inserire le quote"
+msgstr ""
+
+#: templates/maker/task_editor.html:287 templates/maker/task_editor.html:515
+#: templates/maker/task_editor.html:540 templates/maker/task_editor.html:1043
+msgid "Direttiva"
+msgstr ""
+
+#: templates/maker/task_editor.html:291
+msgid "Es. Seguire procedura ISO 2768"
+msgstr ""
+
+#: templates/maker/task_editor.html:299 templates/maker/task_editor.html:551
+msgid "Descrizione opzionale..."
+msgstr ""
+
+#: templates/maker/task_editor.html:318
+msgid "Crea Task"
+msgstr ""
+
+#: templates/maker/task_editor.html:348
+msgid "Trascina per riordinare"
+msgstr ""
+
+#: templates/maker/task_editor.html:384
+#: templates/maker/version_history.html:188
+#: templates/measure/task_list.html:189
+msgid "misurazioni"
+msgstr ""
+
+#: templates/maker/task_editor.html:394
+msgid "Modifica task"
+msgstr ""
+
+#: templates/maker/task_editor.html:426
+msgid "Espandi/Comprimi"
+msgstr ""
+
+#: templates/maker/task_editor.html:437
+msgid "Elimina task"
+msgstr ""
+
+#: templates/maker/task_editor.html:479
+msgid "Modifica Disegno"
+msgstr ""
+
+#: templates/maker/task_editor.html:501
+msgid "Carica immagine o PDF"
+msgstr ""
+
+#: templates/maker/task_editor.html:544
+msgid "Direttiva opzionale..."
+msgstr ""
+
+#: templates/maker/task_editor.html:561
+msgid "#"
+msgstr ""
+
+#: templates/maker/task_editor.html:565 templates/maker/task_editor.html:755
msgid "UTL"
msgstr ""
-#: templates/maker/task_editor.html:546 templates/maker/task_editor.html:728
+#: templates/maker/task_editor.html:566 templates/maker/task_editor.html:748
msgid "UWL"
msgstr ""
-#: templates/maker/task_editor.html:547 templates/maker/task_editor.html:721
+#: templates/maker/task_editor.html:567 templates/maker/task_editor.html:741
msgid "LWL"
msgstr ""
-#: templates/maker/task_editor.html:548 templates/maker/task_editor.html:714
+#: templates/maker/task_editor.html:568 templates/maker/task_editor.html:734
msgid "LTL"
msgstr ""
-#: templates/maker/task_editor.html:549 templates/maker/task_editor.html:694
+#: templates/maker/task_editor.html:569 templates/maker/task_editor.html:714
#: templates/measure/task_complete.html:275
msgid "Unita"
msgstr ""
-#: templates/maker/task_editor.html:550
+#: templates/maker/task_editor.html:570
msgid "Tolleranze"
msgstr ""
-#: templates/maker/task_editor.html:635
+#: templates/maker/task_editor.html:655
msgid "Nessuna misurazione definita"
msgstr ""
-#: templates/maker/task_editor.html:638
+#: templates/maker/task_editor.html:658
msgid "Aggiungi la prima misurazione per questo task"
msgstr ""
-#: templates/maker/task_editor.html:647
+#: templates/maker/task_editor.html:667
msgid "Modifica Misurazione"
msgstr ""
-#: templates/maker/task_editor.html:647
+#: templates/maker/task_editor.html:667
msgid "Nuova Misurazione"
msgstr ""
-#: templates/maker/task_editor.html:652
+#: templates/maker/task_editor.html:672
msgid "Marker #"
msgstr ""
-#: templates/maker/task_editor.html:665
+#: templates/maker/task_editor.html:685
msgid "Es. Diametro foro principale"
msgstr ""
-#: templates/maker/task_editor.html:673
+#: templates/maker/task_editor.html:693
msgid "Lineare"
msgstr ""
-#: templates/maker/task_editor.html:674
+#: templates/maker/task_editor.html:694
msgid "Diametro"
msgstr ""
-#: templates/maker/task_editor.html:675
+#: templates/maker/task_editor.html:695
msgid "Raggio"
msgstr ""
-#: templates/maker/task_editor.html:676
+#: templates/maker/task_editor.html:696
msgid "Angolo"
msgstr ""
-#: templates/maker/task_editor.html:677
+#: templates/maker/task_editor.html:697
msgid "Rugosita"
msgstr ""
-#: templates/maker/task_editor.html:678
+#: templates/maker/task_editor.html:698
msgid "Coppia"
msgstr ""
-#: templates/maker/task_editor.html:679
+#: templates/maker/task_editor.html:699
msgid "Forza"
msgstr ""
-#: templates/maker/task_editor.html:680
+#: templates/maker/task_editor.html:700
msgid "Peso"
msgstr ""
-#: templates/maker/task_editor.html:681
+#: templates/maker/task_editor.html:701
msgid "Altro"
msgstr ""
-#: templates/maker/task_editor.html:718
+#: templates/maker/task_editor.html:738
msgid "Lim. Tol. Inf."
msgstr ""
-#: templates/maker/task_editor.html:725
+#: templates/maker/task_editor.html:745
msgid "Lim. Warn. Inf."
msgstr ""
-#: templates/maker/task_editor.html:732
+#: templates/maker/task_editor.html:752
msgid "Lim. Warn. Sup."
msgstr ""
-#: templates/maker/task_editor.html:739
+#: templates/maker/task_editor.html:759
msgid "Lim. Tol. Sup."
msgstr ""
-#: templates/maker/task_editor.html:759
+#: templates/maker/task_editor.html:779
msgid "Aggiorna Misurazione"
msgstr ""
-#: templates/maker/task_editor.html:759 templates/maker/task_editor.html:773
+#: templates/maker/task_editor.html:779 templates/maker/task_editor.html:793
msgid "Aggiungi Misurazione"
msgstr ""
-#: templates/maker/task_editor.html:797
+#: templates/maker/task_editor.html:817
msgid "Inizia aggiungendo il primo task di misurazione per questa ricetta"
msgstr ""
-#: templates/maker/task_editor.html:804
+#: templates/maker/task_editor.html:824
msgid "Aggiungi Primo Task"
msgstr ""
-#: templates/maker/task_editor.html:847
+#: templates/maker/task_editor.html:867
msgid "Conferma Eliminazione Task"
msgstr ""
-#: templates/maker/task_editor.html:852
+#: templates/maker/task_editor.html:872
msgid "Sei sicuro di voler eliminare il task"
msgstr ""
-#: templates/maker/task_editor.html:857
+#: templates/maker/task_editor.html:877
msgid "Verranno eliminate anche"
msgstr ""
-#: templates/maker/task_editor.html:859
+#: templates/maker/task_editor.html:879
msgid "misurazioni associate."
msgstr ""
-#: templates/maker/task_editor.html:870
+#: templates/maker/task_editor.html:890
msgid "Elimina Task"
msgstr ""
-#: templates/maker/task_editor.html:917
+#: templates/maker/task_editor.html:937
msgid "Conferma Eliminazione Misurazione"
msgstr ""
-#: templates/maker/task_editor.html:921
+#: templates/maker/task_editor.html:941
msgid "Sei sicuro di voler eliminare la misurazione"
msgstr ""
-#: templates/maker/task_editor.html:935
+#: templates/maker/task_editor.html:955
msgid "Elimina Misurazione"
msgstr ""
-#: templates/maker/task_editor.html:967
+#: templates/maker/task_editor.html:987
msgid "Importa da Scheda Tecnica"
msgstr ""
-#: templates/maker/task_editor.html:968
+#: templates/maker/task_editor.html:988
msgid "Carica un PDF e l'AI estrarrà i task automaticamente"
msgstr ""
-#: templates/maker/task_editor.html:982
+#: templates/maker/task_editor.html:1002
msgid "Clicca per caricare un PDF"
msgstr ""
-#: templates/maker/task_editor.html:983
+#: templates/maker/task_editor.html:1003
msgid "Max 20MB"
msgstr ""
-#: templates/maker/task_editor.html:994
+#: templates/maker/task_editor.html:1014
msgid "Analisi in corso con AI..."
msgstr ""
-#: templates/maker/task_editor.html:995
+#: templates/maker/task_editor.html:1015
msgid "Potrebbe richiedere fino a 30 secondi"
msgstr ""
-#: templates/maker/task_editor.html:1001
+#: templates/maker/task_editor.html:1021
msgid "Riprova"
msgstr ""
-#: templates/maker/task_editor.html:1007
+#: templates/maker/task_editor.html:1027
msgid "task suggeriti — modifica o rimuovi prima di confermare"
msgstr ""
-#: templates/maker/task_editor.html:1049
+#: templates/maker/task_editor.html:1069
msgid "Crea"
msgstr ""
-#: templates/maker/task_editor.html:1234
+#: templates/maker/task_editor.html:1254
msgid "Errore nell'analisi del PDF"
msgstr ""
-#: templates/maker/task_editor.html:1238
+#: templates/maker/task_editor.html:1258
msgid "Nessun task identificato nel PDF"
msgstr ""
-#: templates/maker/task_editor.html:1283
+#: templates/maker/task_editor.html:1303
msgid "task creati dalla scheda tecnica"
msgstr ""
-#: templates/maker/task_editor.html:1309
+#: templates/maker/task_editor.html:1330
msgid "Errore nella creazione del task"
msgstr ""
-#: templates/maker/task_editor.html:1317
+#: templates/maker/task_editor.html:1338
msgid "Task creato con successo"
msgstr ""
-#: templates/maker/task_editor.html:1365 templates/maker/task_editor.html:1761
+#: templates/maker/task_editor.html:1388 templates/maker/task_editor.html:1784
msgid "Errore nel salvataggio del task"
msgstr ""
-#: templates/maker/task_editor.html:1378
+#: templates/maker/task_editor.html:1401
msgid "Task aggiornato"
msgstr ""
-#: templates/maker/task_editor.html:1408
+#: templates/maker/task_editor.html:1431
msgid "Task eliminato"
msgstr ""
-#: templates/maker/task_editor.html:1411
+#: templates/maker/task_editor.html:1434
msgid "Errore nell'eliminazione del task"
msgstr ""
-#: templates/maker/task_editor.html:1506
+#: templates/maker/task_editor.html:1529
msgid "Errore nel riordinamento"
msgstr ""
-#: templates/maker/task_editor.html:1574
+#: templates/maker/task_editor.html:1597
msgid "Errore nella creazione della misurazione"
msgstr ""
-#: templates/maker/task_editor.html:1582
+#: templates/maker/task_editor.html:1605
msgid "Misurazione aggiunta"
msgstr ""
-#: templates/maker/task_editor.html:1645
-#: templates/measure/task_execute.html:976
+#: templates/maker/task_editor.html:1668
+#: templates/measure/task_execute.html:995
msgid "Errore nel salvataggio della misurazione"
msgstr ""
-#: templates/maker/task_editor.html:1656
+#: templates/maker/task_editor.html:1679
msgid "Misurazione aggiornata"
msgstr ""
-#: templates/maker/task_editor.html:1690
+#: templates/maker/task_editor.html:1713
msgid "Misurazione eliminata"
msgstr ""
-#: templates/maker/task_editor.html:1693
+#: templates/maker/task_editor.html:1716
msgid "Errore nell'eliminazione della misurazione"
msgstr ""
-#: templates/maker/task_editor.html:1712
+#: templates/maker/task_editor.html:1735
msgid "Formato file non supportato. Usa PNG, JPG o PDF."
msgstr ""
-#: templates/maker/task_editor.html:1717
+#: templates/maker/task_editor.html:1740
msgid "File troppo grande. Dimensione massima: 20MB."
msgstr ""
-#: templates/maker/task_editor.html:1738
+#: templates/maker/task_editor.html:1761
msgid "Errore durante il caricamento del file"
msgstr ""
-#: templates/maker/task_editor.html:1769
+#: templates/maker/task_editor.html:1792
msgid "File caricato con successo"
msgstr ""
@@ -1736,13 +1756,13 @@ msgstr ""
#: templates/measure/task_complete.html:3
#: templates/measure/task_complete.html:36
#: templates/measure/task_execute.html:112
-#: templates/measure/task_execute.html:640
+#: templates/measure/task_execute.html:659
#: templates/statistics/dashboard.html:139
msgid "Riepilogo"
msgstr ""
#: templates/measure/task_complete.html:44
-#: templates/measure/task_execute.html:617
+#: templates/measure/task_execute.html:636
msgid "Misurazioni Complete"
msgstr ""
@@ -1762,12 +1782,12 @@ msgid "Totale"
msgstr ""
#: templates/measure/task_complete.html:103
-#: templates/measure/task_execute.html:625
+#: templates/measure/task_execute.html:644
msgid "Conformi"
msgstr ""
#: templates/measure/task_complete.html:120
-#: templates/measure/task_execute.html:629
+#: templates/measure/task_execute.html:648
msgid "Attenzione"
msgstr ""
@@ -1953,10 +1973,6 @@ msgstr ""
msgid "Misurazione"
msgstr ""
-#: templates/measure/task_execute.html:288
-msgid "Misura"
-msgstr ""
-
#: templates/measure/task_execute.html:364
msgid "Registrata"
msgstr ""
@@ -1970,108 +1986,112 @@ msgid "Ciclo"
msgstr ""
#: templates/measure/task_execute.html:456
+msgid "Task di misura senza quote configurate: la ricetta è incompleta"
+msgstr ""
+
+#: templates/measure/task_execute.html:475
msgid "Linea ferma"
msgstr ""
-#: templates/measure/task_execute.html:459
+#: templates/measure/task_execute.html:478
msgid "Il conto alla rovescia è congelato a"
msgstr ""
-#: templates/measure/task_execute.html:461
+#: templates/measure/task_execute.html:480
msgid "serve il capoturno per riprendere"
msgstr ""
-#: templates/measure/task_execute.html:480
+#: templates/measure/task_execute.html:499
msgid "Produzione non registrata sul server"
msgstr ""
-#: templates/measure/task_execute.html:501
-#: templates/measure/task_execute.html:667
+#: templates/measure/task_execute.html:520
+#: templates/measure/task_execute.html:686
msgid "Avvio Produzione"
msgstr ""
-#: templates/measure/task_execute.html:505
+#: templates/measure/task_execute.html:524
msgid "Invia segnale al gestionale per avviare il timer della linea"
msgstr ""
-#: templates/measure/task_execute.html:516
+#: templates/measure/task_execute.html:535
msgid "Produzione avviata"
msgstr ""
-#: templates/measure/task_execute.html:561
+#: templates/measure/task_execute.html:580
msgid "Fine ciclo misura"
msgstr ""
-#: templates/measure/task_execute.html:571
-#: templates/measure/task_execute.html:585
+#: templates/measure/task_execute.html:590
+#: templates/measure/task_execute.html:604
msgid "Completato"
msgstr ""
-#: templates/measure/task_execute.html:619
+#: templates/measure/task_execute.html:638
msgid "Tutte le"
msgstr ""
-#: templates/measure/task_execute.html:619
+#: templates/measure/task_execute.html:638
msgid "misurazioni sono state registrate."
msgstr ""
-#: templates/measure/task_execute.html:633
+#: templates/measure/task_execute.html:652
msgid "Non Conf."
msgstr ""
-#: templates/measure/task_execute.html:647
+#: templates/measure/task_execute.html:666
msgid "Conferma ciclo"
msgstr ""
-#: templates/measure/task_execute.html:657
+#: templates/measure/task_execute.html:676
msgid "Task successivo"
msgstr ""
-#: templates/measure/task_execute.html:697
+#: templates/measure/task_execute.html:716
msgid "Autorizzazione capoturno"
msgstr ""
-#: templates/measure/task_execute.html:706
+#: templates/measure/task_execute.html:725
msgid "Username capoturno"
msgstr ""
-#: templates/measure/task_execute.html:728
+#: templates/measure/task_execute.html:747
msgid "Autorizza"
msgstr ""
-#: templates/measure/task_execute.html:1020
+#: templates/measure/task_execute.html:1039
msgid "Errore di rete. Riprovare."
msgstr ""
-#: templates/measure/task_execute.html:1097
+#: templates/measure/task_execute.html:1116
msgid "Errore di comunicazione con il server"
msgstr ""
-#: templates/measure/task_execute.html:1248
+#: templates/measure/task_execute.html:1284
msgid "Misurazione fuori tolleranza"
msgstr ""
-#: templates/measure/task_execute.html:1249
+#: templates/measure/task_execute.html:1285
msgid "Fermo linea richiesto"
msgstr ""
-#: templates/measure/task_execute.html:1250
+#: templates/measure/task_execute.html:1286
msgid "Ripresa della produzione"
msgstr ""
-#: templates/measure/task_execute.html:1251
+#: templates/measure/task_execute.html:1287
msgid "Fine produzione richiesta"
msgstr ""
-#: templates/measure/task_execute.html:1280
+#: templates/measure/task_execute.html:1316
msgid "Credenziali non valide o utente non autorizzato"
msgstr ""
-#: templates/measure/task_execute.html:1312
+#: templates/measure/task_execute.html:1348
msgid "Nessuna produzione aperta su questa stazione"
msgstr ""
-#: templates/measure/task_execute.html:1329
+#: templates/measure/task_execute.html:1365
msgid "Azione non riuscita"
msgstr ""
@@ -2087,19 +2107,27 @@ msgstr ""
msgid "misurazioni totali"
msgstr ""
-#: templates/measure/task_list.html:180
+#: templates/measure/task_list.html:175
+msgid "Confronto profilo"
+msgstr ""
+
+#: templates/measure/task_list.html:176
+msgid "Misura camera"
+msgstr ""
+
+#: templates/measure/task_list.html:198
msgid "Allegato"
msgstr ""
-#: templates/measure/task_list.html:204
+#: templates/measure/task_list.html:222
msgid "Visualizza Task"
msgstr ""
-#: templates/measure/task_list.html:227
+#: templates/measure/task_list.html:245
msgid "Nessun task disponibile"
msgstr ""
-#: templates/measure/task_list.html:230
+#: templates/measure/task_list.html:248
msgid "Questa ricetta non ha ancora task definiti."
msgstr ""