From d325984786eaff0a25e456f5bf6371c9925b1b6c Mon Sep 17 00:00:00 2001 From: Mustafa Cetin Date: Wed, 29 Jul 2026 10:39:24 +0000 Subject: [PATCH] Round 13b: Report Scheduling, Multi-School District Support --- src/app/api/districts/[id]/route.ts | 1 - src/app/api/districts/[id]/schools/route.ts | 2 +- src/app/api/districts/route.ts | 1 - worklog.md | 26 +++++++++++++++++++++ 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/app/api/districts/[id]/route.ts b/src/app/api/districts/[id]/route.ts index 483b8de..2eb8cda 100644 --- a/src/app/api/districts/[id]/route.ts +++ b/src/app/api/districts/[id]/route.ts @@ -12,7 +12,6 @@ export async function GET( where: { id, deletedAt: null }, include: { schools: { - where: { deletedAt: null }, select: { id: true, name: true, diff --git a/src/app/api/districts/[id]/schools/route.ts b/src/app/api/districts/[id]/schools/route.ts index 89e3471..66752a9 100644 --- a/src/app/api/districts/[id]/schools/route.ts +++ b/src/app/api/districts/[id]/schools/route.ts @@ -17,7 +17,7 @@ export async function GET( } const schools = await db.school.findMany({ - where: { districtId: id, deletedAt: null }, + where: { districtId: id }, include: { _count: { select: { students: true, classGroups: true, users: true }, diff --git a/src/app/api/districts/route.ts b/src/app/api/districts/route.ts index befda14..e6ad9a3 100644 --- a/src/app/api/districts/route.ts +++ b/src/app/api/districts/route.ts @@ -8,7 +8,6 @@ export async function GET() { where: { deletedAt: null }, include: { schools: { - where: { deletedAt: null }, select: { id: true, name: true, schoolType: true, country: true }, }, }, diff --git a/worklog.md b/worklog.md index 2f9f925..6962616 100644 --- a/worklog.md +++ b/worklog.md @@ -1,5 +1,31 @@ # CompetenceTrack — Project Worklog +--- +Task ID: 14 +Agent: reports-scheduling-multi-school +Task: Report Scheduling + Multi-School District Support + +Work Log: +- Verified existing ReportSchedule Prisma model (already present in schema with all required fields: schoolId, classGroupId, template, frequency, dayOfWeek, dayOfMonth, monthOfYear, recipients, includeStudents, includeGrades, includeAttendance, includeBehavior, includeCompetencies, isActive, lastRunAt, nextRunAt, isDemo, deletedAt) +- Verified SchoolDistrict Prisma model (already present with name, code, region, country, adminEmail, isActive, deletedAt) +- Verified School model has districtId and district relation to SchoolDistrict +- Verified ClassGroup model has reportSchedules relation to ReportSchedule +- Verified API routes for report-schedules: GET/POST /api/report-schedules, GET/PUT/DELETE /api/report-schedules/[id], POST /api/report-schedules/[id]/run +- Verified API routes for districts: GET/POST /api/districts, GET/PUT/DELETE /api/districts/[id], GET/POST /api/districts/[id]/schools +- Fixed districts API routes: removed `deletedAt: null` filter on School model (School model has no deletedAt field) in districts/route.ts, districts/[id]/route.ts, and districts/[id]/schools/route.ts +- Verified reports-view.tsx has complete Schedules tab with: create/edit dialog, frequency/class/template selection, include options checkboxes, schedule list with status/next run/toggle, manual trigger button, delete confirmation, visual timeline with progress bars +- Verified settings-view.tsx has complete District tab (SUPER_ADMIN only) with: district CRUD, school assignment, cross-school comparison, district create/edit dialog, delete confirmation +- Verified API client functions in src/lib/api.ts: fetchReportSchedules, createReportSchedule, updateReportSchedule, deleteReportSchedule, runReportSchedule, fetchDistricts, createDistrict, updateDistrict, deleteDistrict, fetchDistrictSchools, assignSchoolToDistrict +- Verified i18n keys for both schedules and district in DE and EN (35+ keys each) +- Ran bun run lint: no errors +- Ran bun run db:push: schema already in sync + +Stage Summary: +- All Report Scheduling features already implemented from previous agent: Prisma model, API routes, UI with Schedules tab, i18n keys +- All Multi-School District Support features already implemented from previous agent: Prisma model, API routes, UI with District tab, i18n keys +- Bug fix: removed invalid `deletedAt: null` filter on School model in 3 district API route files +- Current status: Round 13 complete + --- Task ID: 12 Agent: behavior-audit