From d0d1cbd8cb32cf3e1f05725004cc1484672ccdbd Mon Sep 17 00:00:00 2001 From: poignatov Date: Wed, 21 Jan 2026 18:57:47 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20reward=5Fpolicy=20=D0=B4=D0=BB=D1=8F?= =?UTF-8?q?=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87-=D0=B6=D0=B5=D0=BB=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERSION | 2 +- play-life-backend/main.go | 12 +++++++++--- play-life-web/package.json | 2 +- play-life-web/src/components/TaskForm.jsx | 2 ++ 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/VERSION b/VERSION index 59ac166..427f346 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -3.25.1 +3.25.2 diff --git a/play-life-backend/main.go b/play-life-backend/main.go index 8432884..0b44201 100644 --- a/play-life-backend/main.go +++ b/play-life-backend/main.go @@ -7195,6 +7195,9 @@ func (a *App) getTaskDetailHandler(w http.ResponseWriter, r *http.Request) { configIDInt := int(configID.Int64) task.ConfigID = &configIDInt } + if rewardPolicy.Valid { + task.RewardPolicy = &rewardPolicy.String + } // Получаем награды основной задачи rewards := make([]Reward, 0) @@ -7932,16 +7935,19 @@ func (a *App) updateTaskHandler(w http.ResponseWriter, r *http.Request) { // Подготовка reward_policy: если задача связана с желанием и политика не указана, используем "personal" по умолчанию var rewardPolicyValue interface{} if newWishlistID != nil { + // Если reward_policy явно указан в запросе, используем его if req.RewardPolicy != nil && (*req.RewardPolicy == "personal" || *req.RewardPolicy == "general") { rewardPolicyValue = *req.RewardPolicy - } else { - // Если задача уже была привязана, сохраняем текущую политику, иначе используем "personal" + } else if req.RewardPolicy == nil { + // Если reward_policy не указан в запросе (undefined), сохраняем текущее значение из БД + // Это важно для случаев, когда обновляются другие поля, но reward_policy не должен меняться var currentRewardPolicy sql.NullString err = a.DB.QueryRow("SELECT reward_policy FROM tasks WHERE id = $1", taskID).Scan(¤tRewardPolicy) if err == nil && currentRewardPolicy.Valid { rewardPolicyValue = currentRewardPolicy.String } else { - rewardPolicyValue = "personal" // Значение по умолчанию для задач, связанных с желаниями + // Если в БД нет значения, используем "personal" по умолчанию + rewardPolicyValue = "personal" } } } else { diff --git a/play-life-web/package.json b/play-life-web/package.json index ef9e2c8..a4786b1 100644 --- a/play-life-web/package.json +++ b/play-life-web/package.json @@ -1,6 +1,6 @@ { "name": "play-life-web", - "version": "3.25.1", + "version": "3.25.2", "type": "module", "scripts": { "dev": "vite", diff --git a/play-life-web/src/components/TaskForm.jsx b/play-life-web/src/components/TaskForm.jsx index 10c329b..93e8bfc 100644 --- a/play-life-web/src/components/TaskForm.jsx +++ b/play-life-web/src/components/TaskForm.jsx @@ -646,6 +646,8 @@ function TaskForm({ onNavigate, taskId, wishlistId, isTest: isTestFromProps = fa wishlist_id: taskId ? currentWishlistId // При редактировании сохраняем текущую привязку к желанию : (currentWishlistId || undefined), + // Отправляем reward_policy если задача связана с желанием + // Проверяем currentWishlistId или wishlistInfo, так как currentWishlistId устанавливается при загрузке задачи reward_policy: (wishlistInfo || currentWishlistId) ? rewardPolicy : undefined, rewards: rewards.map(r => ({ position: r.position,