feat: private checklists for zjazd preparation
Per-user checklists with items that may link a course, reading, deadline, material or own presentation deck. An item with a reading shares the reading's read mark. Student API routes with token twins, MCP tools, migrations, tests and README.
This commit is contained in:
@@ -156,6 +156,7 @@ func migrated(t *testing.T) (*backpack.App, []party.Plugin, *gorm.DB) {
|
||||
var bmTables = []string{
|
||||
"jz_bm_meetings", "jz_bm_courses", "jz_bm_class_sessions", "jz_bm_deadlines", "jz_bm_readings",
|
||||
"jz_bm_reading_progress", "jz_bm_reading_ownership", "jz_bm_tags", "jz_bm_materials", "jz_bm_material_tag", "jz_bm_calendar_feeds",
|
||||
"jz_bm_checklists", "jz_bm_checklist_items",
|
||||
}
|
||||
|
||||
func TestMigrateUpAndRollback(t *testing.T) {
|
||||
@@ -201,6 +202,8 @@ func TestSchemaConstraints(t *testing.T) {
|
||||
`INSERT INTO jz_bm_class_sessions (course_id, starts_at, ends_at) VALUES (999, NOW(), NOW() + interval '1 hour')`,
|
||||
`INSERT INTO jz_bm_deadlines (title, due_at, kind) VALUES ('X', NOW(), 'party')`,
|
||||
`INSERT INTO jz_bm_materials (title, type) VALUES ('X', 'video')`,
|
||||
`INSERT INTO jz_bm_checklists (user_id, title) VALUES (999, 'X')`,
|
||||
`INSERT INTO jz_bm_checklist_items (checklist_id, title) VALUES (999, 'X')`,
|
||||
} {
|
||||
if err := exec(bad); err == nil {
|
||||
t.Errorf("accepted: %s", bad)
|
||||
|
||||
Reference in New Issue
Block a user