feat: #59 대시보드 View 연결 (1단계 최소 버전) - #61
Conversation
|
코드 직접 받아서 확인했습니다. 온보딩/다음 단계 안내/작업 준비 여부 분기 로직 잘 동작하고, 118개 테스트 전부 통과 확인했습니다. 다만 pending_recovery 조회 범위에 보완이 필요해 보입니다. 현재 로직: python 이 로직은 "오늘 계획이 마감됐는지"와 "복구안이 오늘 계획에서 나왔는지" 둘 다 오늘 하루로 한정합니다. 실제로는 어제 하루를 마감했는데(어제 계획에 finalized_at 찍힘) 그 자리에서 복구안을 바로 적용/포기하지 않고 앱을 닫는 경우가 흔할 것 같습니다. 이 경우 RecoveryPlan.status='pending'인 레코드가 DB에 남아있어도, 오늘 대시보드를 열었을 때 today_plan.finalized_at은 아직 비어있으니 조건 자체를 안 타서 배너가 안 뜹니다. finalize_daily_plan()은 미래 날짜만 막을 뿐 오늘 날짜도 마감 가능하니 "오늘 마감 → 오늘 확인" 케이스는 정상 동작하지만, "어제 마감 → 오늘 확인" 케이스가 빠져있습니다. 조회 범위를 특정 날짜(today_plan)가 아니라 시험기간 전체로 넓히는 방향을 제안드립니다. python 참고로 아래 2가지도 같이 봐주시면 좋을 것 같습니다 (급한 건 아닙니다). status='active', status='pending' 같은 문자열보다 ExamPeriodStatus.ACTIVE, RecoveryPlanStatus.PENDING처럼 enum 상수를 쓰면 오타 방지에 좋을 것 같습니다. pending_recovery 범위만 반영되면 머지해도 좋을 것 같습니다. |
관련 이슈
Closes #59
작업 내용
확정된 View 연결 우선순위의 2단계.
planner:dashboardView를 연결한다.next_step_label/next_step_url)1단계 범위 (의도적으로 축소)
#51(FE2 대시보드 화면)의 최종 context 스키마에는 Fit Bar, 과목별 요약, 진행률 집계(overall,subject_summary,progress)까지 포함되지만, 이번 PR에서는 그 계산 로직을 만들지 않는다.Django 템플릿은 없는 context 변수를 참조해도 에러 없이 빈 값으로 렌더링되므로, 화면이 깨지지 않고 숫자/막대/배지만 비어 보이는 상태로 동작한다.
overall/subject_summary/progress계산은 핵심 흐름(하루 마감, 복구안 적용) View까지 연결된 뒤 3단계에서 추가한다.#51(FE2 대시보드) 머지 이후 반영한 것이 브랜치는 원래
#51머지 전에 시작해서,#51이 먼저dev에 들어간 뒤 rebase하며dashboard.html을 FE2의 실제 템플릿으로 교체했다. 그 과정에서 FE2가 최종 확정한 context 이름에 맞춰 View도 같이 수정했다.pending_recovery.group_id→pending_recovery.recovery_group_id(모델 필드명과 일치)today_minutes필드 추가 (기존엔today_count만 있었음)테스트
python manage.py test planner→ 118개 통과 (기존 112 + 신규 6)이번 PR 범위 밖
planner:today로의 실제 이동 (todayView는 다음 단계 작업, 지금은href="#")