+ {% include "planner/includes/empty_state.html" with icon="i-calendar" title="아직 등록된 시험기간이 없습니다" desc="시험기간을 만들고 과목과 공부 가능시간을 입력하면, PLAN B가 날짜별 계획을 대신 계산해 드립니다." btn_label="시험기간 만들기" show_steps=True %}
+
+
+ {% elif not has_plan %}
+ {# ===== 2단계 : 시험기간은 있지만 계획이 아직 없음 ===== #}
+
+
+
+
+ {{ exam_period.title }}
+{{ exam_period.start_date|date:"n월 j일" }} ~ {{ exam_period.end_date|date:"n월 j일" }}
+
+ {% include "planner/includes/empty_state.html" with icon="i-calendar" title="아직 계획이 만들어지지 않았습니다" desc="과목과 시험 범위를 입력하고 학습 작업을 확정하면 계획을 생성할 수 있습니다." btn_label=next_step_label btn_url=next_step_url %}
+
+
+ {% else %}
+ {# ===== 3단계 : 평소 대시보드 ===== #}
+
+
+
+ {% if pending_recovery %}
+
+ {% endif %}
+
+ {# ---- 전체 판정 ---- #}
+
+
+ {# TODO: {% url 'planner:today' %} 로 교체 #}
+
+ 오늘의 공부 시작
+
+ {{ today|date:"n월 j일 l" }}
+
+ 공부할 수 있는 날 {{ remaining_days }}일 남음
+ · 오늘 배정 {{ today_minutes }}분
+
+
+
+
+
+
+
+
+
+ {% include "planner/includes/fit_bar.html" with status=overall.status min_pct=overall.min_pct band_pct=overall.band_pct mark_pct=overall.mark_pct need_label_pct=overall.need_label_pct min_minutes=overall.min_minutes max_minutes=overall.max_minutes available_minutes=overall.available_minutes axis_max=overall.axis_max %}
+
+
+ 시험기간 전체 판정
+
+ {{ overall.status_label }}
+
+
+
+ {{ overall.viewed_at|date:"n.j H:i" }} 조회 기준
+
+
+
+
+
+ 남은 가능시간
+ {{ overall.available_minutes }}분
+
+
+ 최소 필요시간
+ {{ overall.min_minutes }}분
+
+
+ 최대 필요시간
+ {{ overall.max_minutes }}분
+
+
+ 가능까지 부족
+
+ {% if overall.max_shortage_minutes %}-{{ overall.max_shortage_minutes }}{% else %}0{% endif %}분
+
+ {% if overall.daily_extra_minutes %}
+ 남은 {{ remaining_days }}일 동안 하루 +{{ overall.daily_extra_minutes }}분이면 가능
+ {% endif %}
+
+
+
+ 과목
+ + 전체 계획 보기 + +
+ {% for s in subject_summary %}
+
+
+
+ D-{{ s.d_day }}
+
+ {% endfor %}
+
+
+ {{ s.subject_name }}
+ 시험 {{ s.exam_date|date:"n월 j일" }}
+
+
+ {{ s.remaining_minutes }}분
+ 남은 예상시간
+
+
+ {{ s.remaining_task_count }}개
+ 남은 작업
+
+
+
+ 진행 상황
+ 완료 환산 기준 +
+
+ {% endif %}
+
+
+
+
+ 오늘 완료율
+ {{ progress.today_percent }}%
+
+
{{ progress.today_done_minutes }} / {{ progress.today_total_minutes }}분
+
+
+
+ 전체 진행률
+ {{ progress.total_percent }}%
+
+
{{ progress.total_done_minutes }} / {{ progress.total_minutes }}분
+
+
+ 남은 CORE 작업
+ {{ progress.core_left }}개
+ 필수 학습만 남긴 기준
+