|
|
7a781fea33
|
Admin: users page with search and full cascade delete (identity + progress + files)
|
2026-10-02 11:53:01 +03:00 |
|
|
|
f7a0dc9d3b
|
Defense: sync admin/student timers from server every 10s; toasts with ready reason; live eye counter
|
2026-10-02 01:21:32 +03:00 |
|
|
|
95a306c712
|
Publication per student: checkbox in lab column, partial state in eye, cursor on Variant
|
2026-10-02 00:33:16 +03:00 |
|
|
|
64fdf61d98
|
Modals: preserve page scroll position while locking background
|
2026-09-29 20:58:41 +03:00 |
|
|
|
ff77e2b301
|
Defense modal: move Save to bottom-right next to issue-code action
|
2026-09-29 18:34:41 +03:00 |
|
|
|
da456f7b61
|
Solutions zip: use real file/submission timestamps instead of epoch (fixes bogus years)
|
2026-09-29 18:31:19 +03:00 |
|
|
|
c395a92b7f
|
Grade comments: mark suggestion tone with colored icon and left border
|
2026-09-29 17:55:34 +03:00 |
|
|
|
c0c150b4b9
|
Grade comments: select tone sized by content so input keeps width (fix row overflow)
|
2026-09-29 17:31:47 +03:00 |
|
|
|
dadbbb30cf
|
Modals: lock background scroll; comment dropdown keeps row on one line, full tone labels, flip up near bottom
|
2026-09-29 16:19:15 +03:00 |
|
|
|
751d6bae42
|
Grade comments: dropdown matches input width, compact tone select, responsive wrap
|
2026-09-29 16:09:39 +03:00 |
|
|
|
2869142a79
|
Grade comments: show live usage count and allow deleting unused templates
|
2026-09-29 15:56:00 +03:00 |
|
|
|
4bb1e332e3
|
Modals: action buttons bottom-right, no empty space under content
|
2026-09-28 17:39:10 +03:00 |
|
|
|
a73226b2ab
|
Admin group: large variant modal with the assigned variant task text
|
2026-09-28 17:37:18 +03:00 |
|
|
|
ed8d853d2a
|
Admin group: counter = number of group students who submitted a solution
|
2026-09-28 17:35:10 +03:00 |
|
|
|
6d1b36f02e
|
Defense: keep assignment text for admins, hide it only from students
|
2026-09-28 17:30:11 +03:00 |
|
|
|
f630b0267e
|
Admin group: fix script loading (extra div), total submissions counter, label cleanup
|
2026-09-28 17:22:09 +03:00 |
|
|
|
9df1af7647
|
Admin group: variant modal, cell badges/counters, header cleanup, bigger modal
|
2026-09-28 17:09:55 +03:00 |
|
|
|
fb67f5313d
|
Admin group: rework lab cells/columns, fix sort toggle and card rounding
|
2026-09-28 16:39:18 +03:00 |
|
|
|
23213f2d75
|
Admin grades: comment autocomplete by substring, larger grade dialog
|
2026-09-28 16:32:01 +03:00 |
|
|
|
82f231c940
|
Admin group: single table, defense actions in cells; flash messages as toasts
|
2026-09-28 16:23:29 +03:00 |
|
|
|
debf157194
|
Refactor: bind admin forms via @ModelAttribute DTOs; detekt fully default
|
2026-09-27 23:13:29 +03:00 |
|
|
|
6129055962
|
Refactor: extract helpers from groupDetail/editLab; detekt thresholds to defaults
|
2026-09-27 22:58:35 +03:00 |
|
|
|
4035bc5a0f
|
Refactor: split ContentService and ProgressService; defaults tightened
|
2026-09-27 22:48:13 +03:00 |
|
|
|
290b2a5a20
|
Refactor: split content order API; near-default detekt thresholds
|
2026-09-27 22:38:48 +03:00 |
|
|
|
3ed48b35fc
|
Refactor: split AdminController into AdminSupport and domain controllers
|
2026-09-27 22:36:41 +03:00 |
|
|
|
f08ab16af0
|
Refactor: move defense API methods into separate extension file
|
2026-09-27 22:31:06 +03:00 |
|
|
|
c22eb15d3e
|
Refactor: split ApiClient into domain extension files
|
2026-09-27 22:29:57 +03:00 |
|
|
|
6e891e4326
|
Test: Testcontainers integration tests for distribution and content import
|
2026-09-27 22:22:54 +03:00 |
|
|
|
47ec9884a3
|
Add ContentImporter tests; drop redundant elvis; document lint/test commands
|
2026-09-27 22:17:59 +03:00 |
|
|
|
a87110580b
|
Lint: strict mode on; tune detekt thresholds; more decompositions
|
2026-09-27 22:15:00 +03:00 |
|
|
|
4a8a10971c
|
Refactor: bind content admin forms via @ModelAttribute DTOs
|
2026-09-27 22:06:09 +03:00 |
|
|
|
9a2a4023b5
|
Refactor: split loop/throws helpers; drop deprecated JSON accessors
|
2026-09-27 22:02:56 +03:00 |
|
|
|
511df7977e
|
Refactor: extract helpers to satisfy detekt (throws, returns, loops)
|
2026-09-27 22:00:15 +03:00 |
|
|
|
b7d96d2ea4
|
Refactor: reduce detekt findings (unused params, throws, long methods, config)
|
2026-09-27 21:54:00 +03:00 |
|
|
|
f3e8b2668f
|
Build: enable ktlint+detekt, format sources, add core unit tests
|
2026-09-27 21:46:05 +03:00 |
|
|
|
802616918f
|
Admin: name submission archives as group-studentNo-name-attempt
|
2026-09-27 20:46:17 +03:00 |
|
|
|
a8785d48d9
|
Submissions: reject XML project files, show submitted file names to admin
|
2026-09-24 11:32:19 +03:00 |
|
|
|
d81cebef70
|
Content: match imported chapters/sections/articles by title; slug without number
|
2026-09-22 17:53:59 +03:00 |
|
|
|
7f4a518e46
|
trigger gitea hooks
|
2026-09-18 11:43:13 +03:00 |
|
|
|
3d05affdab
|
trigger gitea hooks
|
2026-09-18 11:43:00 +03:00 |
|
|
|
18d3ae5650
|
Edit README.md
|
2026-09-18 11:25:16 +03:00 |
|
|
|
0bb55e6e4b
|
Fix mobile layout; scroll tables themselves, not cards
|
2026-09-17 22:13:56 +03:00 |
|
|
|
3c40ffb11d
|
Bump LMS version to 0.2.0
|
2026-09-17 21:19:52 +03:00 |
|
|
|
51f0836894
|
Learn: remember expanded sections, open only in the last chapter by default
|
2026-09-17 20:41:54 +03:00 |
|
|
|
930e2fb580
|
Learn: remove link underlines
|
2026-09-17 20:35:29 +03:00 |
|
|
|
22b732633c
|
Learn: section actions on the title row, scrollable tables, copy code
|
2026-09-17 20:16:35 +03:00 |
|
|
|
78b72267a8
|
Learn: drag handles on the left, chapters always expanded
|
2026-09-17 19:56:35 +03:00 |
|
|
|
cb4cfee05b
|
Learn: drag & drop sections and articles on chapter and section pages
|
2026-09-17 19:15:56 +03:00 |
|
|
|
03c712fe2f
|
Learn: fix navigate buttons
|
2026-09-17 19:01:52 +03:00 |
|
|
|
80f551745a
|
Learn: fix alert notification
|
2026-09-17 18:55:57 +03:00 |
|