Show lesson marks and attendance on the person card.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+36
-2
@@ -373,6 +373,14 @@ order as in the world and in `people.json`. Each row has `kind`, `kindLabel` (mo
|
||||
and which kinds write live on `BehaviorDef` (`offenseMemoryMax`, `offenseMemoryKinds`), not in
|
||||
the client. HTTP JSON is additive — no protocol version bump.
|
||||
|
||||
`lessonMarks` and `attendance` are the sparse gradebook on the person (stages A/B). Same order as
|
||||
in the world and in `people.json`. Mark rows carry `subject`, `subjectLabel`, `value` (2–5),
|
||||
`time`, `period`. Attendance rows carry `subject`, `subjectLabel`, `status`
|
||||
(`present` / `late` / `absent`), `statusLabel` (mod locale), `time`, `period`, and optional
|
||||
`absenceReason` (vanilla `truancy`; illness comes later). Empty is `[]`. Ceilings live on
|
||||
`BehaviorDef` (`lessonMarkMax`, `attendanceMax`). There is **no** POST/PUT to set marks or
|
||||
attendance — guests and owners only read. The people list does not include these fields.
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "f0.c0",
|
||||
@@ -439,6 +447,26 @@ the client. HTTP JSON is additive — no protocol version bump.
|
||||
"otherFullName": "Иванов Кирилл Петрович"
|
||||
}
|
||||
],
|
||||
"lessonMarks": [
|
||||
{
|
||||
"subject": "Mathematics",
|
||||
"subjectLabel": "Математика",
|
||||
"value": 5,
|
||||
"time": "2012-04-03T10:05:00Z",
|
||||
"period": 1
|
||||
}
|
||||
],
|
||||
"attendance": [
|
||||
{
|
||||
"subject": "Mathematics",
|
||||
"subjectLabel": "Математика",
|
||||
"status": "present",
|
||||
"statusLabel": "был",
|
||||
"time": "2012-04-03T10:02:00Z",
|
||||
"period": 1,
|
||||
"absenceReason": null
|
||||
}
|
||||
],
|
||||
"connections": {
|
||||
"family": {
|
||||
"parents": [
|
||||
@@ -720,14 +748,20 @@ one.
|
||||
"year": 5,
|
||||
"letter": "А",
|
||||
"classTeacherId": "f3.p1",
|
||||
"classTeacherName": "Иванова Ольга Михайловна"
|
||||
"classTeacherName": "Иванова Ольга Михайловна",
|
||||
"averageMark": 3.8,
|
||||
"absentLessons": 4,
|
||||
"frequentAbsentees": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
`classes` lists every homeroom with an optional class-teacher slot. `classTeacherId` /
|
||||
`classTeacherName` are null when the slot is empty. Assign and clear (below) return this same
|
||||
`classTeacherName` are null when the slot is empty. `averageMark` is the mean of recent lesson
|
||||
marks across pupils in that class (`null` when none). `absentLessons` counts absent rows in
|
||||
recent attendance memory; `frequentAbsentees` is how many pupils have at least three such
|
||||
absences — a short Management summary, not a year sheet. Assign and clear (below) return this same
|
||||
payload so the Management panel can refresh the slots without a second GET.
|
||||
|
||||
Applicants here are the same people as in `saves/{id}.people.json`. A parent keeps the same
|
||||
|
||||
Reference in New Issue
Block a user