aboutsummaryrefslogtreecommitdiff
path: root/doc/graduation.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/graduation.md')
-rw-r--r--doc/graduation.md42
1 files changed, 8 insertions, 34 deletions
diff --git a/doc/graduation.md b/doc/graduation.md
index 2466c44..9edc289 100644
--- a/doc/graduation.md
+++ b/doc/graduation.md
@@ -1,37 +1,10 @@
# Graduation
-## Tables
+## Table
-There exist three different tables to hold all graduation information of a student.
-One global submission table called `Submit` writable by all students and two individual ones per student.
-The separation is needed for the different required permissions to access the stored data.
-All individual tables use the following naming scheme `${StudentId}${Purpose}`.
-
-The section containing the student's tables is only available to teachers and the student.
-
-### Submit Table
-
-The submit table is writable by all students and is used to track observation requests from students.
-It is configured to require approval to publish entries.
-This ensures that entries are only readable by the submitter and the teachers.
-Entries are simply never approved.
-
-### Public Table
-
-The public table tracks all graduation changes known by the student.
-The included information are sufficient to render a student's profile.
-
-Changes can be submitted by any teacher.
-Each change is valid until a subsequent change renders it obsolete.
-
-Changes include points and level changes.
-
-### Shadow Table
-
-The shadow table tracks **all** graduation changes for a student.
-
-Changes can be submitted by any teacher.
-Each change is valid until a subsequent change renders it obsolete.
+There exist a single table called `Graduation` to hold all graduation information.
+A single table is used to reduce the amount of requests required to load the data.
+It is important that only teachers are allowed to read from the table.
## Graduation Changes
@@ -62,11 +35,12 @@ The author of the change and the creation time are tracked by Moodle.
### Data format
Each stored change is represented as JSON and has the following fields:
-(Fields marked by `-` are considered private and not stored in the public table.)
+(Fields marked by `?` are optional.)
+* `studentId` - the id of the student
* `change` - the type of the change
-* `-reason` - the type of the change
-* `context` - arbitrary data used to handle the type of change
+* `?reason` - the type of the change
+* `?context` - arbitrary data used to handle the type of change
### Changes