Fixed:
- 30분 연차(0.0625일)가 int(days * 8) 절삭으로 "0시간"으로 표시되어
보고서 수신자가 사용 내역을 알 수 없던 문제. 분 단위까지 표시.
- 보고서만 1일=8시간으로 하드코딩되어 단축근무(7h30m) 사용자의 반차가
4시간으로 표시되던 오류. DB 정본(days * work_minutes) 기준으로 통일.
Added:
- utils.time_format.format_leave_amount(days, work_minutes) 공용 헬퍼
+ 자체 검사 9건 (python utils/time_format.py)
- i18n 키 report.leave_used_days_time (ko/en)
테스트: 유닛 200 / 통합 53 / GUI 8 / i18n 5 통과.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
핵심 기능:
- 단축근무·표준·반일 등 다양한 근무 패턴 (5개 프리셋 + 사용자 정의)
- Windows 이벤트 뷰어 자동 출퇴근 감지
- 30분 단위 연장근무 적립/사용 시스템
- 1.0/0.5/0.25일 연차·반차·반반차
- 자동 점심·저녁·외출·자동 백업·화면 잠금 자동 외출
- 한국 공휴일 자동 등록 (음력 포함, holidays 패키지)
- matplotlib 차트 기반 주간/월간/패턴 통계
- 미니 위젯 + 시스템 트레이 통합
- 한국어/English i18n
- 자가 업데이트 (updater.exe + Gitea Releases)
아키텍처:
- core/ (db, time_calculator, notifier, i18n, version, settings_keys)
- ui/ (main_window + 9 dialogs + 3 controllers)
- utils/ (backup, lock_detector, debug_log, updater_client, time_format)
- tests/ (66 pytest 단위) + 통합/i18n GUI 검증
CI/CD:
- .gitea/workflows/ci.yml: push 시 pytest + 통합 테스트
- .gitea/workflows/release.yml: v* 태그 push 시 두 .exe 자동 빌드 + Releases 첨부
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>