Исправление сохранения reward_policy для задач-желаний
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m7s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m7s
This commit is contained in:
@@ -7195,6 +7195,9 @@ func (a *App) getTaskDetailHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
configIDInt := int(configID.Int64)
|
configIDInt := int(configID.Int64)
|
||||||
task.ConfigID = &configIDInt
|
task.ConfigID = &configIDInt
|
||||||
}
|
}
|
||||||
|
if rewardPolicy.Valid {
|
||||||
|
task.RewardPolicy = &rewardPolicy.String
|
||||||
|
}
|
||||||
|
|
||||||
// Получаем награды основной задачи
|
// Получаем награды основной задачи
|
||||||
rewards := make([]Reward, 0)
|
rewards := make([]Reward, 0)
|
||||||
@@ -7932,16 +7935,19 @@ func (a *App) updateTaskHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
// Подготовка reward_policy: если задача связана с желанием и политика не указана, используем "personal" по умолчанию
|
// Подготовка reward_policy: если задача связана с желанием и политика не указана, используем "personal" по умолчанию
|
||||||
var rewardPolicyValue interface{}
|
var rewardPolicyValue interface{}
|
||||||
if newWishlistID != nil {
|
if newWishlistID != nil {
|
||||||
|
// Если reward_policy явно указан в запросе, используем его
|
||||||
if req.RewardPolicy != nil && (*req.RewardPolicy == "personal" || *req.RewardPolicy == "general") {
|
if req.RewardPolicy != nil && (*req.RewardPolicy == "personal" || *req.RewardPolicy == "general") {
|
||||||
rewardPolicyValue = *req.RewardPolicy
|
rewardPolicyValue = *req.RewardPolicy
|
||||||
} else {
|
} else if req.RewardPolicy == nil {
|
||||||
// Если задача уже была привязана, сохраняем текущую политику, иначе используем "personal"
|
// Если reward_policy не указан в запросе (undefined), сохраняем текущее значение из БД
|
||||||
|
// Это важно для случаев, когда обновляются другие поля, но reward_policy не должен меняться
|
||||||
var currentRewardPolicy sql.NullString
|
var currentRewardPolicy sql.NullString
|
||||||
err = a.DB.QueryRow("SELECT reward_policy FROM tasks WHERE id = $1", taskID).Scan(¤tRewardPolicy)
|
err = a.DB.QueryRow("SELECT reward_policy FROM tasks WHERE id = $1", taskID).Scan(¤tRewardPolicy)
|
||||||
if err == nil && currentRewardPolicy.Valid {
|
if err == nil && currentRewardPolicy.Valid {
|
||||||
rewardPolicyValue = currentRewardPolicy.String
|
rewardPolicyValue = currentRewardPolicy.String
|
||||||
} else {
|
} else {
|
||||||
rewardPolicyValue = "personal" // Значение по умолчанию для задач, связанных с желаниями
|
// Если в БД нет значения, используем "personal" по умолчанию
|
||||||
|
rewardPolicyValue = "personal"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "play-life-web",
|
"name": "play-life-web",
|
||||||
"version": "3.25.1",
|
"version": "3.25.2",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -646,6 +646,8 @@ function TaskForm({ onNavigate, taskId, wishlistId, isTest: isTestFromProps = fa
|
|||||||
wishlist_id: taskId
|
wishlist_id: taskId
|
||||||
? currentWishlistId // При редактировании сохраняем текущую привязку к желанию
|
? currentWishlistId // При редактировании сохраняем текущую привязку к желанию
|
||||||
: (currentWishlistId || undefined),
|
: (currentWishlistId || undefined),
|
||||||
|
// Отправляем reward_policy если задача связана с желанием
|
||||||
|
// Проверяем currentWishlistId или wishlistInfo, так как currentWishlistId устанавливается при загрузке задачи
|
||||||
reward_policy: (wishlistInfo || currentWishlistId) ? rewardPolicy : undefined,
|
reward_policy: (wishlistInfo || currentWishlistId) ? rewardPolicy : undefined,
|
||||||
rewards: rewards.map(r => ({
|
rewards: rewards.map(r => ({
|
||||||
position: r.position,
|
position: r.position,
|
||||||
|
|||||||
Reference in New Issue
Block a user