Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
c26de2c
feat: add assessment reminder card to settings page
rappm Feb 14, 2026
5c201ff
feat: add manual mail sending functionality and related tests
rappm Feb 14, 2026
514cdad
Merge remote-tracking branch 'origin/main' into 618-send-automatic-re…
rappm Mar 17, 2026
8ecceef
Refactor: Update import paths and enhance test suite error handling
rappm Mar 17, 2026
eb70228
Merge branch 'main' into 618-send-automatic-reminders-to-assessors-on…
rappm Mar 17, 2026
c57b4ff
Enhance assessment reminder functionality and error handling
rappm Mar 17, 2026
a9dffc2
Merge branch '618-send-automatic-reminders-to-assessors-once-assessme…
rappm Mar 17, 2026
c78d624
Refactor: Simplify core course phase update and participant mailing i…
rappm Mar 17, 2026
ccfc4a1
Merge branch 'main' into 618-send-automatic-reminders-to-assessors-on…
rappm Mar 17, 2026
101fddb
Merge remote-tracking branch 'origin/main' into 618-send-automatic-re…
rappm Mar 20, 2026
09b59e3
Fix: Preserve existing restricted data when updating mailing settings…
rappm Mar 20, 2026
6405aeb
feat: Implement manual reminder sending and confirmation dialog in As…
rappm Mar 21, 2026
f7258f9
Merge branch 'main' into 618-send-automatic-reminders-to-assessors-on…
rappm Mar 23, 2026
ea52167
Fix assessment reminder review comments
rappm Mar 23, 2026
6239c9d
Merge remote-tracking branch 'origin/main' into 618-send-automatic-re…
rappm Mar 25, 2026
6bd9136
Enhance Assessment Reminder Components and Logic
rappm Mar 25, 2026
6846f62
Add reminder type validation and alert in AssessmentReminderCard
rappm Mar 25, 2026
d124b76
Merge branch 'main' into 618-send-automatic-reminders-to-assessors-on…
rappm Mar 25, 2026
d7c0696
Merge remote-tracking branch 'origin/main' into 618-send-automatic-re…
rappm Mar 26, 2026
4154a9f
Merge branch 'main' into 618-send-automatic-reminders-to-assessors-on…
rappm Mar 31, 2026
3d5d58d
Merge branch 'main' into 618-send-automatic-reminders-to-assessors-on…
rappm Apr 7, 2026
d80a076
Merge branch 'main' into 618-send-automatic-reminders-to-assessors-on…
rappm Apr 12, 2026
d2ac721
Merge branch 'main' into 618-send-automatic-reminders-to-assessors-on…
rappm Apr 13, 2026
04cfa81
Merge branch 'main' into 618-send-automatic-reminders-to-assessors-on…
rappm Apr 15, 2026
2946f19
feat: implement AssessmentReminderCard and update reminder sending se…
rappm Apr 16, 2026
59aa88f
Merge branch 'main' into 618-send-automatic-reminders-to-assessors-on…
rappm Apr 22, 2026
87075fc
Merge remote-tracking branch 'origin/main' into 618-send-automatic-re…
rappm Apr 28, 2026
1792992
Refactor assessment reminder components and improve error handling fo…
rappm Apr 28, 2026
e1ad877
Merge branch 'main' into 618-send-automatic-reminders-to-assessors-on…
rappm May 14, 2026
3c5f6a0
Merge branch 'main' into 618-send-automatic-reminders-to-assessors-on…
JGStyle May 15, 2026
089e026
Merge branch 'main' into 618-send-automatic-reminders-to-assessors-on…
rappm May 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,4 @@ seaweedfs_filer_data/

**/*/.DS_Store
**/.gocache/
**/.cache/
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
export type EvaluationReminderType = 'self' | 'peer' | 'tutor'

export interface AssessmentReminderMetaData {
subject: string
content: string
lastSentAtByType: Partial<Record<EvaluationReminderType, string>>
}

export interface SendEvaluationReminderRequest {
evaluationType: EvaluationReminderType
}

export interface EvaluationReminderReport {
successfulEmails: string[]
failedEmails: string[]
requestedRecipients: number
evaluationType: EvaluationReminderType
deadline?: string
deadlinePassed: boolean
sentAt: string
previousSentAt?: string | null
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { axiosInstance } from '@/network/configService'
import {
SendEvaluationReminderRequest,
EvaluationReminderReport,
} from '../../interfaces/evaluationReminder'

export const sendEvaluationReminder = async (
coursePhaseID: string,
request: SendEvaluationReminderRequest,
): Promise<EvaluationReminderReport> => {
try {
return (
await axiosInstance.post(
`/assessment/api/course_phase/${coursePhaseID}/config/reminders/send`,
request,
{
headers: {
'Content-Type': 'application/json',
},
},
)
).data
} catch (err) {
console.error('Failed to send evaluation reminder:', err)
throw err
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import { ScoreLevelDistributionDiagram } from '../components/diagrams/ScoreLevel

import { CoursePhaseConfigSelection } from './components/CoursePhaseConfigSelection/CoursePhaseConfigSelection'
import { CategoryList } from './components/CategoryList/CategoryList'
import { AssessmentReminderCard } from './components/AssessmentReminderCard'

export const SettingsPage = () => {
const [showReleaseDialog, setShowReleaseDialog] = useState(false)
Expand Down Expand Up @@ -100,6 +101,8 @@ export const SettingsPage = () => {
hasTutorEvalData={tutorEvalSchemaData?.hasAssessmentData ?? false}
/>

<AssessmentReminderCard />
Comment thread
rappm marked this conversation as resolved.
Outdated

{(isPromptAdmin || isLecturer) && !config?.resultsReleased && (
<div className='w-full'>
<Button
Expand Down
Loading