Refocus Apple course dashboard and modules - #375
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 20dfb2401c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| let module: ResourceSummary | ||
| let sequence: Int | ||
|
|
||
| private var isClosed: Bool { module.closedAt != nil } |
There was a problem hiding this comment.
Mark modules ended by schedule as inactive
When a scheduled module passes its endAt but has not been manually closed, this keeps isClosed false, so the row remains green, labeled as published, and full opacity. The shared module contract says past endAt should gray out the module (packages/shared/src/types.ts:208-212), and the web helper implements closedAt || endAt < now (apps/web/src/lib/moduleSchedule.ts:4-5), so this Apple roadmap will misrepresent ended modules until someone explicitly sets closedAt.
Useful? React with 👍 / 👎.
| private func formattedDate(_ value: String?) -> String? { | ||
| guard let value else { return nil } | ||
| let date = (try? Date(value, strategy: Date.ISO8601FormatStyle(includingFractionalSeconds: true))) | ||
| ?? (try? Date(value, strategy: .iso8601)) | ||
| return date?.formatted(date: .abbreviated, time: .omitted) |
There was a problem hiding this comment.
Render module windows with the schedule formatter
For users outside UTC, date.formatted(...) uses the device time zone, but module windows are stored as UTC wall-clock times; for example 2026-06-01T00:00:00.000Z renders as May 31 on a US device. It also drops the time for same-day session windows, whereas the existing web formatter documents UTC rendering and includes class times (apps/web/src/lib/moduleSchedule.ts:8-32), so module schedules can be shifted or ambiguous in the new roadmap.
Useful? React with 👍 / 👎.
What changed
Why
The course dashboard repeated navigation language while under-emphasizing useful course totals. The generic modules list also did not communicate teaching order, publication readiness, or schedule.
Validation
git diff --checkpassesNo backend or database migration is required.