- progress: submissions table+V4; SubmissionService (deadline-gated submit,
unlimited resubmits, per-student history, zip download); files on disk
data/submissions/{student}/{lab}/{seq}/
- student API: POST submit (multipart), GET me submissions, download; admin
GET lab submissions + admin download (zip pack)
- progress enrich(): labId in MeAssignment; web DTO aligned
- web: /student dashboard (avg/best/worst cards), /student/labs cards,
/student/labs/{id}: condition md, variant block, submit form, history;
'Лабораторные' link in nav for students
- admin: submissions column on lab assignment table + download link
- fixed long-standing template bug: broken @{} expression (missing }) in
admin/lab and student/lab
12 lines
434 B
SQL
12 lines
434 B
SQL
-- Lab submissions: files stored on disk, one row per submission attempt.
|
|
|
|
CREATE TABLE submissions (
|
|
id uuid PRIMARY KEY DEFAULT uuidv7(),
|
|
student_id uuid NOT NULL,
|
|
lab_id uuid NOT NULL,
|
|
seq integer NOT NULL,
|
|
created_at timestamptz NOT NULL DEFAULT now(),
|
|
CONSTRAINT submissions_seq_unique UNIQUE (student_id, lab_id, seq)
|
|
);
|
|
|
|
CREATE INDEX submissions_lab_idx ON submissions (lab_id); |