Setup banner, assessment timestamps, and installation docs
Instructor home shows a setup banner while a course has no class schedule, since that is the one gap that degrades the student experience (free-date opt-outs, no withdrawal locking); it points at the prefilled schedule form and settings and disappears once any class day exists. Calls gain assessment_entered_at, stamped when an outcome is recorded or actually changed (bulk saves that change nothing don't restamp), null for pending calls and legacy imports, and included in the calls export — distinguishing assessed-in-class from assessed-later. The README setup section now gives both install routes: pure pip/venv, and Debian system packages with the apt line. Fixing this uncovered that numpy was missing from the project dependencies (the grading engine needs it; the system-site-packages venv had masked the omission). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -231,6 +231,12 @@ class Call(Base):
|
||||
created_at: Mapped[datetime.datetime] = mapped_column(
|
||||
DateTime, default=utcnow
|
||||
)
|
||||
# When the outcome (status/assessment) was last recorded or
|
||||
# changed. Distinguishes assessed-in-class from assessed-later;
|
||||
# null for pending calls and for imported legacy data.
|
||||
assessment_entered_at: Mapped[datetime.datetime | None] = mapped_column(
|
||||
DateTime
|
||||
)
|
||||
|
||||
student: Mapped[Student] = relationship()
|
||||
level: Mapped["AssessmentLevel | None"] = relationship()
|
||||
|
||||
Reference in New Issue
Block a user