Round 10: WYSIWYG Editor, Notification System, Calendar Events, Student UI, Drag-Reorder, Styling
This commit is contained in:
1 parent
62f4a150e0
commit
b90ad85b91
18 files changed
+3105
-626
No files matched your search
@@ -294,6 +294,54 @@ export async function GET(request: Request) {
|
||||
console.info('Calendar: LessonPlan not available yet, skipping lessons.');
|
||||
}
|
||||
|
||||
/* ── Custom Calendar Events ───────────────────────────────────── */
|
||||
try {
|
||||
const customEvents = await db.calendarEvent.findMany({
|
||||
where: {
|
||||
schoolId,
|
||||
date: dateRange,
|
||||
},
|
||||
select: {
|
||||
id: true,
|
||||
title: true,
|
||||
date: true,
|
||||
startTime: true,
|
||||
endTime: true,
|
||||
eventType: true,
|
||||
allDay: true,
|
||||
notes: true,
|
||||
subject: { select: { id: true, name: true } },
|
||||
classGroup: { select: { id: true, name: true } },
|
||||
},
|
||||
orderBy: { date: 'asc' },
|
||||
});
|
||||
|
||||
for (const ce of customEvents) {
|
||||
// Map custom event types to CalendarEventType
|
||||
const mappedType: EventType = ['assessment', 'lesson'].includes(ce.eventType)
|
||||
? (ce.eventType as EventType)
|
||||
: 'lesson';
|
||||
events.push({
|
||||
date: toDayKey(ce.date),
|
||||
type: mappedType,
|
||||
id: ce.id,
|
||||
title: ce.title,
|
||||
meta: {
|
||||
customEvent: true,
|
||||
eventType: ce.eventType,
|
||||
startTime: ce.startTime ?? null,
|
||||
endTime: ce.endTime ?? null,
|
||||
allDay: ce.allDay,
|
||||
notes: ce.notes ?? null,
|
||||
subject: ce.subject?.name ?? null,
|
||||
classGroup: ce.classGroup?.name ?? null,
|
||||
},
|
||||
});
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('Calendar: custom events query failed:', err);
|
||||
}
|
||||
|
||||
// Stable ordering: by date asc, then by type for deterministic display
|
||||
const typeOrder: Record<EventType, number> = {
|
||||
lesson: 0,
|
||||
|
||||
Reference in new issue
Block a user