8ed1682b90
fix permissions and teacher attendance workflows
2026-07-10 20:40:52 +08:00
55881863c1
feat(sync): sync class schedules to DingTalk students
...
Group active schedules by class, resolve enrolled students through DingTalk mappings, reuse shifts and attendance groups, and expose class-based sync status in the admin UI.
2026-07-10 14:11:39 +08:00
18060d44a8
fix: pass user name and mobile to backend when importing students
2026-07-10 09:50:45 +08:00
22bc1876d8
refactor: remove departmentId from Class entity
2026-07-09 17:32:37 +08:00
9b7a8e37b4
fix: resolve 5 review findings
...
Critical 1: Remove broken '钉钉绑定' tab (IntegConfig) — deleted /rbac/user-ding-mappings calls
Critical 2: Fix decorator placement in CreateClassDto — @IsOptional @IsArray restored to teachers
Important 1: Restore sync.service.spec.ts from 1fa3363 , strip importDingTalkUsers tests
Important 2: Fix N+1 in batchImportStudents — batched find/save with In() operator
Important 3: Add migrate-student-ding-mapping.sql
2026-07-09 17:25:44 +08:00
1f63a53222
feat: rewrite sync drawer with checkable tree + class batch import
2026-07-09 17:16:08 +08:00
7e4f06058c
fix(admin): match flat API response shape, no nested data envelope
2026-07-09 15:52:40 +08:00
2da2e68318
fix(admin): refactor inline map arrow to avoid oxc TSX parser confusion
2026-07-09 15:46:24 +08:00
d2d0ca31ad
fix(admin): use type pattern consistent with rest of codebase (oxc compat)
2026-07-09 15:43:46 +08:00
867e1aab1f
fix(admin): avoid TSX generic syntax to fix oxc parser in Vite 8
2026-07-09 15:41:30 +08:00
8bfb8bf7ae
fix(admin): fix syntax error — missing closing parens in map after console.log removal
2026-07-09 15:39:03 +08:00
b624c52b30
fix(admin): restore nested ImportUsersResponse and remove debug console.log
2026-07-09 15:24:54 +08:00
f7df3bdcf1
fix(admin): only show class-mark button on leaf departments with users
2026-07-09 15:18:23 +08:00
db3e4aae84
fix(admin): display classCount and warnings in import response
2026-07-09 13:01:07 +08:00
7f42c12392
feat(admin): add class marking modal in DingTalk org import drawer
2026-07-09 12:41:29 +08:00
fb8c897b4f
fix: disable import button when roles not loaded (null defaultTeacherRoleId guard)
2026-07-09 11:32:01 +08:00
0cfdab95ee
fix: add DTO validation, transactional imports, role-not-found handling, null role guard
2026-07-09 11:28:11 +08:00
33e6cb445c
fix: parallel fetches, error handling, extract UserTreeNode component
2026-07-09 11:16:47 +08:00
a42039d1df
feat: add sync users Tab with Drawer tree to IntegrationConfig
2026-07-09 11:13:05 +08:00
e8dec3b171
feat: add DingTalk integration config page
2026-07-09 10:14:51 +08:00