6.27.3: Фикс сброса автовыполнения и прогресс
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m28s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m28s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -733,10 +733,9 @@ function TaskDetail({ taskId, onClose, onRefresh, onTaskCompleted, onNavigate })
|
||||
// Обновляем значение чекбокса при изменении taskDetail
|
||||
useEffect(() => {
|
||||
if (taskDetail && taskDetail.task) {
|
||||
// Если есть драфт (auto_complete или draft_progression_value), используем значение из драфта
|
||||
// Если есть драфт, используем значение из драфта
|
||||
// Иначе используем default_auto_complete как начальное значение
|
||||
const hasDraft = taskDetail.task.auto_complete || taskDetail.draft_progression_value != null
|
||||
const autoCompleteValue = hasDraft
|
||||
const autoCompleteValue = taskDetail.has_draft
|
||||
? Boolean(taskDetail.task.auto_complete)
|
||||
: Boolean(taskDetail.task.default_auto_complete)
|
||||
setCompleteAtEndOfDay(autoCompleteValue)
|
||||
|
||||
@@ -747,8 +747,8 @@ function TaskList({ onNavigate, data, loading, backgroundLoading, error, onRetry
|
||||
// Сортируем невыполненные задачи: автовыполнение первыми, затем по алфавиту (name ASC), затем по id ASC
|
||||
group.notCompleted.sort((a, b) => {
|
||||
// Задачи с автовыполнением (включая default_auto_complete) идут первыми
|
||||
const aAuto = a.auto_complete || a.default_auto_complete
|
||||
const bAuto = b.auto_complete || b.default_auto_complete
|
||||
const aAuto = a.has_draft ? a.auto_complete : a.auto_complete || a.default_auto_complete
|
||||
const bAuto = b.has_draft ? b.auto_complete : b.auto_complete || b.default_auto_complete
|
||||
if (aAuto && !bAuto) return -1
|
||||
if (!aAuto && bAuto) return 1
|
||||
|
||||
@@ -762,8 +762,8 @@ function TaskList({ onNavigate, data, loading, backgroundLoading, error, onRetry
|
||||
// Сортируем выполненные задачи: автовыполнение первыми, затем бесконечные, затем по next_show_at ASC (ранние в начале), NULL в начале
|
||||
group.completed.sort((a, b) => {
|
||||
// Задачи с автовыполнением (включая default_auto_complete) идут первыми
|
||||
const aAuto = a.auto_complete || a.default_auto_complete
|
||||
const bAuto = b.auto_complete || b.default_auto_complete
|
||||
const aAuto = a.has_draft ? a.auto_complete : a.auto_complete || a.default_auto_complete
|
||||
const bAuto = b.has_draft ? b.auto_complete : b.auto_complete || b.default_auto_complete
|
||||
if (aAuto && !bAuto) return -1
|
||||
if (!aAuto && bAuto) return 1
|
||||
|
||||
@@ -851,7 +851,7 @@ function TaskList({ onNavigate, data, loading, backgroundLoading, error, onRetry
|
||||
>
|
||||
<div className="task-item-content">
|
||||
<div
|
||||
className={`task-checkmark ${showDetailOnCheckmark ? 'task-checkmark-detail' : ''} ${(task.auto_complete || task.default_auto_complete) ? 'task-checkmark-auto-complete' : ''}`}
|
||||
className={`task-checkmark ${showDetailOnCheckmark ? 'task-checkmark-detail' : ''} ${(task.has_draft ? task.auto_complete : task.auto_complete || task.default_auto_complete) ? 'task-checkmark-auto-complete' : ''}`}
|
||||
onClick={(e) => handleCheckmarkClick(task, e)}
|
||||
title={isTest ? 'Запустить тест' : (isPurchase ? 'Открыть закупки' : (showDetailOnCheckmark ? 'Открыть детали' : 'Выполнить задачу'))}
|
||||
>
|
||||
@@ -919,7 +919,7 @@ function TaskList({ onNavigate, data, loading, backgroundLoading, error, onRetry
|
||||
<path d="M6 10 L9 13 L14 7" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" className="checkmark-check" />
|
||||
</svg>
|
||||
)}
|
||||
{(task.auto_complete || task.default_auto_complete) && !isTest && !isWishlist && (
|
||||
{(task.has_draft ? task.auto_complete : task.auto_complete || task.default_auto_complete) && !isTest && !isWishlist && (
|
||||
<svg
|
||||
className="task-checkmark-auto-complete-icon"
|
||||
width="16"
|
||||
@@ -1005,8 +1005,8 @@ function TaskList({ onNavigate, data, loading, backgroundLoading, error, onRetry
|
||||
<polyline points="23 6 13.5 15.5 8.5 10.5 1 18"></polyline>
|
||||
<polyline points="17 6 23 6 23 12"></polyline>
|
||||
</svg>
|
||||
{task.draft_progression_value != null && (
|
||||
<span className="task-progression-value">{task.draft_progression_value}</span>
|
||||
{(task.draft_progression_value != null || (task.has_draft ? task.auto_complete : task.auto_complete || task.default_auto_complete)) && (
|
||||
<span className="task-progression-value">{task.draft_progression_value ?? task.default_progress ?? task.progression_base}</span>
|
||||
)}
|
||||
</span>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user