diff --git a/app/modules/project/router.py b/app/modules/project/router.py index 30645ad..aeb9929 100644 --- a/app/modules/project/router.py +++ b/app/modules/project/router.py @@ -285,6 +285,7 @@ def _build_task_calendar( "is_today": d == today, "is_sunday": d.weekday() == 6, "is_saturday": d.weekday() == 5, + "holiday_name": store.holiday_name(d.isoformat()), } for d in week ] diff --git a/app/modules/project/store.py b/app/modules/project/store.py index aa0e323..e46ddc8 100644 --- a/app/modules/project/store.py +++ b/app/modules/project/store.py @@ -49,6 +49,90 @@ COLOR_PALETTE: tuple[str, ...] = ( "#5a6772", # slate ) +# ════════════════════════════════════════════════════════════ +# 대한민국 국경일·공휴일(2026~2030) — 프로젝트 달력 표시 전용. +# +# vacation 모듈도 공휴일을 관리하지만(vacation_holidays 테이블) 그건 +# 휴가 일수 계산용으로 vacation_db 에 강하게 결합돼 있고, 여기는 달력에 +# 빨간 글씨로 "보여만" 주면 되는 용도라 별도 DB 연결 없이 정적 표로 둔다. +# 근로자의 날(5/1)·제헌절(7/17)은 관공서 공휴일이 아니라서 제외했다 +# (vacation 모듈의 기존 2026년 시드와 동일 기준). 대체공휴일은 실제 +# "관공서의 공휴일에 관한 규정" 대체공휴일 규정을 그대로 반영함(설날· +# 추석·어린이날·삼일절/광복절/개천절/한글날·부처님오신날·성탄절 대상, +# 신정·현충일은 대체 없음). 새 연도가 필요하면 이 표에 추가한다. +# ════════════════════════════════════════════════════════════ +KR_HOLIDAYS: dict[str, str] = { + # 2026 + "2026-01-01": "신정", + "2026-02-16": "설날 연휴", "2026-02-17": "설날", "2026-02-18": "설날 연휴", + "2026-03-01": "삼일절", "2026-03-02": "삼일절 대체", + "2026-05-05": "어린이날", + "2026-05-24": "부처님오신날", "2026-05-25": "부처님오신날 대체", + "2026-06-06": "현충일", + "2026-08-15": "광복절", "2026-08-17": "광복절 대체", + "2026-09-24": "추석 연휴", "2026-09-25": "추석", "2026-09-26": "추석 연휴", + "2026-09-28": "추석 대체", + "2026-10-03": "개천절", "2026-10-05": "개천절 대체", + "2026-10-09": "한글날", + "2026-12-25": "성탄절", + # 2027 + "2027-01-01": "신정", + "2027-02-06": "설날 연휴", "2027-02-07": "설날", "2027-02-08": "설날 연휴", + "2027-02-09": "설날 대체", + "2027-03-01": "삼일절", + "2027-05-05": "어린이날", + "2027-05-13": "부처님오신날", + "2027-06-06": "현충일", + "2027-08-15": "광복절", "2027-08-16": "광복절 대체", + "2027-09-14": "추석 연휴", "2027-09-15": "추석", "2027-09-16": "추석 연휴", + "2027-10-03": "개천절", "2027-10-04": "개천절 대체", + "2027-10-09": "한글날", "2027-10-11": "한글날 대체", + "2027-12-25": "성탄절", "2027-12-27": "성탄절 대체", + # 2028 + "2028-01-01": "신정", + "2028-01-26": "설날 연휴", "2028-01-27": "설날", "2028-01-28": "설날 연휴", + "2028-03-01": "삼일절", + "2028-05-02": "부처님오신날", + "2028-05-05": "어린이날", + "2028-06-06": "현충일", + "2028-08-15": "광복절", + "2028-10-02": "추석 연휴", "2028-10-03": "추석·개천절", "2028-10-04": "추석 연휴", + "2028-10-05": "개천절 대체", + "2028-10-09": "한글날", + "2028-12-25": "성탄절", + # 2029 + "2029-01-01": "신정", + "2029-02-12": "설날 연휴", "2029-02-13": "설날", "2029-02-14": "설날 연휴", + "2029-03-01": "삼일절", + "2029-05-05": "어린이날", "2029-05-07": "어린이날 대체", + "2029-05-20": "부처님오신날", "2029-05-21": "부처님오신날 대체", + "2029-06-06": "현충일", + "2029-08-15": "광복절", + "2029-09-21": "추석 연휴", "2029-09-22": "추석", "2029-09-23": "추석 연휴", + "2029-09-24": "추석 대체", + "2029-10-03": "개천절", + "2029-10-09": "한글날", + "2029-12-25": "성탄절", + # 2030 + "2030-01-01": "신정", + "2030-02-02": "설날 연휴", "2030-02-03": "설날", "2030-02-04": "설날 연휴", + "2030-02-05": "설날 대체", + "2030-03-01": "삼일절", + "2030-05-05": "어린이날", "2030-05-06": "어린이날 대체", + "2030-05-09": "부처님오신날", + "2030-06-06": "현충일", + "2030-08-15": "광복절", + "2030-09-11": "추석 연휴", "2030-09-12": "추석", "2030-09-13": "추석 연휴", + "2030-10-03": "개천절", + "2030-10-09": "한글날", + "2030-12-25": "성탄절", +} + + +def holiday_name(iso_date: str) -> str: + """해당 날짜(YYYY-MM-DD)가 공휴일이면 이름을, 아니면 빈 문자열을 반환.""" + return KR_HOLIDAYS.get(iso_date, "") + def norm_str(s: Any, *, lower: bool = False) -> str: out = str(s or "").strip() diff --git a/app/modules/project/templates/project/inbox.html b/app/modules/project/templates/project/inbox.html index 5182ca1..4be6fc9 100644 --- a/app/modules/project/templates/project/inbox.html +++ b/app/modules/project/templates/project/inbox.html @@ -1,7 +1,7 @@ {% extends "erp_base.html" %} {% block head_extra %} - + {% endblock %} diff --git a/app/modules/project/templates/project/index.html b/app/modules/project/templates/project/index.html index 74c9a79..48ea035 100644 --- a/app/modules/project/templates/project/index.html +++ b/app/modules/project/templates/project/index.html @@ -1,7 +1,7 @@ {% extends "erp_base.html" %} {% block head_extra %} - + {% endblock %} diff --git a/app/modules/project/templates/project/project.html b/app/modules/project/templates/project/project.html index 7efca22..48f4b68 100644 --- a/app/modules/project/templates/project/project.html +++ b/app/modules/project/templates/project/project.html @@ -1,7 +1,7 @@ {% extends "erp_base.html" %} {% block head_extra %} - + @@ -126,9 +126,10 @@