Skip to content

[planner] feasibility 화면에 과목별 데이터(subject_results) 추가 #90

Description

@wngjs8114

배경

FE2가 시험별 실현가능성 화면에 "과목별 카드"를 추가하려는데, 현재 feasibility View는 시험기간 전체 기준 판정(result)만 내려주고 있어서 과목 단위 데이터가 없다. 화면에서 과목별로 필요시간/작업 수/시험일을 보여주려면 View에서 과목별 데이터를 별도로 계산해서 내려줘야 한다.

작업 내용

planner/views.pyfeasibility() 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()contextsubject_results 키로 추가

주요 원칙 (제약사항)

  • 과목별 possible/risky/impossible 판정은 이번 범위에 포함하지 않는다. AvailableTime은 과목별이 아니라 시험기간 전체가 공유하는 가용시간이라, 과목마다 전체 가용시간을 그대로 넣고 calculate_feasibility()를 돌리면 실제와 다른 판정이 나올 수 있다.
  • 이번 이슈에서는 필요시간·작업 수·시험일 데이터만 제공하고, 과목별 상태 배지(가능/위험/불가능)가 화면에 꼭 필요하다면 별도로 "과목별 판정 기준"을 먼저 정하는 논의/이슈가 필요하다.

이번 이슈 범위 밖

  • 과목별 status(가능/위험/불가능) 계산 및 판정 로직
  • FE 화면(과목별 카드 UI) 구현 — FE2 담당

확인 기준

  • feasibility.html에서 subject_results로 과목별 순회 가능
  • 과목이 여러 개일 때 각 과목의 task_count/필요시간이 실제 StudyTask 데이터와 일치
  • 기존 result(전체 판정) 관련 동작에 영향 없음 (can_generate 등)
  • python manage.py test planner 전체 통과

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions