diff --git a/modules/features/commcoach/serviceCommcoachExport.py b/modules/features/commcoach/serviceCommcoachExport.py index ddc90825..1db6df4e 100644 --- a/modules/features/commcoach/serviceCommcoachExport.py +++ b/modules/features/commcoach/serviceCommcoachExport.py @@ -140,6 +140,19 @@ def buildSessionMarkdown(session: Dict[str, Any], messages: List[Dict[str, Any]] return "\n".join(lines) +class _DebugUtils: + """Minimal stub for services.utils required by RendererPdf.""" + @staticmethod + def debugLogToFile(message: str, context: str = "DEBUG"): + logger.debug(f"[{context}] {message}") + + +class _ServicesStub: + """Minimal services stub providing utils for RendererPdf.""" + def __init__(self): + self.utils = _DebugUtils() + + async def renderDossierPdf(context: Dict[str, Any], sessions: List[Dict[str, Any]], tasks: List[Dict[str, Any]], scores: List[Dict[str, Any]], aiService=None) -> Optional[bytes]: @@ -147,7 +160,7 @@ async def renderDossierPdf(context: Dict[str, Any], sessions: List[Dict[str, Any try: from modules.services.serviceGeneration.renderers.rendererPdf import RendererPdf extractedContent = _buildPdfContent(context, sessions, tasks, scores, isDossier=True) - renderer = RendererPdf() + renderer = RendererPdf(services=_ServicesStub()) docs = await renderer.render(extractedContent=extractedContent, title=context.get("title", "Dossier"), aiService=aiService) if docs and len(docs) > 0: return docs[0].documentData @@ -166,7 +179,7 @@ async def renderSessionPdf(session: Dict[str, Any], messages: List[Dict[str, Any from modules.services.serviceGeneration.renderers.rendererPdf import RendererPdf title = f"Session {_formatDate(session.get('startedAt'))}" extractedContent = _buildPdfContent({"title": title}, [session], tasks, scores, isDossier=False, messages=messages) - renderer = RendererPdf() + renderer = RendererPdf(services=_ServicesStub()) docs = await renderer.render(extractedContent=extractedContent, title=title, aiService=aiService) if docs and len(docs) > 0: return docs[0].documentData