feat: implementar novos critérios de pontuação da planilha atualizada
- Adicionar critérios diferenciados por papel (autor vs orientador) - Implementar INSC_INST_AUTOR, PREMIACAO_GP_AUTOR, PREMIACAO_AUTOR, MENCAO_AUTOR - Adicionar bônus de recorrência para inscrições, eventos e projetos - Corrigir lógica de bônus de consultoria (continuidade e retorno) - Ajustar extração de selos no frontend para novos códigos - Adicionar BOL_BPQ_NIVEL para bolsas sem nível especificado - Refinar cálculo de pontuação com novos tetos e multiplicadores
This commit is contained in:
@@ -51,6 +51,15 @@ def extrair_selos_entry(detalhes: Dict[str, Any]) -> Set[str]:
|
||||
tipo_prem = "PREMIO"
|
||||
elif codigo == "MENCAO":
|
||||
tipo_prem = "MENCAO"
|
||||
elif codigo == "PREMIACAO_GP_AUTOR":
|
||||
selos.add("AUTOR_GP")
|
||||
continue
|
||||
elif codigo == "PREMIACAO_AUTOR":
|
||||
selos.add("AUTOR_PREMIO")
|
||||
continue
|
||||
elif codigo == "MENCAO_AUTOR":
|
||||
selos.add("AUTOR_MENCAO")
|
||||
continue
|
||||
else:
|
||||
continue
|
||||
|
||||
|
||||
@@ -262,7 +262,7 @@ class ConsultorRepositoryImpl(ConsultorRepository):
|
||||
ano = inicio.year if inicio else datetime.now().year
|
||||
|
||||
is_institucional = "coordenador" in tipo_part.lower() or "ppg" in tipo_part.lower()
|
||||
codigo = "INSC_INST" if is_institucional else "INSC_AUTOR"
|
||||
codigo = "INSC_INST_AUTOR" if is_institucional else "INSC_AUTOR"
|
||||
|
||||
inscricoes.append(Inscricao(
|
||||
codigo=codigo,
|
||||
@@ -330,12 +330,23 @@ class ConsultorRepositoryImpl(ConsultorRepository):
|
||||
nome_lower = str(nome_premio).lower()
|
||||
tipo_norm = self._inferir_premiacao_tipo(f"{tipo_lower} {nome_lower}")
|
||||
|
||||
if tipo_norm == "GP":
|
||||
codigo = "PREMIACAO"
|
||||
elif tipo_norm == "MENCAO":
|
||||
codigo = "MENCAO"
|
||||
papel_lower = str(papel or "").lower()
|
||||
is_autor = "autor" in papel_lower
|
||||
|
||||
if is_autor:
|
||||
if tipo_norm == "GP":
|
||||
codigo = "PREMIACAO_GP_AUTOR"
|
||||
elif tipo_norm == "MENCAO":
|
||||
codigo = "MENCAO_AUTOR"
|
||||
else:
|
||||
codigo = "PREMIACAO_AUTOR"
|
||||
else:
|
||||
codigo = "PREMIACAO_GP"
|
||||
if tipo_norm == "GP":
|
||||
codigo = "PREMIACAO"
|
||||
elif tipo_norm == "MENCAO":
|
||||
codigo = "MENCAO"
|
||||
else:
|
||||
codigo = "PREMIACAO_GP"
|
||||
|
||||
premiacoes.append(Premiacao(
|
||||
codigo=codigo,
|
||||
@@ -358,7 +369,9 @@ class ConsultorRepositoryImpl(ConsultorRepository):
|
||||
area = dados.get("areaConhecimento", "") or ""
|
||||
|
||||
nivel_lower = nivel.lower()
|
||||
if "1d" in nivel_lower or "2" in nivel_lower:
|
||||
if not nivel_lower:
|
||||
codigo = "BOL_BPQ_NIVEL"
|
||||
elif "1d" in nivel_lower or "2" in nivel_lower:
|
||||
codigo = "BOL_BPQ_INT"
|
||||
else:
|
||||
codigo = "BOL_BPQ_SUP"
|
||||
|
||||
Reference in New Issue
Block a user