배경
FE2가 시험별 실현가능성 화면에 "과목별 카드"를 추가하려는데, 현재 feasibility View는 시험기간 전체 기준 판정(result)만 내려주고 있어서 과목 단위 데이터가 없다. 화면에서 과목별로 필요시간/작업 수/시험일을 보여주려면 View에서 과목별 데이터를 별도로 계산해서 내려줘야 한다.
작업 내용
planner/views.py의 feasibility() View에 subject_results context를 추가한다.
_build_subject_results(exam_period, tasks) 헬퍼 함수 신규 작성
exam_period.exams 기준으로 과목별로 순회하면서 아래 값을 계산
exam_id
subject_name
exam_date
task_count
required_min_minutes (estimated_min_minutes 합계)
required_recommended_minutes (estimated_max_minutes 합계)
feasibility()의 context에 subject_results 키로 추가
주요 원칙 (제약사항)
- 과목별
possible/risky/impossible 판정은 이번 범위에 포함하지 않는다. AvailableTime은 과목별이 아니라 시험기간 전체가 공유하는 가용시간이라, 과목마다 전체 가용시간을 그대로 넣고 calculate_feasibility()를 돌리면 실제와 다른 판정이 나올 수 있다.
- 이번 이슈에서는 필요시간·작업 수·시험일 데이터만 제공하고, 과목별 상태 배지(가능/위험/불가능)가 화면에 꼭 필요하다면 별도로 "과목별 판정 기준"을 먼저 정하는 논의/이슈가 필요하다.
이번 이슈 범위 밖
- 과목별
status(가능/위험/불가능) 계산 및 판정 로직
- FE 화면(과목별 카드 UI) 구현 — FE2 담당
확인 기준
배경
FE2가 시험별 실현가능성 화면에 "과목별 카드"를 추가하려는데, 현재
feasibilityView는 시험기간 전체 기준 판정(result)만 내려주고 있어서 과목 단위 데이터가 없다. 화면에서 과목별로 필요시간/작업 수/시험일을 보여주려면 View에서 과목별 데이터를 별도로 계산해서 내려줘야 한다.작업 내용
planner/views.py의feasibility()View에subject_resultscontext를 추가한다._build_subject_results(exam_period, tasks)헬퍼 함수 신규 작성exam_period.exams기준으로 과목별로 순회하면서 아래 값을 계산exam_idsubject_nameexam_datetask_countrequired_min_minutes(estimated_min_minutes합계)required_recommended_minutes(estimated_max_minutes합계)feasibility()의context에subject_results키로 추가주요 원칙 (제약사항)
possible/risky/impossible판정은 이번 범위에 포함하지 않는다.AvailableTime은 과목별이 아니라 시험기간 전체가 공유하는 가용시간이라, 과목마다 전체 가용시간을 그대로 넣고calculate_feasibility()를 돌리면 실제와 다른 판정이 나올 수 있다.이번 이슈 범위 밖
status(가능/위험/불가능) 계산 및 판정 로직확인 기준
feasibility.html에서subject_results로 과목별 순회 가능task_count/필요시간이 실제StudyTask데이터와 일치result(전체 판정) 관련 동작에 영향 없음 (can_generate등)python manage.py test planner전체 통과