summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Backend confirm course type minimum checkRunxi Yu8 days10-48/+295
| | | | | | | We still need to: - Implement YC and NC on the frontend - Reject Y and N when confirmed - Export list of confirmed users
* Display allowed groups/types on csv error; course{Group,Type}T -> stringRunxi Yu8 days8-30/+37
|
* iadocs: Use Inconsolatazi4Runxi Yu8 days2-2/+2
|
* iadocs: Include iadocs's own codeRunxi Yu8 days3-1/+7
|
* iadocs: AGPL \texttt -> \urlRunxi Yu8 days1-2/+2
|
* iadocs: Appendix updateRunxi Yu8 days3-11/+37
|
* latexify-source.sh: CSS is of language CSS, not JavaScriptRunxi Yu8 days1-1/+1
|
* endpoint_index.go: Fix bug of not returning after rendering login pageRunxi Yu8 days1-1/+1
|
* Remove benchmarking utilityRunxi Yu8 days4-134/+0
|
* Reduce code repetition and remove fake authenticationRunxi Yu8 days9-349/+157
|
* *.go: Use wrapError() for brevityRunxi Yu8 days13-91/+53
|
* Don't pass session ID to WebSocket routinesRunxi Yu8 days5-13/+1
|
* drop.sql: DROP TABLE misc;Runxi Yu8 days1-0/+1
|
* Rename tmpl -> templatesRunxi Yu8 days8-10/+7
|
* *.go: Restructure backend filesRunxi Yu8 days14-143/+161
|
* Combine "Enrichment" and "Culture" into "Non-sport"Runxi Yu9 days2-12/+10
|
* courses.go: courseTypes should be a map[courseTypeT]struct{}Runxi Yu9 days1-4/+4
| | | | This saves one byte per course type
* Separate wsm.go into a file for each functionRunxi Yu9 days3-155/+215
|
* Move AGPL out of the primary appendix documentRunxi Yu9 days3-688/+685
|
* latexify-source.sh: Use a function instead of copying code aroundRunxi Yu9 days1-55/+23
|
* deploy.sh: Update sed expressionRunxi Yu9 days1-1/+1
|
* student.js: Use wss://cca.runxiyu.org/wsv0.1.9Runxi Yu9 days1-1/+1
|
* README.md: Remove "(WIP)"Runxi Yu9 days1-1/+1
|
* Revert "auth.go: Set SameSite=Strict"Runxi Yu9 days1-1/+1
| | | | | | | This reverts commit a6a5db47eb7a2040cd70dbd39e16d7de3fd9bd9f. Users are unable to log in with it. I'll look for another way to prevent CSRF.
* *.html: s/IA Docs/IA/gRunxi Yu9 days4-4/+4
|
* auth.go: Set SameSite=StrictRunxi Yu9 days1-1/+1
| | | | | We use GET requests for some administration endpoints (most importantly, the ones managing the global state).
* Implement course selection started/stopped statesRunxi Yu9 days10-21/+135
| | | | Implements: https://todo.sr.ht/~runxiyu/cca/13
* staff.html: Add search functionalityRunxi Yu9 days1-0/+11
|
* state.go: Cancel connections when setting state 0Runxi Yu9 days1-8/+16
|
* newcourses.go: setupCourses must be run after commitRunxi Yu10 days1-10/+11
| | | | Otherwise it reads an old snapshot of the database...
* wsc.go: Check newCtx.Done() when entering other event casesRunxi Yu10 days1-12/+25
| | | | | | | | | | We select the context done channel when entering other cases too (see below) because we need to make sure the context cancel works even if both the cancel signal and another event arrive while processing a select cycle. It's a bit verbose and looks repetitive but is technically more correct than code without it.
* wsh.go: Remove old TODO about limiting connections per userRunxi Yu10 days1-7/+0
| | | | This has been implemented quite a while ago.
* wsh.go: Remove TODO about checking pgErrRunxi Yu10 days1-1/+0
| | | | | | | If the UUIDs actually collide, we're doomed anyway. Okay... this isn't the best way to write software that must be ultra-reliable, but this doesn't need to be ultra-reliable.
* export.go: Remove unnecessary TODORunxi Yu10 days1-1/+1
|
* auth.go: Remove access token expiration fields and related TODORunxi Yu10 days1-14/+5
| | | | | We're only using the token immediately after it is issued, so it's a bit unnecessary.
* auth.go: Remove TODO about implementing nonce checksRunxi Yu10 days1-7/+0
| | | | It's the OAuth provider that's responsible for checking this nonce.
* auth.go: Remove TODO about using ON CONFLICTRunxi Yu10 days1-7/+0
| | | | | | I think using the pgErr method actually makes the logic easier to follow especially since I'm not updating the "confirmed" field when UPDATEing but it's being initialized to false during INSERT.
* Replace tcourse.sql with an example importable CSVRunxi Yu10 days3-14/+15
|
* Validate course group and course type when importing from CSVRunxi Yu10 days1-0/+24
|
* Allow staff to upload a CSV containing coursesRunxi Yu10 days6-39/+432
| | | | Implements: https://todo.sr.ht/~runxiyu/cca/2
* export.go: Remove unnecessary fields from user queryRunxi Yu10 days1-3/+3
|
* style.css: Fix file selector buttonsRunxi Yu10 days1-1/+7
|
* {wsp,wsx}.go: Move comment about RFC1459-like message formatRunxi Yu10 days2-23/+23
|
* auth.go, schema.sql: Add "confirmed" field to usersRunxi Yu10 days2-2/+3
|
* index.go, student_disabled.html: Repsect state = 0Runxi Yu10 days3-17/+98
| | | | References: https://todo.sr.ht/~runxiyu/cca/13
* *.go, schema.sql, staff.html: Implement state settingRunxi Yu10 days7-3/+187
| | | | References: https://todo.sr.ht/~runxiyu/cca/13
* *.go, tmpl/staff.html: Allow staff to export choicesRunxi Yu10 days6-2/+250
| | | | Implements: https://todo.sr.ht/~runxiyu/cca/3
* staff.html: Update from students.html and only display link to /exportRunxi Yu10 days1-112/+5
|
* docs/fields.txt: RemoveRunxi Yu10 days1-27/+0
|
* {courses,wsc}.go: Atomic 64-bit alignmentRunxi Yu10 days2-4/+7
|