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,