5.10.2: Исправлен сброс прогрессии в null
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m22s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m22s
This commit is contained in:
@@ -435,6 +435,7 @@ type PostponeTaskRequest struct {
|
|||||||
|
|
||||||
type SaveDraftRequest struct {
|
type SaveDraftRequest struct {
|
||||||
ProgressionValue *float64 `json:"progression_value,omitempty"`
|
ProgressionValue *float64 `json:"progression_value,omitempty"`
|
||||||
|
ClearProgressionValue *bool `json:"clear_progression_value,omitempty"` // true = сбросить прогрессию в null
|
||||||
ChildrenTaskIDs *[]int `json:"children_task_ids,omitempty"` // только checked подзадачи, nil = не менять
|
ChildrenTaskIDs *[]int `json:"children_task_ids,omitempty"` // только checked подзадачи, nil = не менять
|
||||||
AutoComplete *bool `json:"auto_complete,omitempty"` // nil = не менять
|
AutoComplete *bool `json:"auto_complete,omitempty"` // nil = не менять
|
||||||
}
|
}
|
||||||
@@ -9406,6 +9407,7 @@ func (a *App) saveTaskDraftHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
err = tx.QueryRow("SELECT id FROM task_drafts WHERE task_id = $1", taskID).Scan(&draftID)
|
err = tx.QueryRow("SELECT id FROM task_drafts WHERE task_id = $1", taskID).Scan(&draftID)
|
||||||
|
|
||||||
var progressionValue sql.NullFloat64
|
var progressionValue sql.NullFloat64
|
||||||
|
clearProgression := req.ClearProgressionValue != nil && *req.ClearProgressionValue
|
||||||
if req.ProgressionValue != nil {
|
if req.ProgressionValue != nil {
|
||||||
progressionValue = sql.NullFloat64{Float64: *req.ProgressionValue, Valid: true}
|
progressionValue = sql.NullFloat64{Float64: *req.ProgressionValue, Valid: true}
|
||||||
}
|
}
|
||||||
@@ -9434,8 +9436,23 @@ func (a *App) saveTaskDraftHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
} else {
|
} else {
|
||||||
// Обновляем существующий драфт
|
// Обновляем существующий драфт
|
||||||
// Обновляем только те поля, которые переданы
|
// Обновляем только те поля, которые переданы
|
||||||
if req.ProgressionValue != nil || req.AutoComplete != nil {
|
if req.ProgressionValue != nil || req.AutoComplete != nil || clearProgression {
|
||||||
|
if clearProgression {
|
||||||
|
// Сбрасываем прогрессию в null
|
||||||
if req.AutoComplete != nil {
|
if req.AutoComplete != nil {
|
||||||
|
_, err = tx.Exec(`
|
||||||
|
UPDATE task_drafts
|
||||||
|
SET progression_value = NULL, auto_complete = $1, updated_at = NOW()
|
||||||
|
WHERE id = $2
|
||||||
|
`, *req.AutoComplete, draftID)
|
||||||
|
} else {
|
||||||
|
_, err = tx.Exec(`
|
||||||
|
UPDATE task_drafts
|
||||||
|
SET progression_value = NULL, updated_at = NOW()
|
||||||
|
WHERE id = $1
|
||||||
|
`, draftID)
|
||||||
|
}
|
||||||
|
} else if req.AutoComplete != nil {
|
||||||
// Обновляем оба поля
|
// Обновляем оба поля
|
||||||
_, err = tx.Exec(`
|
_, err = tx.Exec(`
|
||||||
UPDATE task_drafts
|
UPDATE task_drafts
|
||||||
@@ -10055,6 +10072,7 @@ func (a *App) completeTaskAtEndOfDayHandler(w http.ResponseWriter, r *http.Reque
|
|||||||
err = tx.QueryRow("SELECT id FROM task_drafts WHERE task_id = $1", taskID).Scan(&draftID)
|
err = tx.QueryRow("SELECT id FROM task_drafts WHERE task_id = $1", taskID).Scan(&draftID)
|
||||||
|
|
||||||
var progressionValue sql.NullFloat64
|
var progressionValue sql.NullFloat64
|
||||||
|
clearProgression := req.ClearProgressionValue != nil && *req.ClearProgressionValue
|
||||||
if req.ProgressionValue != nil {
|
if req.ProgressionValue != nil {
|
||||||
progressionValue = sql.NullFloat64{Float64: *req.ProgressionValue, Valid: true}
|
progressionValue = sql.NullFloat64{Float64: *req.ProgressionValue, Valid: true}
|
||||||
}
|
}
|
||||||
@@ -10078,11 +10096,19 @@ func (a *App) completeTaskAtEndOfDayHandler(w http.ResponseWriter, r *http.Reque
|
|||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
// Обновляем существующий драфт с auto_complete = true
|
// Обновляем существующий драфт с auto_complete = true
|
||||||
|
if clearProgression {
|
||||||
|
_, err = tx.Exec(`
|
||||||
|
UPDATE task_drafts
|
||||||
|
SET progression_value = NULL, auto_complete = $1, updated_at = NOW()
|
||||||
|
WHERE id = $2
|
||||||
|
`, *req.AutoComplete, draftID)
|
||||||
|
} else {
|
||||||
_, err = tx.Exec(`
|
_, err = tx.Exec(`
|
||||||
UPDATE task_drafts
|
UPDATE task_drafts
|
||||||
SET progression_value = $1, auto_complete = $2, updated_at = NOW()
|
SET progression_value = $1, auto_complete = $2, updated_at = NOW()
|
||||||
WHERE id = $3
|
WHERE id = $3
|
||||||
`, progressionValue, *req.AutoComplete, draftID)
|
`, progressionValue, *req.AutoComplete, draftID)
|
||||||
|
}
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Error updating draft: %v", err)
|
log.Printf("Error updating draft: %v", err)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "play-life-web",
|
"name": "play-life-web",
|
||||||
"version": "5.10.1",
|
"version": "5.10.2",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
|
|||||||
@@ -477,7 +477,7 @@ function TaskDetail({ taskId, onClose, onRefresh, onTaskCompleted, onNavigate })
|
|||||||
children_task_ids: Array.from(selectedSubtasks)
|
children_task_ids: Array.from(selectedSubtasks)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Если есть прогрессия, отправляем значение (или null, если не введено)
|
// Если есть прогрессия, отправляем значение (или сбрасываем, если не введено)
|
||||||
if (taskDetail.task.progression_base != null) {
|
if (taskDetail.task.progression_base != null) {
|
||||||
if (progressionValue.trim()) {
|
if (progressionValue.trim()) {
|
||||||
const parsedValue = parseFloat(progressionValue)
|
const parsedValue = parseFloat(progressionValue)
|
||||||
@@ -486,8 +486,8 @@ function TaskDetail({ taskId, onClose, onRefresh, onTaskCompleted, onNavigate })
|
|||||||
}
|
}
|
||||||
payload.progression_value = parsedValue
|
payload.progression_value = parsedValue
|
||||||
} else {
|
} else {
|
||||||
// Если прогрессия не введена - отправляем null
|
// Если прогрессия не введена - сбрасываем в null
|
||||||
payload.progression_value = null
|
payload.clear_progression_value = true
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// Если нет progression_base, но пользователь ввел значение - отправляем его
|
// Если нет progression_base, но пользователь ввел значение - отправляем его
|
||||||
|
|||||||
Reference in New Issue
Block a user