5cf6aede1e
feat: improve occupancy import template
2026-07-14 11:20:41 +08:00
811e7ce826
feat: show DingTalk punch device details
2026-07-14 11:20:41 +08:00
a93ba657a8
fix: keep room capacity and beds consistent
2026-07-14 10:57:13 +08:00
e7aa202603
fix: 修改 PDFDocument 导入方式以符合 ES6 模块规范
2026-07-14 10:45:27 +08:00
013b3f4afe
fix: 押金页添加批量构建学生选项的功能以简化学生数据处理
2026-07-13 17:18:35 +08:00
7bfd30b513
fix: 添加表单验证错误处理逻辑以改善错误提示
2026-07-13 16:50:47 +08:00
ceb0e2bf14
fix: 添加默认床位生成逻辑并优化床位添加验证
2026-07-13 16:50:47 +08:00
acb11b87a3
fix: enhance pagination settings across multiple pages with default size and options
2026-07-13 16:49:21 +08:00
f98c0ccaa8
refactor(rooms): remove dorm gender restrictions
2026-07-13 16:12:57 +08:00
aa1ed7db56
refactor: resolve remaining field audit issues
2026-07-13 16:12:57 +08:00
0533c30ece
refactor(classes): preserve student membership history
2026-07-13 16:12:57 +08:00
1f32d1285b
refactor(deposits): remove refund approval remnants
2026-07-13 16:12:56 +08:00
7b08560aef
fix(deposits): show student numbers in lookup
2026-07-13 16:12:56 +08:00
04ef5c42d9
refactor(deposits): remove inline installment creation
2026-07-13 16:12:22 +08:00
0515e6ed27
fix(integration): simplify manual DingTalk sync setup
2026-07-13 16:12:22 +08:00
effa34434b
refactor(students): remove obsolete class id input
2026-07-13 16:12:22 +08:00
0377acd33b
refactor: remove residual campus and department fields
2026-07-13 16:12:22 +08:00
6396d3e934
fix(schedules): support editable schedule notes
2026-07-13 16:12:21 +08:00
dfd3cf6772
fix(archive): align aggregate result field
2026-07-13 16:12:21 +08:00
2874ab7bee
fix(occupancies): assign room resources during transfers
2026-07-13 16:12:21 +08:00
8cadf8970e
fix(admin): restore teacher profile form values
2026-07-13 16:12:20 +08:00
7860703672
test: update DingTalk token cache fixtures
2026-07-13 16:04:05 +08:00
ebce2463f0
fix: remove sensitive data masking from student options label
2026-07-13 15:27:17 +08:00
910a4263f6
fix: refactor notification display logic and add format function
2026-07-13 14:52:03 +08:00
6d42241918
fix: enhance emergency contact phone display with masking and view option
2026-07-13 14:29:01 +08:00
70283d9dfe
fix: enhance 401 error handling to exclude login requests
2026-07-13 14:22:22 +08:00
187e4f2af0
fix: improve error handling in expense form submissions
2026-07-13 12:16:39 +08:00
619b3b22bd
fix: use saved dingtalk config for integration calls
2026-07-13 11:43:11 +08:00
b5ef91bf2d
fix: support Windows dev startup
2026-07-13 10:35:43 +08:00
1c8bd08be4
feat: settle course attendance automatically
2026-07-13 10:26:38 +08:00
b9b295c997
refactor: remove unused classroom fields
2026-07-13 09:34:15 +08:00
a266d450e1
chore: apply eslint --fix autofixes (remove unnecessary as never casts in tests)
2026-07-12 23:01:37 +08:00
b5f4b8747c
fix: schedules lookups test mock missing classroomRepo constructor arg
...
The SchedulesService constructor expects 5 repository arguments.
The test only provided 4, passing {} as never for classroomRepo.
Added classroomRepo mock with find() returning full selected columns.
Fixes: schedules.lookups.spec.ts — 'returns scoped classes and
minimal classrooms for schedule viewers'
2026-07-12 23:01:00 +08:00
cc4f4dae4e
fix: audit remediation — SSE user scoping, FK transactional safety, UI error handling
...
- H4: scoped SSE import progress to exact userId match; non-HTTP events excluded from all subscribers
- H2: moved PRAGMA foreign_key_check inside SQLite transaction before COMMIT; violations rollback preserving old tables
- M1: removed dead axios-style error branch from extractErrorMessage (interceptor already unwraps)
- M2: split handleSave try/catch — save errors vs reload errors shown distinctly
- M3: added provider field validation before AI config test request
- Added SSE scoping regression tests (import service + controller)
- Added FK check failure rollback test (database-migrations.spec)
- Updated controller spec expectations for userId parameter
Co-authored-by: Code Review <branch-review>
2026-07-12 22:59:03 +08:00
b6fca99390
fix: align permission navigation and page access
2026-07-11 14:55:49 +08:00
1e1c476bc3
feat: add CASL authorization and AI configuration
2026-07-11 14:25:34 +08:00
8f0991a51f
feat: replace tenants with organization management
2026-07-10 21:27:26 +08:00
8ed1682b90
fix permissions and teacher attendance workflows
2026-07-10 20:40:52 +08:00
44105c1689
refactor: remove obsolete scaffolding and dead modules
...
Drop the unused root hello-world controller, empty CommonModule imports, development seeding code, legacy student report entity, stale DTOs, notification hook, and their placeholder tests.
2026-07-10 14:12:56 +08:00
b093d69f6a
fix(server): correct archive filters and deposit access
...
Parse archived class query flags without Boolean string coercion, register the refund approval permission, and grant dorm managers the deposit permission group.
2026-07-10 14:12:44 +08:00
50b3608db4
fix(admin): repair class, role, and room views
...
Use the RBAC user endpoint for teacher selection, restore role table columns, correct Ant Design props, and add typed room bed and locker responses.
2026-07-10 14:12:08 +08:00
e26a8e816e
fix(attendance): normalize DingTalk match statuses
...
Store and validate stable English status codes for unmatched, pending, and matched attendance records so import, filtering, and auto-match use the same values.
2026-07-10 14:11:55 +08:00
1ca4a4d185
fix(archive): serve student attachments securely
...
Download attachments through authenticated API requests, support configurable upload paths, validate resolved file locations, and retain compatibility with legacy stored paths.
2026-07-10 14:11:47 +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
bc6b8b0095
fix: 修复入住管理白屏、重构首页工作台、拍平教务菜单
...
- Occupancies: 补齐缺失的 Alert import(渲染时 ReferenceError 导致白屏),
并为两处 api.get 补泛型消除既有类型错误
- Dashboard: 改为待办优先的工作台(待办异常区 + 核心 KPI + 更多指标折叠 +
图表按重要性重排),修复 fetchData 无限请求循环(loadedRef),
重活图表用 IntersectionObserver(callback ref)懒加载
- MainLayout: 将三层嵌套的"教室管理"提升为一级菜单,全站菜单统一为两层
2026-07-10 11:16:30 +08:00
f6a84fd6b3
fix: assign each user to single leaf dept to prevent duplicates
2026-07-10 10:09:47 +08:00
fb54a6c466
fix: assign users to leaf departments only, handle multi-branch dept chains
2026-07-10 10:08:07 +08:00
3ccb878092
fix: fetch users from all sub-departments in syncAll and fetchOrgTreeWithUsers
2026-07-10 10:06:35 +08:00
3992f6c33f
feat: implement fetchOrgTree and fetchOrgTreeWithUsers via dingtalk API
2026-07-10 10:04:59 +08:00
18060d44a8
fix: pass user name and mobile to backend when importing students
2026-07-10 09:50:45 +08:00