Inclui detalhes de coordenacoes e premiações no ranking paginado

This commit is contained in:
Frederico Castro
2025-12-10 15:25:28 -03:00
parent 23ecb8d30a
commit 71a8aa4417
3 changed files with 18 additions and 7 deletions

View File

@@ -102,9 +102,7 @@ async def ranking_paginado(
total_pages = (total + size - 1) // size total_pages = (total + size - 1) // size
consultores_schema = [ consultores_schema = [_consultor_resumo_from_ranking(c) for c in consultores]
_consultor_resumo_from_ranking(c) for c in consultores
]
return RankingPaginadoResponseSchema( return RankingPaginadoResponseSchema(
total=total, total=total,
@@ -117,9 +115,16 @@ async def ranking_paginado(
def _consultor_resumo_from_ranking(c): def _consultor_resumo_from_ranking(c):
consultoria = None consultoria = None
coordenacoes_capes = None
coordenacoes_programas = None
premiacoes = None
try: try:
jd = json.loads(c.json_detalhes) if c.json_detalhes else {} 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: except Exception:
consultoria = None consultoria = None
@@ -135,6 +140,9 @@ def _consultor_resumo_from_ranking(c):
ativo=c.ativo, ativo=c.ativo,
anos_atuacao=c.anos_atuacao, anos_atuacao=c.anos_atuacao,
consultoria=consultoria, consultoria=consultoria,
coordenacoes_capes=coordenacoes_capes,
coordenacoes_programas=coordenacoes_programas,
premiacoes=premiacoes,
) )

View File

@@ -15,6 +15,9 @@ class ConsultorRankingResumoSchema(BaseModel):
ativo: bool ativo: bool
anos_atuacao: float anos_atuacao: float
consultoria: Optional[dict] = None consultoria: Optional[dict] = None
coordenacoes_capes: Optional[list] = None
coordenacoes_programas: Optional[list] = None
premiacoes: Optional[list] = None
class RankingPaginadoResponseSchema(BaseModel): class RankingPaginadoResponseSchema(BaseModel):

View File

@@ -55,9 +55,9 @@ export const rankingService = {
primeiro_evento: consultoria.primeiro_evento || primeiroEvento.toISOString(), primeiro_evento: consultoria.primeiro_evento || primeiroEvento.toISOString(),
ultimo_evento: consultoria.ultimo_evento || null, ultimo_evento: consultoria.ultimo_evento || null,
}, },
coordenacoes_capes: [], coordenacoes_capes: c.coordenacoes_capes || [],
coordenacoes_programas: [], coordenacoes_programas: c.coordenacoes_programas || [],
premiacoes: [], premiacoes: c.premiacoes || [],
}; };
}); });