From 71a8aa4417b99211142e6b5b0caa62d942d8bc43 Mon Sep 17 00:00:00 2001 From: Frederico Castro Date: Wed, 10 Dec 2025 15:25:28 -0300 Subject: [PATCH] =?UTF-8?q?Inclui=20detalhes=20de=20coordenacoes=20e=20pre?= =?UTF-8?q?mia=C3=A7=C3=B5es=20no=20ranking=20paginado?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/src/interface/api/routes.py | 16 ++++++++++++---- backend/src/interface/schemas/ranking_schema.py | 3 +++ frontend/src/services/api.js | 6 +++--- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/backend/src/interface/api/routes.py b/backend/src/interface/api/routes.py index 5d4bc97..5608463 100644 --- a/backend/src/interface/api/routes.py +++ b/backend/src/interface/api/routes.py @@ -102,9 +102,7 @@ async def ranking_paginado( total_pages = (total + size - 1) // size - consultores_schema = [ - _consultor_resumo_from_ranking(c) for c in consultores - ] + consultores_schema = [_consultor_resumo_from_ranking(c) for c in consultores] return RankingPaginadoResponseSchema( total=total, @@ -117,9 +115,16 @@ async def ranking_paginado( def _consultor_resumo_from_ranking(c): consultoria = None + coordenacoes_capes = None + coordenacoes_programas = None + premiacoes = None try: jd = json.loads(c.json_detalhes) if c.json_detalhes else {} - consultoria = jd.get("consultoria") if isinstance(jd, dict) else None + if isinstance(jd, dict): + consultoria = jd.get("consultoria") + coordenacoes_capes = jd.get("coordenacoes_capes") + coordenacoes_programas = jd.get("coordenacoes_programas") + premiacoes = jd.get("premiacoes") except Exception: consultoria = None @@ -135,6 +140,9 @@ def _consultor_resumo_from_ranking(c): ativo=c.ativo, anos_atuacao=c.anos_atuacao, consultoria=consultoria, + coordenacoes_capes=coordenacoes_capes, + coordenacoes_programas=coordenacoes_programas, + premiacoes=premiacoes, ) diff --git a/backend/src/interface/schemas/ranking_schema.py b/backend/src/interface/schemas/ranking_schema.py index a2b72f8..6ad1892 100644 --- a/backend/src/interface/schemas/ranking_schema.py +++ b/backend/src/interface/schemas/ranking_schema.py @@ -15,6 +15,9 @@ class ConsultorRankingResumoSchema(BaseModel): ativo: bool anos_atuacao: float consultoria: Optional[dict] = None + coordenacoes_capes: Optional[list] = None + coordenacoes_programas: Optional[list] = None + premiacoes: Optional[list] = None class RankingPaginadoResponseSchema(BaseModel): diff --git a/frontend/src/services/api.js b/frontend/src/services/api.js index 183e916..a89c109 100644 --- a/frontend/src/services/api.js +++ b/frontend/src/services/api.js @@ -55,9 +55,9 @@ export const rankingService = { primeiro_evento: consultoria.primeiro_evento || primeiroEvento.toISOString(), ultimo_evento: consultoria.ultimo_evento || null, }, - coordenacoes_capes: [], - coordenacoes_programas: [], - premiacoes: [], + coordenacoes_capes: c.coordenacoes_capes || [], + coordenacoes_programas: c.coordenacoes_programas || [], + premiacoes: c.premiacoes || [], }; });