From 67334dde3c5323b677633ceaf772fe201addf3b8 Mon Sep 17 00:00:00 2001 From: poignatov Date: Sun, 8 Mar 2026 13:52:06 +0300 Subject: [PATCH] =?UTF-8?q?6.3.6:=20=D0=A4=D0=B8=D0=BA=D1=81=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B4=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D0=B8=20?= =?UTF-8?q?base=5Fprogress=20=D0=BF=D1=80=D0=B8=20=D0=B0=D0=B2=D1=82=D0=BE?= =?UTF-8?q?-=D0=B2=D1=8B=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- play-life-backend/main.go | 13 +++++++++++++ play-life-web/src/components/TaskDetail.jsx | 5 +++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/play-life-backend/main.go b/play-life-backend/main.go index dcd4345..34a7268 100644 --- a/play-life-backend/main.go +++ b/play-life-backend/main.go @@ -10114,6 +10114,19 @@ func (a *App) completeTaskAtEndOfDayHandler(w http.ResponseWriter, r *http.Reque autoCompleteTrue := true req.AutoComplete = &autoCompleteTrue + // Если progression_value не задан — подставляем progression_base задачи + if req.ProgressionValue == nil && (req.ClearProgressionValue == nil || !*req.ClearProgressionValue) { + var taskProgressionBase sql.NullFloat64 + if pbErr := a.DB.QueryRow("SELECT progression_base FROM tasks WHERE id = $1", taskID).Scan(&taskProgressionBase); pbErr != nil { + log.Printf("Error fetching task progression_base: %v", pbErr) + sendErrorWithCORS(w, fmt.Sprintf("Error fetching task progression_base: %v", pbErr), http.StatusInternalServerError) + return + } + if taskProgressionBase.Valid { + req.ProgressionValue = &taskProgressionBase.Float64 + } + } + // Используем ту же логику что и saveTaskDraftHandler // Начинаем транзакцию tx, err := a.DB.Begin() diff --git a/play-life-web/src/components/TaskDetail.jsx b/play-life-web/src/components/TaskDetail.jsx index cb72308..b1e6186 100644 --- a/play-life-web/src/components/TaskDetail.jsx +++ b/play-life-web/src/components/TaskDetail.jsx @@ -485,8 +485,9 @@ function TaskDetail({ taskId, onClose, onRefresh, onTaskCompleted, onNavigate }) throw new Error('Неверное значение') } payload.progression_value = parsedValue - } else { - // Если прогрессия не введена - сбрасываем в null + } else if (!autoComplete) { + // Если прогрессия не введена и нет авто-выполнения - сбрасываем в null + // При авто-выполнении бэкенд сам подставит progression_base payload.clear_progression_value = true } } else {