chore: apply requested changes
This commit is contained in:
@@ -511,6 +511,14 @@ export class ApiStorage implements IStorage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const oldStatus = existingTask.status;
|
const oldStatus = existingTask.status;
|
||||||
|
if (oldStatus === newStatus) {
|
||||||
|
return {
|
||||||
|
success: true,
|
||||||
|
oldStatus,
|
||||||
|
newStatus,
|
||||||
|
taskId
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// Update the task/subtask status
|
// Update the task/subtask status
|
||||||
await this.retryOperation(() =>
|
await this.retryOperation(() =>
|
||||||
@@ -520,9 +528,8 @@ export class ApiStorage implements IStorage {
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
// For subtasks, we might want to auto-adjust parent status
|
// Note: Parent status auto-adjustment is handled by the backend API service
|
||||||
// but in API storage, we'd need to query for the parent and its other subtasks
|
// which has its own business logic for managing task relationships
|
||||||
// This is left as future enhancement since API storage handles relationships differently
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
success: true,
|
success: true,
|
||||||
|
|||||||
@@ -391,12 +391,12 @@ export class FileStorage implements IStorage {
|
|||||||
const subs = parentTask.subtasks;
|
const subs = parentTask.subtasks;
|
||||||
let parentNewStatus = parentTask.status;
|
let parentNewStatus = parentTask.status;
|
||||||
if (subs.length > 0) {
|
if (subs.length > 0) {
|
||||||
const allDone = subs.every((s) => (s.status || 'pending') === 'done');
|
const norm = (s: any) => (s.status || 'pending');
|
||||||
const anyInProgress = subs.some(
|
const allDone = subs.every((s) => norm(s) === 'done');
|
||||||
(s) => (s.status || 'pending') === 'in-progress'
|
const anyInProgress = subs.some((s) => norm(s) === 'in-progress');
|
||||||
);
|
const anyDone = subs.some((s) => norm(s) === 'done');
|
||||||
if (allDone) parentNewStatus = 'done';
|
if (allDone) parentNewStatus = 'done';
|
||||||
else if (anyInProgress) parentNewStatus = 'in-progress';
|
else if (anyInProgress || anyDone) parentNewStatus = 'in-progress';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Always bump updatedAt; update status only if changed
|
// Always bump updatedAt; update status only if changed
|
||||||
|
|||||||
Reference in New Issue
Block a user