You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
planner 서비스 로직(scheduler, feasibility_checker, schedule_generator)은 이미 구현·머지됐지만, 이를 실제로 호출하는 View/URL이 전혀 없어서 화면에서 계획을 생성할 방법이 없다. 확정된 View 연결 우선순위(plan_generate → plan_complete → dashboard → today → ...)의 첫 단계.
작업 내용
planner:feasibility (GET): 시험기간 전체 가용시간·확정 작업 기준 가능성 판정 표시
planner:plan_generate (POST): 가능성 재검증 후 generate_schedule() 호출, 실패 시 사유별 안내
planner:plan_complete (GET): 생성된 DailyPlan 요약 표시
검증 로직
화면 버튼(RISKY/IMPOSSIBLE 비활성화)만 믿지 않고 서버에서 재검증 (POSSIBLE만 허용)
계획 배치용 가용시간은 오늘 이후만 사용 (과거 날짜 배치 방지)
과목이 여러 개인데 일부만 확정된 상태로 조용히 생성되는 것 방지 (_validate_task_readiness)
작업 0개, 예상시간 0인 작업, 미확정 작업 존재 시 생성 차단
generate_schedule()의 각 예외(ScheduleAlreadyExistsError, UnallocatedTasksError, MismatchedExamPeriodError, DuplicateTaskAllocationError)를 사유별로 안내
배경
planner 서비스 로직(scheduler, feasibility_checker, schedule_generator)은 이미 구현·머지됐지만, 이를 실제로 호출하는 View/URL이 전혀 없어서 화면에서 계획을 생성할 방법이 없다. 확정된 View 연결 우선순위(plan_generate → plan_complete → dashboard → today → ...)의 첫 단계.
작업 내용
planner:feasibility(GET): 시험기간 전체 가용시간·확정 작업 기준 가능성 판정 표시planner:plan_generate(POST): 가능성 재검증 후generate_schedule()호출, 실패 시 사유별 안내planner:plan_complete(GET): 생성된 DailyPlan 요약 표시검증 로직
RISKY/IMPOSSIBLE비활성화)만 믿지 않고 서버에서 재검증 (POSSIBLE만 허용)_validate_task_readiness)generate_schedule()의 각 예외(ScheduleAlreadyExistsError,UnallocatedTasksError,MismatchedExamPeriodError,DuplicateTaskAllocationError)를 사유별로 안내이번 이슈 범위 밖
테스트