Commit Graph

  • acbc767247 feat(auth): switch to bcrypt primary scheme, keep sha256_crypt for migration master IT狗 2026-07-22 12:07:51 +08:00
  • f6712d9d0e test(auth): smoke test for /api/auth/users + reset-password IT狗 2026-07-22 11:02:11 +08:00
  • 262c44f6a1 feat(auth): user management UI in Settings + GET /api/auth/users IT狗 2026-07-22 11:00:48 +08:00
  • 3c855d521b fix(auth): import get_password_hash in main.py IT狗 2026-07-22 10:57:25 +08:00
  • 5596ab2cb5 feat(auth): add admin-only /api/auth/reset-password endpoint IT狗 2026-07-22 10:56:09 +08:00
  • a7dfd208d2 fix(dashboard): use backend attendance_rate instead of broken client formula IT狗 2026-07-22 10:41:11 +08:00
  • a16e243da1 fix(dashboard): include abnormal-override records in component counts IT狗 2026-07-22 09:55:18 +08:00
  • 4a01b53541 Bump version 1.2.0 → 1.3.0 v1.3.0 IT狗 2026-07-22 00:06:44 +08:00
  • 404329d3fa Attendance: detect rest day in enrich → render 休息 instead of 缺勤 IT狗 2026-07-21 23:54:57 +08:00
  • 811b9991c9 Attendance filter: 請假/公假 — also match leave/holiday suffix in status_text IT狗 2026-07-21 23:39:15 +08:00
  • f12a239e26 StatusBadge: drop holiday suffix chip — main badge already says 公假 IT狗 2026-07-21 22:41:45 +08:00
  • fcc3246d8e StatusBadge: surface leave/holiday suffix as secondary chip IT狗 2026-07-21 22:31:26 +08:00
  • 3ba6617009 Attendance filter: enrich-then-filter so badge matches result set IT狗 2026-07-21 22:18:55 +08:00
  • 4bd6d0e7c8 StatusBadge: fix normal badge — only check status_code, not text IT狗 2026-07-21 22:13:12 +08:00
  • 7702fe4ae5 Fix attendance filter: align with badge via status_code (not late/early/OT thresholds) IT狗 2026-07-21 21:55:55 +08:00
  • d302fa9beb List.jsx: fix API path /api/attendance -> /api/attendance/records IT狗 2026-07-21 21:38:22 +08:00
  • 4b967f7920 StatusBadge: simplify to 5 basic categories (正常/異常/缺勤/公假/請假) IT狗 2026-07-21 21:33:42 +08:00
  • 8b378ec4c6 StatusBadge: handle missing/holiday/AL/SL/CL/mixed_leave codes; pass status_text to StatusBadge IT狗 2026-07-21 21:14:12 +08:00
  • 7dd53e0a5f StatusBadge: preserve late/early/ot minutes for abnormal records (don't zero them out) IT狗 2026-07-21 18:22:03 +08:00
  • 33a5e3b2ad StatusBadge: split badges per dimension (abnormal/late/early/OT <=30min); Attendance filter by status_code conditions for abnormal/late/early/OT/normal/leave types IT狗 2026-07-21 18:10:43 +08:00
  • 4c9db01213 Add /api/attendance/status_texts endpoint; dynamic status filter in Attendance List (filter by status_text LIKE) IT狗 2026-07-21 18:02:32 +08:00
  • ef57d7cd59 If late/early/OT > 30min → mark as abnormal status (override status_code+text, zero out minutes) IT狗 2026-07-21 17:52:36 +08:00
  • f41dad6127 Fix: add 30-second tolerance for OT/early/late calculation to avoid floating-point noise (e.g. 20:00==20:00 showing OT 1min) IT狗 2026-07-21 17:41:14 +08:00
  • 6f2df815f5 Simplify Attendance export status groups to 6 categories: 正常|遲到|早退|加班|異常/缺勤|假期/請假 IT狗 2026-07-21 13:38:58 +08:00
  • c1b1d6f35b Add DELETE /api/admin/backup/{filename} and delete button in Settings IT狗 2026-07-21 13:14:56 +08:00
  • e531cea8a4 Add leaves reset, split holidays/leave resets, support multi-table reset IT狗 2026-07-21 13:10:46 +08:00
  • 2d64d3f0b6 Add accident to reset sections IT狗 2026-07-21 13:08:00 +08:00
  • 08ba4cbca9 Fix: add missing db Session dependency to reset_section IT狗 2026-07-21 12:49:44 +08:00
  • c07f40b28f Add /api/admin/reset/{section} endpoint for Danger Zone reset IT狗 2026-07-21 12:49:07 +08:00
  • 2d9b73df9d Bump version to 1.2.0 IT狗 2026-07-21 12:45:46 +08:00
  • 9980f8d80a Fix: strip existing leave suffix before appending new leave to prevent duplication IT狗 2026-07-21 12:38:48 +08:00
  • 1e7d58486b Fix: prevent leave type duplication in status_text for attendance records IT狗 2026-07-21 12:35:16 +08:00
  • cca088261b Fix: use roster public_holiday column to determine if employee works on holidays, instead of checking clock-in IT狗 2026-07-21 12:26:27 +08:00
  • adc9e6451b Fix: show attendance status for employees who worked on holiday (not just holiday name) IT狗 2026-07-21 12:08:31 +08:00
  • a34905661b Fix: add missing DB_PATH constant for backup/restore endpoints IT狗 2026-07-21 11:56:22 +08:00
  • 89c14c7a72 Make RECALC button btn-primary (blue) for visibility IT狗 2026-07-21 11:28:27 +08:00
  • 1a60c71032 Add RECALC button to Roster page to refresh data IT狗 2026-07-21 11:17:33 +08:00
  • 03bf4ef422 Make RECALC button btn-primary (blue) for visibility main IT狗 2026-07-21 11:28:27 +08:00
  • e7c29a0a57 Add RECALC button to Roster page to refresh data IT狗 2026-07-21 11:17:33 +08:00
  • 0b58a1c05a Fix calculate_attendance_status missing return result, move chart imports to top IT狗 2026-07-21 11:03:21 +08:00
  • d5d9d644a0 feat: add backup/restore/version, fix leave duplicate, add Settings page to nav IT Dog 2026-07-21 02:34:30 +08:00
  • 6f90d60b13 Add Settings page, List page, report template IT Dog 2026-07-21 01:56:10 +08:00
  • 02b4a49e8c Add /api/attendance/records and /api/accident/records endpoints for frontend IT狗 2026-07-21 00:15:29 +08:00
  • 766817b9be Restore list_records and get_section_info endpoints after route reorder IT狗 2026-07-21 00:02:59 +08:00
  • 4114e03f05 Fix route ordering: specific endpoints before generic /{section}/* IT狗 2026-07-21 00:00:31 +08:00
  • 5b4a39924e Add missing dashboard endpoints: /api/dashboard/summary, /api/attendance/stats, /api/accident/dashboard/* IT狗 2026-07-20 23:55:39 +08:00
  • 6f845e2cb6 Fix import path: use database not app.database IT狗 2026-07-20 23:47:14 +08:00
  • e1c6537f38 Fix HTML report auth: accept ?token= query param for new-window download IT狗 2026-07-20 23:45:40 +08:00
  • 535d10a885 Add HTML5 report export for Attendance and Accident IT狗 2026-07-20 23:21:12 +08:00
  • 95814350c9 Accident display: fix aliases + submitted_at format IT Dog 2026-07-20 01:46:59 +08:00
  • 975791b9bd Accident: add incident_datetime computed field (date HH:MM:SS) IT Dog 2026-07-20 01:38:24 +08:00
  • 0d34b51918 Fix accident export xlsx: indent + submitter_email mapping IT Dog 2026-07-20 01:08:24 +08:00
  • aca1c55072 Fix: replace r.employee_name with r.submitter_email in accident references IT Dog 2026-07-20 00:22:32 +08:00
  • 4bcda0a907 Accident schema: rename employee_name -> submitter_email (clearer semantic) IT Dog 2026-07-20 00:05:05 +08:00
  • c0076a125c Fix: exclude accident source + filter email-format names from employees list IT Dog 2026-07-19 23:45:34 +08:00
  • 6c70b81df5 Fix: replace uniqueEmps reference with employees state in LeaveModal IT Dog 2026-07-19 23:28:18 +08:00
  • 25ebf6da66 Employee dropdown list all staff from attendance + leave + accident IT Dog 2026-07-19 22:39:54 +08:00
  • 0cd8717320 Multi-row LeaveModal frontend + LeaveRecord UNIQUE constraint IT Dog 2026-07-19 22:13:13 +08:00
  • 347a862cae Apply conditional upsert to attendance + accident Excel upload IT Dog 2026-07-19 20:47:51 +08:00
  • 8e0d73c37e Conditional upsert: upload skips edited records, updates not-edited IT Dog 2026-07-19 20:26:59 +08:00
  • bbc0048c24 Initial commit: AARS backend + frontend + holiday/leave phase 1+2 IT Dog 2026-07-19 20:10:15 +08:00
  • eafc1c33fc Add full AARS system - Attendance & Accident Record System IT狗 2026-07-16 03:16:33 +08:00
  • 7f34b1fa09 Add SC Medical Group Org Chart Editor admin 2026-07-16 03:14:50 +08:00