Files
BABA_YAGA/BABA_YAGA_Updater/mappers/sheet_mapper.py
2026-06-07 20:24:36 +07:00

35 lines
1.2 KiB
Python

from core.models import Task, ProgressReport
class SheetMapper:
@staticmethod
def map_rows_to_report(rows: list[list]) -> ProgressReport:
tasks = []
current_phase = "General"
for row in rows:
if not row or len(row) < 2:
continue
# Detect Phase row (e.g. Row 1: ['', 'Phase 1: ...'])
# Phase rows usually have few columns or column 2/3 is empty
if len(row) <= 2 or (len(row) > 2 and row[2] == ""):
if row[1] and "Phase" in row[1]:
current_phase = row[1].strip()
continue
# Detect Task row (e.g. Row 2: ['', '1.1', 'Task Name', ...])
if len(row) >= 10:
task = Task(
phase=current_phase,
task_id=row[1],
task_name=row[2],
assignee=row[3],
start_date=row[4],
end_date=row[5],
progress_val=row[8],
status=row[9]
)
tasks.append(task)
return ProgressReport(tasks=tasks)