#!/usr/bin/env python3
"""
Teacher Guide Generator for Math Curriculum
Combines all days' answer keys into a single teacher guide PDF.
"""
import os
import sys
sys.path.insert(0, os.path.dirname(__file__))
from math_helpers import TEACHER_CSS, tg_page_multi, tg_section_title, tg_sec, tg_note
from weasyprint import HTML
def generate_teacher_guide(week_dir: str, week_num: int, topic: str, day_data_list: list):
"""
Generate combined teacher guide for all 5 days.
Args:
week_dir: Path to week directory
week_num: Week number
topic: Overall week topic (e.g., "Place Value (Tens & Ones)")
day_data_list: List of 5 day_data dicts (Monday through Friday)
"""
days = ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"]
pages = []
for i, day_data in enumerate(day_data_list):
day_name = days[i]
day_topic = day_data.get("topic", f"{day_name} Practice")
activities = day_data.get("activities", [])
answers = day_data.get("answers", [])
# Build page content for this day
page_content = tg_section_title(f"{day_name}: {day_topic}")
# Add answers by activity
for j, answer in enumerate(answers, 1):
activity_title = activities[j-1].get("data", {}).get("title", f"Activity {j}") if j <= len(activities) else f"Section {j}"
page_content += tg_sec(j, activity_title, [answer] if isinstance(answer, str) else answer)
# Add page break between days (except last)
if i < len(day_data_list) - 1:
page_content += tg_note("Page break")
pages.append(page_content)
# Generate the teacher guide HTML
html_content = tg_page_multi(f"Week {week_num}", f"{topic} — Teacher Guide", *pages)
# Write PDF
pdf_path = os.path.join(week_dir, f"Week_{week_num}_Teacher_Guide.pdf")
HTML(string=html_content).write_pdf(pdf_path)
print(f"[ok] Week {week_num} Teacher Guide generated: {pdf_path}")