Skip to content

Commit cbefa7b

Browse files
Fix parent task completion logic
1 parent 694ee38 commit cbefa7b

3 files changed

Lines changed: 10 additions & 8 deletions

File tree

src/components/EductionPortal/StudentDashboard/TaskCard.jsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,9 @@ const TaskCard = ({
9595
</svg>
9696
</button>
9797

98-
{task.is_completed ||
99-
(intermediateTasks.length > 0 &&
98+
{/* Show completed only if task is completed AND (no subtasks OR all subtasks are completed) */}
99+
{task.is_completed &&
100+
(intermediateTasks.length === 0 ||
100101
intermediateTasks.every(t => t.status === 'completed')) ? (
101102
<button className={styles.completedButton} disabled>
102103
<svg

src/components/EductionPortal/StudentDashboard/TaskListItem.jsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,9 @@ const TaskListItem = ({
8585
</svg>
8686
</button>
8787

88-
{task.is_completed ||
89-
(intermediateTasks.length > 0 && intermediateTasks.every(t => t.status === 'completed')) ? (
88+
{/* Show completed only if task is completed AND (no subtasks OR all subtasks are completed) */}
89+
{task.is_completed &&
90+
(intermediateTasks.length === 0 || intermediateTasks.every(t => t.status === 'completed')) ? (
9091
<button className={styles.completedButton} disabled>
9192
<svg
9293
width="20"

src/components/EductionPortal/StudentDashboard/taskUtils.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,12 @@ export const getTaskStatusBadge = (task, styles, intermediateTasks = []) => {
5656
// Check if all sub-tasks are completed
5757
if (intermediateTasks && intermediateTasks.length > 0) {
5858
const allSubTasksCompleted = intermediateTasks.every(t => t.status === 'completed');
59-
if (allSubTasksCompleted) {
59+
// Only show as completed if task is marked completed AND all subtasks are done
60+
if (allSubTasksCompleted && (task.status === 'completed' || task.status === 'graded')) {
6061
return { text: 'Completed', className: styles.completedBadge };
6162
}
62-
}
63-
64-
if (task.status === 'completed' || task.status === 'graded') {
63+
} else if (task.status === 'completed' || task.status === 'graded') {
64+
// No subtasks, check task status only
6565
return { text: 'Completed', className: styles.completedBadge };
6666
}
6767

0 commit comments

Comments
 (0)