summaryrefslogtreecommitdiff
path: root/courses.go (follow)
Commit message (Expand)AuthorAgeFilesLines
* {courses,index}.go, student.html, style.css: Group by course groupRunxi Yu8 days1-9/+11
* *.go: Use sync.Map instead of map[int]*courseT for coursesRunxi Yu8 days1-35/+18
* {courses,wsc,wsp}.go: Usems should be sync.MapRunxi Yu8 days1-5/+2
* {courses,wsc,wsm}.go: map[courseGroupT](bool->struct{})Runxi Yu8 days1-3/+3
* *.go: Further wrap errorsRunxi Yu9 days1-8/+14
* err.go: Create, and unify some error definitionsRunxi Yu9 days1-7/+0
* {courses,wsm,wsp}.go: Make course.Selected atomicRunxi Yu9 days1-4/+5
* *.go: Limit to approximately 80 characters per lineRunxi Yu10 days1-12/+56
* {courses,wsc,wsm,wsp}.go: Send course number immediately on user interactionRunxi Yu11 days1-2/+9
* *: Overhaul structure again and embed everythingRunxi Yu11 days1-0/+229
* *.go: Move to backendRunxi Yu11 days1-229/+0
* {courses,wsm}.go: Use in-memory structure to fetch cgroup, not SQLRunxi Yu12 days1-17/+6
* {courses,sem,ws,wsm}.go: Second step towards an efficient state propagatorRunxi Yu11 days1-4/+6
* {courses,sem,ws}.go: First step towards an efficient state propagatorRunxi Yu11 days1-1/+10
* courses.go: ReformatRunxi Yu11 days1-1/+1
* {courses,wsm}.go: Add getCourseByIDRunxi Yu11 days1-0/+6
* {courses,wsm}.go: Add (*courseT).decrementSelectedAndPropagateRunxi Yu11 days1-0/+11
* {courses,ws,wsm}.go: Update userCourseGroups during choose/unchooseRunxi Yu11 days1-7/+18
* {courses,ws}.go: Populate userCourseGroups in a separate functionRunxi Yu11 days1-0/+34
* {courses,ws}.go: Populate userCourseGroups for each connectionRunxi Yu12 days1-5/+19
* courses.go, schema.sql: Validate course{Type,Group} in server, not SQLRunxi Yu12 days1-10/+44
* courses.go: Propagate course.Selected when setting up coursesRunxi Yu2024-10-011-2/+7
* *: Change license to AGPL-3.0-or-laterRunxi Yu2024-09-301-21/+11
* courses.go: courseT.{Lock->SelectedLock}Runxi Yu2024-09-291-12/+12
* courses.go: Add a RWMutex to courseTRunxi Yu2024-09-281-8/+15
* courses.go, etc: Make courses a map instead of a sliceRunxi Yu2024-09-261-3/+3
* *.go, cca.scfg.example: Expose performance optionsRunxi Yu2024-09-261-1/+1
* *.go: Wrap errorsRunxi Yu2024-09-261-3/+4
* *.go: LintingRunxi Yu2024-09-241-11/+11
* courses.go: Comment out coursetype_t enum to make linter happy for nowRunxi Yu2024-09-241-5/+7
* *.go: Add more licensesRunxi Yu2024-09-091-0/+30
* *.go: Add commentsRunxi Yu2024-09-091-2/+18
* courses.go: Remove unused importsRunxi Yu2024-09-081-1/+0
* *: Display coursesRunxi Yu2024-09-081-0/+69