Adiciona suporte ao Bloco B (Coordenacao PPG) e melhora tooltips

- Adiciona Bloco B no ConsultorCard com formula e detalhes
- Ajusta calculo de pontuacao total para incluir Bloco B
- Melhora tooltips com informacoes de teto e calculo detalhado
- Ajusta routes.py para preencher blocos corretamente
- Adiciona bloco_b no schema de ranking
This commit is contained in:
Frederico Castro
2025-12-14 20:31:47 -03:00
parent 0707c14e05
commit 7000268261
6 changed files with 112 additions and 11 deletions

View File

@@ -157,14 +157,44 @@ def _consultor_resumo_from_ranking(c):
except Exception:
pass
# Ajusta pontuação detalhada para refletir os valores atuais do ranking (incluindo COMPONENTE_B),
# já que o JSON pode ter sido gerado antes do job de preenchimento do Componente B.
pontuacao_total = float(c.pontuacao_total or 0)
bloco_a = float(c.componente_a or 0)
bloco_b = float(c.componente_b or 0)
bloco_c = float(c.componente_c or 0)
bloco_d = float(c.componente_d or 0)
if isinstance(pontuacao, dict):
pontuacao_ajustada = dict(pontuacao)
else:
pontuacao_ajustada = {}
def _ajustar_bloco(chave: str, total: float, letra: str):
b = pontuacao_ajustada.get(chave)
if isinstance(b, dict):
b2 = dict(b)
b2["bloco"] = letra
b2["total"] = total
pontuacao_ajustada[chave] = b2
else:
pontuacao_ajustada[chave] = {"bloco": letra, "total": total, "atuacoes": []}
_ajustar_bloco("bloco_a", bloco_a, "A")
_ajustar_bloco("bloco_b", bloco_b, "B")
_ajustar_bloco("bloco_c", bloco_c, "C")
_ajustar_bloco("bloco_d", bloco_d, "D")
pontuacao_ajustada["pontuacao_total"] = pontuacao_total
return ConsultorRankingResumoSchema(
id_pessoa=c.id_pessoa,
nome=c.nome,
posicao=c.posicao,
pontuacao_total=c.pontuacao_total,
bloco_a=c.componente_a,
bloco_c=c.componente_c,
bloco_d=c.componente_d,
pontuacao_total=pontuacao_total,
bloco_a=bloco_a,
bloco_b=bloco_b,
bloco_c=bloco_c,
bloco_d=bloco_d,
ativo=c.ativo,
anos_atuacao=c.anos_atuacao,
consultoria=consultoria,
@@ -176,7 +206,7 @@ def _consultor_resumo_from_ranking(c):
participacoes=participacoes,
orientacoes=orientacoes,
membros_banca=membros_banca,
pontuacao=pontuacao,
pontuacao=pontuacao_ajustada if pontuacao_ajustada else None,
)