6.17.0: Счётчик подзадач с учётом драфта
Some checks failed
Build and Push Docker Image / build-and-push (push) Has been cancelled

This commit is contained in:
poignatov
2026-03-15 17:41:46 +03:00
parent 95985f97f2
commit d42535f36e
5 changed files with 17 additions and 5 deletions

View File

@@ -1 +1 @@
6.16.5
6.17.0

View File

@@ -353,6 +353,7 @@ type Task struct {
HasProgression bool `json:"has_progression"`
AutoComplete bool `json:"auto_complete"`
DraftProgressionValue *float64 `json:"draft_progression_value,omitempty"`
DraftSubtasksCount *int `json:"draft_subtasks_count,omitempty"`
}
type Reward struct {
@@ -8492,7 +8493,8 @@ func (a *App) fetchTasksForUser(userID int) ([]Task, error) {
ARRAY[]::text[]
) as subtask_project_names,
COALESCE(td.auto_complete, FALSE) as auto_complete,
td.progression_value as draft_progression_value
td.progression_value as draft_progression_value,
CASE WHEN td.id IS NOT NULL THEN (SELECT COUNT(*) FROM task_draft_subtasks tds WHERE tds.task_draft_id = td.id) ELSE NULL END as draft_subtasks_count
FROM tasks t
LEFT JOIN task_drafts td ON td.task_id = t.id AND td.user_id = $1
WHERE t.user_id = $1 AND t.parent_task_id IS NULL AND t.deleted = FALSE
@@ -8533,6 +8535,7 @@ func (a *App) fetchTasksForUser(userID int) ([]Task, error) {
var subtaskProjectNames pq.StringArray
var autoComplete bool
var draftProgressionValue sql.NullFloat64
var draftSubtasksCount sql.NullInt64
err := rows.Scan(
&task.ID,
@@ -8553,6 +8556,7 @@ func (a *App) fetchTasksForUser(userID int) ([]Task, error) {
&subtaskProjectNames,
&autoComplete,
&draftProgressionValue,
&draftSubtasksCount,
)
if err != nil {
log.Printf("Error scanning task: %v", err)
@@ -8600,6 +8604,10 @@ func (a *App) fetchTasksForUser(userID int) ([]Task, error) {
if draftProgressionValue.Valid {
task.DraftProgressionValue = &draftProgressionValue.Float64
}
if draftSubtasksCount.Valid {
count := int(draftSubtasksCount.Int64)
task.DraftSubtasksCount = &count
}
// Объединяем проекты из основной задачи и подзадач
allProjects := make(map[string]bool)

View File

@@ -1,6 +1,6 @@
{
"name": "play-life-web",
"version": "6.16.5",
"version": "6.17.0",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -391,7 +391,7 @@ function TaskForm({ onNavigate, taskId, wishlistId, returnTo, returnWishlistId }
if (data.task.reward_policy) {
setRewardPolicy(data.task.reward_policy)
} else {
setRewardPolicy('personal') // Значение по умолчанию
setRewardPolicy('general') // Значение по умолчанию
}
} else {
setCurrentWishlistId(null)

View File

@@ -924,7 +924,11 @@ function TaskList({ onNavigate, data, loading, backgroundLoading, error, onRetry
<div className="task-name">
{task.name}
{hasSubtasks && (
<span className="task-subtasks-count">(+{task.subtasks_count})</span>
<span className="task-subtasks-count">
{task.draft_subtasks_count != null
? `(${task.draft_subtasks_count}/${task.subtasks_count})`
: `(${task.subtasks_count})`}
</span>
)}
<span className="task-badge-bar">
{!isOneTime && !isInfinite && !isWishlist && (