feat: #68 복구안 비교 및 미리보기 화면 구현 - #82
Conversation
|
확인했습니다! 병합 전에 네 가지만 확인 부탁드려요. 1. messages 루프가 빠졌습니다
복구안 적용 시 가용시간 변경 등으로 적용에 실패하면 View에서 {% for message in messages %}
<div class="banner">{{ message }}</div>
{% endfor %}2. RecoveryPlan PK를 전달할 수 있어야 합니다 현재 하지만 실제 적용은 특정 라디오와 적용 버튼 모두 <input type="radio" name="recovery" value="{{ plan.id }}" ...>
<button class="btn btn-accent btn-lg"
type="button"
data-plan-id="{{ plan.id }}">
{{ plan.type_label }} 적용
</button>
3. 복구안이 0개 생성되는 경우도 처리 부탁드립니다 현재 1개만 생성되는 경우는 잘 처리되어 있는데, 실제 복구 로직에서는 분량 유지형과 핵심 집중형이 둘 다 생성되지 않을 수도 있습니다. 이 경우 현재 템플릿에서는 카드가 하나도 없는데 하단의
예시 문구는 4. 현재 화면은 예를 들어 50% 일부완료한 작업은 남은 50%가 복구 대상으로 넘어갑니다. 따라서 위 네 가지 반영되면 화면 구현 범위에서는 승인하겠습니다! |
|
피드백 4가지 모두 반영했습니다.
확인 부탁드립니다! |
|
추가 반영 확인했습니다! 기존에 말씀드린 4가지(messages, RecoveryPlan PK, 0개 empty state, PARTIAL 잔여분)는 모두 잘 반영된 것 확인했습니다. 실제 복구 로직과 연결해서 다시 보니 두 가지만 추가로 확인 부탁드릴게요. 1. 학습 속도 보정이 단일 과목/단일 speed_factor 기준으로 되어 있습니다 현재 화면은 따라서 오늘 미완료 작업이 여러 과목에 걸쳐 있으면 하나의 MVP에서는 과목 하나를 특정하기보다 예를 들어
처럼 전체 증가분만 보여주도록 context/문구를 단순화하는 방향이 좋을 것 같습니다. 2. 선택한 RecoveryPlan PK가 미리보기 버튼까지는 연결되지 않습니다 라디오 다만 현재 미리보기 버튼은 아직 View/URL 연결 자체는 BE 범위이므로 실제 URL 연결까지는 필요 없고, 선택된 radio의 이 두 가지까지 반영되면 화면 구현 범위에서는 머지해도 될 것 같습니다! 추가로 병합 차단 사항은 아니지만 |
|
|
최종 반영 확인했습니다! 병합 전에 두 가지만 추가 확인 부탁드려요.
다만 현재 RecoveryPlan.summary는 복구안 생성 시 저장하지 않고 있어서 summary를 모델 필드 그대로 사용하면 빈 값입니다. summary는 RecoveryPlan.summary라고 명시하기보다 View에서 구성해서 넘기는 한 줄 설명으로 주석만 수정 부탁드립니다. 추가로 병합 차단 사항은 아니지만 recovery_result.html의 “적용해도 나중에 다시 바꿀 수 있습니다”는 되돌리기 기능으로 오해할 수 있어서, “공부가 다시 밀리면 새 복구안을 만들 수 있습니다” 정도가 실제 정책에는 더 정확할 것 같습니다. 위 부분만 확인되면 화면 구현 PR은 머지해도 될 것 같습니다! |
- .claude/settings.json을 트래킹에서 제외하고 .gitignore에 추가 - recovery_card.html: summary가 RecoveryPlan.summary 그대로가 아니라 View에서 구성해서 넘겨야 함을 주석에 명시 - recovery_result.html: "적용해도 나중에 다시 바꿀 수 있습니다"가 되돌리기로 오해될 수 있어 "공부가 다시 밀리면 새 복구안을 만들 수 있습니다"로 수정
dev에 이미 .cph/가 추가돼 있어서 같은 자리에 .claude/를 추가하면 머지 충돌이 남. gitignore는 건드리지 않고 .claude 폴더 자체를 로컬에서 삭제하는 방식으로 정리.
배경
하루 종료(#65) 후 계획이 위험하거나 불가능해졌을 때 보여주는 화면이다.
PLAN B의 핵심 가치인 "실패 이후의 재계산"이 사용자에게 드러나는 지점으로,
두 복구안을 비교하고 승인해야만 미래 계획이 바뀐다.
구현 대상
planner/templates/planner/recovery_compare.html— 복구안 비교planner/templates/planner/recovery_result.html— 미리보기 및 적용planner/templates/planner/includes/recovery_card.html— 복구안 카드 (신규)static/css/planner.css,static/css/tokens.css— 스타일/유틸리티 클래스 추가static/js/planner.js— 복구안 선택 토글templates/includes/icons.html— 아이콘 추가화면 구성
maintain_volume) / 핵심 집중형(core_focus), 같은 축의 Fit Bar로 비교리뷰 반영 (셀프 체크 중 발견)
#i-clock,.sr-only,.ico-lg클래스/심볼이 참조만 되고 정의가 없던 것 추가 (.ico-lg는 기존task_row.html도 쓰고 있던 걸 이번에 같이 고침)plans.1로 인덱스 하드코딩되어 있던 것 →{% with selected_plan=plans|last %}로 루프의forloop.last기준과 일치시킴 (분량 유지형/핵심 집중형 중 하나가 용량 부족으로 생성되지 않아plans가 1개만 내려오는 케이스가 실제로 존재해서, 인덱스 하드코딩 시 빈 텍스트가 뜰 수 있었음)recovery_compare.html상단에 남아있던 디자인 툴 복붙 잔재 텍스트 제거주요 원칙 (기준안)
이번 PR 범위 밖
확인 기준
Close #68