From a009f40ac283457b6c7e85bd4f6d18e1e127b50a Mon Sep 17 00:00:00 2001 From: SethBurkart123 Date: Fri, 6 Jun 2025 12:21:46 +1000 Subject: [PATCH] feat: submitted column + bug fixes --- .../built-in/assessmentsOverview/styles.css | 8 ++++++++ src/plugins/built-in/assessmentsOverview/ui.ts | 16 ++++++++++++++-- .../built-in/assessmentsOverview/utils.ts | 17 +++++++++-------- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/src/plugins/built-in/assessmentsOverview/styles.css b/src/plugins/built-in/assessmentsOverview/styles.css index 985447b2..6e908b7a 100644 --- a/src/plugins/built-in/assessmentsOverview/styles.css +++ b/src/plugins/built-in/assessmentsOverview/styles.css @@ -335,6 +335,10 @@ background: linear-gradient(135deg, #ffffff 0%, #fef2f2 100%); } +.column-submitted .column-header { + background: linear-gradient(135deg, #ffffff 0%, #fef3c7 100%); +} + .column-marked .column-header { background: linear-gradient(135deg, #ffffff 0%, #f0fdf4 100%); } @@ -352,6 +356,10 @@ background: linear-gradient(135deg, var(--background-secondary) 0%, #991b1b 100%); } +.dark .column-submitted .column-header { + background: linear-gradient(135deg, var(--background-secondary) 0%, #92400e 100%); +} + .dark .column-marked .column-header { background: linear-gradient(135deg, var(--background-secondary) 0%, #065f46 100%); } diff --git a/src/plugins/built-in/assessmentsOverview/ui.ts b/src/plugins/built-in/assessmentsOverview/ui.ts index ab5cf3a5..cb9a3ab6 100644 --- a/src/plugins/built-in/assessmentsOverview/ui.ts +++ b/src/plugins/built-in/assessmentsOverview/ui.ts @@ -114,6 +114,7 @@ export function renderGrid(container: HTMLElement, data: any) { 'UPCOMING': [] as any[], 'DUE_SOON': [] as any[], 'OVERDUE': [] as any[], + 'SUBMITTED': [] as any[], 'MARKS_RELEASED': [] as any[] }; @@ -146,6 +147,12 @@ export function renderGrid(container: HTMLElement, data: any) { className: 'column-overdue', icon: '🚨' }, + { + key: 'SUBMITTED', + title: 'Submitted', + className: 'column-submitted', + icon: '📝' + }, { key: 'MARKS_RELEASED', title: 'Marked', @@ -155,14 +162,19 @@ export function renderGrid(container: HTMLElement, data: any) { ]; columns.forEach(column => { + const assessmentList = statusGroups[column.key as keyof typeof statusGroups]; + + // Skip SUBMITTED column if it's empty + if (column.key === 'SUBMITTED' && assessmentList.length === 0) { + return; + } + const columnParentEl = document.createElement('div'); columnParentEl.className = 'kanban-column-parent'; const columnEl = document.createElement('div'); columnEl.className = `kanban-column ${column.className}`; - const assessmentList = statusGroups[column.key as keyof typeof statusGroups]; - columnEl.innerHTML = /* html */`
diff --git a/src/plugins/built-in/assessmentsOverview/utils.ts b/src/plugins/built-in/assessmentsOverview/utils.ts index 1b11b1f8..bf8cb2ae 100644 --- a/src/plugins/built-in/assessmentsOverview/utils.ts +++ b/src/plugins/built-in/assessmentsOverview/utils.ts @@ -41,19 +41,20 @@ export function determineStatus(item: any): string { return 'MARKS_RELEASED'; } + // Check if submitted (awaiting marking) + if (item.submitted) { + return 'SUBMITTED'; + } + const now = new Date(); const due = new Date(item.due); - // Calculate the difference in days (more precise calculation) + // Calculate the difference in days (consistent with formatDate) const diffTime = due.getTime() - now.getTime(); - const diffDays = diffTime / (1000 * 60 * 60 * 24); + const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)); - // Check if overdue (more than 1 day past due) - if (diffDays < -1) { - // If it's submitted but still overdue, treat as DUE_SOON since it's awaiting marking - if (item.submitted) { - return 'DUE_SOON'; - } + // Check if overdue (past due date, but not including today) + if (diffDays < 0) { return 'OVERDUE'; }