From 7eb4d1724883c083f4b135dfcdb147209f51269c Mon Sep 17 00:00:00 2001 From: GGlamer <52128225+Gamer201760@users.noreply.github.com> Date: Sun, 27 Sep 2026 22:37:19 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D1=81=D1=82=D1=80=D0=BE=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BF=D0=B0=D1=83=D0=B7=20=D0=B2=20=D1=80=D0=B0=D0=B7=D0=B1?= =?UTF-8?q?=D0=BE=D1=80=D0=B5=20=D1=82=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B8=20=D0=BF=D0=B0=D1=83=D0=B7=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/features/debrief/Debrief.tsx | 5 +++-- frontend/src/pages/dds/Dds.tsx | 5 +++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/frontend/src/features/debrief/Debrief.tsx b/frontend/src/features/debrief/Debrief.tsx index f23dd8a..5e639b1 100644 --- a/frontend/src/features/debrief/Debrief.tsx +++ b/frontend/src/features/debrief/Debrief.tsx @@ -20,7 +20,8 @@ export function Debrief({ report, big = false }: { report: SessionReport; big?: const improvementPoints = report.metrics.filter((metric) => !metric.passed).slice(0, 3); const metricTitles = new Map(report.metrics.map((metric) => [metric.key, metric.title])); const coaching = report.ai_coaching?.status === "ready" ? report.ai_coaching.recommendations ?? [] : []; - const pausedSeconds = Math.round((report.total_paused_ms ?? 0) / 1000); + // Вверх: короткая пауза не должна выглядеть как «0 с», а без пауз строки нет. + const pausedSeconds = Math.ceil((report.total_paused_ms ?? 0) / 1000); return (
@@ -44,7 +45,7 @@ export function Debrief({ report, big = false }: { report: SessionReport; big?: {report.attempt ? `Попытка ${report.attempt}` : "Завершённое упражнение"} -

Паузы занятия: {Math.floor(pausedSeconds / 60)} мин {pausedSeconds % 60} с. Время пауз исключено из нормативов.

+ {pausedSeconds > 0 &&

Паузы занятия: {Math.floor(pausedSeconds / 60)} мин {pausedSeconds % 60} с. Время пауз исключено из нормативов.

}
Служебные сведения

Идентификатор сценария: {report.scenario_id} · номер занятия: {report.session_id}

diff --git a/frontend/src/pages/dds/Dds.tsx b/frontend/src/pages/dds/Dds.tsx index 068bd7a..8734a5f 100644 --- a/frontend/src/pages/dds/Dds.tsx +++ b/frontend/src/pages/dds/Dds.tsx @@ -331,7 +331,8 @@ export function Dds() { const phoneCall = station?.phone_pending ?? null; const phoneLines = (station?.phone_lines ?? []).filter((line) => line.crew === selectedCrew); const isConnected = status === "open"; - const pausedSeconds = Math.round((report?.total_paused_ms ?? 0) / 1000); + // Вверх: короткая пауза не должна выглядеть как «0 с», а без пауз строки нет. + const pausedSeconds = Math.ceil((report?.total_paused_ms ?? 0) / 1000); const cardId = card ? String(readPath(card.server, "card_id") ?? "") : ""; const cardIndex = station?.card_index ?? 1; const cardTotal = station?.card_total ?? 1; @@ -379,7 +380,7 @@ export function Dds() { {report ?

Итоговая оценка: {report.score_final.toFixed(0)} из 100 {report.score_final !== report.score_auto && ` · автооценка ${report.score_auto.toFixed(0)}`}

-

Паузы занятия: {Math.floor(pausedSeconds / 60)} мин {pausedSeconds % 60} с. Время пауз исключено из нормативов.

+ {pausedSeconds > 0 &&

Паузы занятия: {Math.floor(pausedSeconds / 60)} мин {pausedSeconds % 60} с. Время пауз исключено из нормативов.

}

Скачать отчёт: CSV {" · "}PDF

{Boolean(report.card_results?.length) && <>