fix: alinhar criterios 100% com documento PDF oficial
Backend: - Reescrever criterios_pontuacao.py com valores corretos do PDF - Adicionar Blocos B e E ao enum - Corrigir Base/Teto: AVAL_COMIS_GP (40), COORD_COMIS_PREMIO (40), COORD_COMIS_GP (50), PROJ teto (30) - Orientacoes/Bancas agora sao selos (Base=0, Teto=0) - CONS_FALECIDO agora pontua tempo (5 pts/ano) - Remover codigos obsoletos (PREMIACAO, MENCAO, BOL_BPQ_SUP/INT) - Usar apenas BOL_BPQ_NIVEL, PREMIACAO_*_AUTOR, MENCAO_AUTOR - Atualizar ranking_store.py e validar_ranking.py Frontend: - Atualizar ConsultorCard e CompararModal com codigos corretos - Adicionar logo CAPES em PNG com transparencia - Ajustar espacamento do header e tamanho das fontes - Mapear pasta public no docker-compose
This commit is contained in:
@@ -42,31 +42,31 @@ CRITERIOS_OFICIAIS = {
|
|||||||
"CAJ": {"base": 150, "teto": 370, "tempo": 8, "teto_tempo": 80, "bonus_atual": 20, "bonus_retorno": 15},
|
"CAJ": {"base": 150, "teto": 370, "tempo": 8, "teto_tempo": 80, "bonus_atual": 20, "bonus_retorno": 15},
|
||||||
"CAJ_MP": {"base": 120, "teto": 315, "tempo": 6, "teto_tempo": 60, "bonus_atual": 15, "bonus_retorno": 10},
|
"CAJ_MP": {"base": 120, "teto": 315, "tempo": 6, "teto_tempo": 60, "bonus_atual": 15, "bonus_retorno": 10},
|
||||||
"CAM": {"base": 100, "teto": 280, "tempo": 5, "teto_tempo": 50, "bonus_atual": 20, "bonus_retorno": 10},
|
"CAM": {"base": 100, "teto": 280, "tempo": 5, "teto_tempo": 50, "bonus_atual": 20, "bonus_retorno": 10},
|
||||||
"CONS_ATIVO": {"base": 150, "teto": 230, "tempo": 5, "teto_tempo": 50, "bonus_continuidade": 20, "bonus_retorno": 15},
|
"PPG_COORD": {"base": 0, "teto": 0, "tempo": 0, "teto_tempo": 0, "bonus_atual": 15, "bonus_retorno": 10, "bonus_continuidade": 15},
|
||||||
"CONS_HIST": {"base": 100, "teto": 230, "tempo": 5, "teto_tempo": 50, "bonus_continuidade": 20},
|
"CONS_ATIVO": {"base": 150, "teto": 230, "tempo": 5, "teto_tempo": 50, "bonus_atual": 20, "bonus_retorno": 15, "bonus_continuidade": 20},
|
||||||
"CONS_FALECIDO": {"base": 100, "teto": 230, "tempo": 0, "teto_tempo": 0, "bonus_continuidade": 20},
|
"CONS_HIST": {"base": 100, "teto": 230, "tempo": 5, "teto_tempo": 50, "bonus_retorno": 20, "bonus_continuidade": 20},
|
||||||
|
"CONS_FALECIDO": {"base": 100, "teto": 230, "tempo": 5, "teto_tempo": 50, "bonus_continuidade": 20},
|
||||||
"INSC_AUTOR": {"base": 10, "teto": 20},
|
"INSC_AUTOR": {"base": 10, "teto": 20},
|
||||||
"INSC_INST": {"base": 30, "teto": 60},
|
"INSC_INST_AUTOR": {"base": 20, "teto": 50},
|
||||||
"AVAL_COMIS_PREMIO": {"base": 30, "teto": 60},
|
"AVAL_COMIS_PREMIO": {"base": 30, "teto": 60},
|
||||||
"AVAL_COMIS_GP": {"base": 50, "teto": 80},
|
"AVAL_COMIS_GP": {"base": 40, "teto": 80},
|
||||||
"COORD_COMIS_PREMIO": {"base": 50, "teto": 100},
|
"COORD_COMIS_PREMIO": {"base": 40, "teto": 100},
|
||||||
"COORD_COMIS_GP": {"base": 60, "teto": 120},
|
"COORD_COMIS_GP": {"base": 50, "teto": 120},
|
||||||
"BOL_BPQ_SUPERIOR": {"base": 30, "teto": 60},
|
"BOL_BPQ_NIVEL": {"base": 30, "teto": 60},
|
||||||
"BOL_BPQ_INTERMEDIARIO": {"base": 50, "teto": 100},
|
"PREMIACAO_GP_AUTOR": {"base": 100, "teto": 300},
|
||||||
"PREMIACAO": {"base": 100, "teto": 180},
|
"PREMIACAO_AUTOR": {"base": 50, "teto": 150},
|
||||||
"PREMIACAO_GP": {"base": 50, "teto": 60},
|
"MENCAO_AUTOR": {"base": 30, "teto": 90},
|
||||||
"MENCAO": {"base": 30, "teto": 30},
|
|
||||||
"EVENTO": {"base": 1, "teto": 5},
|
"EVENTO": {"base": 1, "teto": 5},
|
||||||
"PROJ": {"base": 10, "teto": 40},
|
"PROJ": {"base": 10, "teto": 30},
|
||||||
"ORIENT_POS_DOC": {"base": 15, "teto": 100},
|
"ORIENT_POS_DOC": {"base": 0, "teto": 0},
|
||||||
"ORIENT_TESE": {"base": 10, "teto": 50},
|
"ORIENT_TESE": {"base": 0, "teto": 0},
|
||||||
"ORIENT_DISS": {"base": 5, "teto": 25},
|
"ORIENT_DISS": {"base": 0, "teto": 0},
|
||||||
"CO_ORIENT_POS_DOC": {"base": 7, "teto": 35},
|
"CO_ORIENT_POS_DOC": {"base": 0, "teto": 0},
|
||||||
"CO_ORIENT_TESE": {"base": 5, "teto": 25},
|
"CO_ORIENT_TESE": {"base": 0, "teto": 0},
|
||||||
"CO_ORIENT_DISS": {"base": 3, "teto": 15},
|
"CO_ORIENT_DISS": {"base": 0, "teto": 0},
|
||||||
"MB_BANCA_POS_DOC": {"base": 3, "teto": 15},
|
"MB_BANCA_POS_DOC": {"base": 0, "teto": 0},
|
||||||
"MB_BANCA_TESE": {"base": 3, "teto": 15},
|
"MB_BANCA_TESE": {"base": 0, "teto": 0},
|
||||||
"MB_BANCA_DISS": {"base": 2, "teto": 10},
|
"MB_BANCA_DISS": {"base": 0, "teto": 0},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -205,7 +205,6 @@ def verificar_criterios_codigo() -> Tuple[bool, List[str]]:
|
|||||||
|
|
||||||
for codigo, oficial in CRITERIOS_OFICIAIS.items():
|
for codigo, oficial in CRITERIOS_OFICIAIS.items():
|
||||||
if codigo not in CRITERIOS:
|
if codigo not in CRITERIOS:
|
||||||
if codigo not in ["BOL_BPQ_SUP", "BOL_BPQ_INT"]:
|
|
||||||
divergencias.append(f"{codigo}: não existe no código")
|
divergencias.append(f"{codigo}: não existe no código")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
|||||||
@@ -5,8 +5,10 @@ from enum import Enum
|
|||||||
|
|
||||||
class Bloco(Enum):
|
class Bloco(Enum):
|
||||||
A = "A"
|
A = "A"
|
||||||
|
B = "B"
|
||||||
C = "C"
|
C = "C"
|
||||||
D = "D"
|
D = "D"
|
||||||
|
E = "E"
|
||||||
|
|
||||||
|
|
||||||
class TipoAtuacao(Enum):
|
class TipoAtuacao(Enum):
|
||||||
@@ -33,6 +35,7 @@ class CriterioPontuacao:
|
|||||||
teto_recorrencia: int = 0
|
teto_recorrencia: int = 0
|
||||||
bonus_recorrencia_participacao: int = 0
|
bonus_recorrencia_participacao: int = 0
|
||||||
teto_recorrencia_participacao: int = 0
|
teto_recorrencia_participacao: int = 0
|
||||||
|
gera_selo: bool = False
|
||||||
|
|
||||||
|
|
||||||
CRITERIOS: Dict[str, CriterioPontuacao] = {
|
CRITERIOS: Dict[str, CriterioPontuacao] = {
|
||||||
@@ -86,17 +89,21 @@ CRITERIOS: Dict[str, CriterioPontuacao] = {
|
|||||||
),
|
),
|
||||||
"PPG_COORD": CriterioPontuacao(
|
"PPG_COORD": CriterioPontuacao(
|
||||||
codigo="PPG_COORD",
|
codigo="PPG_COORD",
|
||||||
bloco=Bloco.A,
|
bloco=Bloco.E,
|
||||||
tipo=TipoAtuacao.FUNCAO,
|
tipo=TipoAtuacao.FUNCAO,
|
||||||
base=0,
|
base=0,
|
||||||
teto=0,
|
teto=0,
|
||||||
pontua_tempo=True,
|
pontua_tempo=True,
|
||||||
multiplicador_tempo=0,
|
multiplicador_tempo=0,
|
||||||
teto_tempo=0,
|
teto_tempo=0,
|
||||||
|
bonus_atualidade=15,
|
||||||
|
bonus_retorno=10,
|
||||||
|
bonus_continuidade_8anos=15,
|
||||||
|
gera_selo=True,
|
||||||
),
|
),
|
||||||
"CONS_ATIVO": CriterioPontuacao(
|
"CONS_ATIVO": CriterioPontuacao(
|
||||||
codigo="CONS_ATIVO",
|
codigo="CONS_ATIVO",
|
||||||
bloco=Bloco.C,
|
bloco=Bloco.B,
|
||||||
tipo=TipoAtuacao.FUNCAO,
|
tipo=TipoAtuacao.FUNCAO,
|
||||||
base=150,
|
base=150,
|
||||||
teto=230,
|
teto=230,
|
||||||
@@ -109,7 +116,7 @@ CRITERIOS: Dict[str, CriterioPontuacao] = {
|
|||||||
),
|
),
|
||||||
"CONS_HIST": CriterioPontuacao(
|
"CONS_HIST": CriterioPontuacao(
|
||||||
codigo="CONS_HIST",
|
codigo="CONS_HIST",
|
||||||
bloco=Bloco.C,
|
bloco=Bloco.B,
|
||||||
tipo=TipoAtuacao.FUNCAO,
|
tipo=TipoAtuacao.FUNCAO,
|
||||||
base=100,
|
base=100,
|
||||||
teto=230,
|
teto=230,
|
||||||
@@ -121,18 +128,18 @@ CRITERIOS: Dict[str, CriterioPontuacao] = {
|
|||||||
),
|
),
|
||||||
"CONS_FALECIDO": CriterioPontuacao(
|
"CONS_FALECIDO": CriterioPontuacao(
|
||||||
codigo="CONS_FALECIDO",
|
codigo="CONS_FALECIDO",
|
||||||
bloco=Bloco.C,
|
bloco=Bloco.B,
|
||||||
tipo=TipoAtuacao.FUNCAO,
|
tipo=TipoAtuacao.FUNCAO,
|
||||||
base=100,
|
base=100,
|
||||||
teto=230,
|
teto=230,
|
||||||
pontua_tempo=False,
|
pontua_tempo=True,
|
||||||
multiplicador_tempo=0,
|
multiplicador_tempo=5,
|
||||||
teto_tempo=0,
|
teto_tempo=50,
|
||||||
bonus_continuidade_8anos=20,
|
bonus_continuidade_8anos=20,
|
||||||
),
|
),
|
||||||
"INSC_AUTOR": CriterioPontuacao(
|
"INSC_AUTOR": CriterioPontuacao(
|
||||||
codigo="INSC_AUTOR",
|
codigo="INSC_AUTOR",
|
||||||
bloco=Bloco.D,
|
bloco=Bloco.C,
|
||||||
tipo=TipoAtuacao.FUNCAO,
|
tipo=TipoAtuacao.FUNCAO,
|
||||||
base=10,
|
base=10,
|
||||||
teto=20,
|
teto=20,
|
||||||
@@ -141,23 +148,16 @@ CRITERIOS: Dict[str, CriterioPontuacao] = {
|
|||||||
),
|
),
|
||||||
"INSC_INST_AUTOR": CriterioPontuacao(
|
"INSC_INST_AUTOR": CriterioPontuacao(
|
||||||
codigo="INSC_INST_AUTOR",
|
codigo="INSC_INST_AUTOR",
|
||||||
bloco=Bloco.D,
|
bloco=Bloco.C,
|
||||||
tipo=TipoAtuacao.FUNCAO,
|
tipo=TipoAtuacao.FUNCAO,
|
||||||
base=20,
|
base=20,
|
||||||
teto=50,
|
teto=50,
|
||||||
bonus_recorrencia_participacao=5,
|
bonus_recorrencia_participacao=5,
|
||||||
teto_recorrencia_participacao=10,
|
teto_recorrencia_participacao=10,
|
||||||
),
|
),
|
||||||
"INSC_INST": CriterioPontuacao(
|
|
||||||
codigo="INSC_INST",
|
|
||||||
bloco=Bloco.D,
|
|
||||||
tipo=TipoAtuacao.FUNCAO,
|
|
||||||
base=30,
|
|
||||||
teto=60,
|
|
||||||
),
|
|
||||||
"AVAL_COMIS_PREMIO": CriterioPontuacao(
|
"AVAL_COMIS_PREMIO": CriterioPontuacao(
|
||||||
codigo="AVAL_COMIS_PREMIO",
|
codigo="AVAL_COMIS_PREMIO",
|
||||||
bloco=Bloco.D,
|
bloco=Bloco.C,
|
||||||
tipo=TipoAtuacao.PAPEL,
|
tipo=TipoAtuacao.PAPEL,
|
||||||
base=30,
|
base=30,
|
||||||
teto=60,
|
teto=60,
|
||||||
@@ -166,107 +166,62 @@ CRITERIOS: Dict[str, CriterioPontuacao] = {
|
|||||||
),
|
),
|
||||||
"AVAL_COMIS_GP": CriterioPontuacao(
|
"AVAL_COMIS_GP": CriterioPontuacao(
|
||||||
codigo="AVAL_COMIS_GP",
|
codigo="AVAL_COMIS_GP",
|
||||||
bloco=Bloco.D,
|
bloco=Bloco.C,
|
||||||
tipo=TipoAtuacao.PAPEL,
|
tipo=TipoAtuacao.PAPEL,
|
||||||
base=50,
|
base=40,
|
||||||
teto=80,
|
teto=80,
|
||||||
bonus_recorrencia_anual=3,
|
bonus_recorrencia_anual=3,
|
||||||
teto_recorrencia=20,
|
teto_recorrencia=20,
|
||||||
),
|
),
|
||||||
"COORD_COMIS_PREMIO": CriterioPontuacao(
|
"COORD_COMIS_PREMIO": CriterioPontuacao(
|
||||||
codigo="COORD_COMIS_PREMIO",
|
codigo="COORD_COMIS_PREMIO",
|
||||||
bloco=Bloco.D,
|
bloco=Bloco.C,
|
||||||
tipo=TipoAtuacao.FUNCAO,
|
tipo=TipoAtuacao.FUNCAO,
|
||||||
base=50,
|
base=40,
|
||||||
teto=100,
|
teto=100,
|
||||||
bonus_recorrencia_anual=4,
|
bonus_recorrencia_anual=4,
|
||||||
teto_recorrencia=20,
|
teto_recorrencia=20,
|
||||||
),
|
),
|
||||||
"COORD_COMIS_GP": CriterioPontuacao(
|
"COORD_COMIS_GP": CriterioPontuacao(
|
||||||
codigo="COORD_COMIS_GP",
|
codigo="COORD_COMIS_GP",
|
||||||
bloco=Bloco.D,
|
bloco=Bloco.C,
|
||||||
tipo=TipoAtuacao.FUNCAO,
|
tipo=TipoAtuacao.FUNCAO,
|
||||||
base=60,
|
base=50,
|
||||||
teto=120,
|
teto=120,
|
||||||
bonus_recorrencia_anual=6,
|
bonus_recorrencia_anual=6,
|
||||||
teto_recorrencia=20,
|
teto_recorrencia=20,
|
||||||
),
|
),
|
||||||
"BOL_BPQ_SUPERIOR": CriterioPontuacao(
|
|
||||||
codigo="BOL_BPQ_SUPERIOR",
|
|
||||||
bloco=Bloco.D,
|
|
||||||
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
|
||||||
base=30,
|
|
||||||
teto=60,
|
|
||||||
),
|
|
||||||
"BOL_BPQ_INTERMEDIARIO": CriterioPontuacao(
|
|
||||||
codigo="BOL_BPQ_INTERMEDIARIO",
|
|
||||||
bloco=Bloco.D,
|
|
||||||
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
|
||||||
base=50,
|
|
||||||
teto=100,
|
|
||||||
),
|
|
||||||
"BOL_BPQ_SUP": CriterioPontuacao(
|
|
||||||
codigo="BOL_BPQ_SUP",
|
|
||||||
bloco=Bloco.D,
|
|
||||||
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
|
||||||
base=30,
|
|
||||||
teto=60,
|
|
||||||
),
|
|
||||||
"BOL_BPQ_INT": CriterioPontuacao(
|
|
||||||
codigo="BOL_BPQ_INT",
|
|
||||||
bloco=Bloco.D,
|
|
||||||
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
|
||||||
base=50,
|
|
||||||
teto=100,
|
|
||||||
),
|
|
||||||
"BOL_BPQ_NIVEL": CriterioPontuacao(
|
"BOL_BPQ_NIVEL": CriterioPontuacao(
|
||||||
codigo="BOL_BPQ_NIVEL",
|
codigo="BOL_BPQ_NIVEL",
|
||||||
bloco=Bloco.D,
|
bloco=Bloco.D,
|
||||||
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
||||||
base=30,
|
base=30,
|
||||||
teto=60,
|
teto=60,
|
||||||
),
|
gera_selo=True,
|
||||||
"PREMIACAO": CriterioPontuacao(
|
|
||||||
codigo="PREMIACAO",
|
|
||||||
bloco=Bloco.D,
|
|
||||||
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
|
||||||
base=100,
|
|
||||||
teto=180,
|
|
||||||
),
|
|
||||||
"PREMIACAO_GP": CriterioPontuacao(
|
|
||||||
codigo="PREMIACAO_GP",
|
|
||||||
bloco=Bloco.D,
|
|
||||||
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
|
||||||
base=50,
|
|
||||||
teto=60,
|
|
||||||
),
|
),
|
||||||
"PREMIACAO_GP_AUTOR": CriterioPontuacao(
|
"PREMIACAO_GP_AUTOR": CriterioPontuacao(
|
||||||
codigo="PREMIACAO_GP_AUTOR",
|
codigo="PREMIACAO_GP_AUTOR",
|
||||||
bloco=Bloco.D,
|
bloco=Bloco.C,
|
||||||
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
||||||
base=100,
|
base=100,
|
||||||
teto=300,
|
teto=300,
|
||||||
|
gera_selo=True,
|
||||||
),
|
),
|
||||||
"PREMIACAO_AUTOR": CriterioPontuacao(
|
"PREMIACAO_AUTOR": CriterioPontuacao(
|
||||||
codigo="PREMIACAO_AUTOR",
|
codigo="PREMIACAO_AUTOR",
|
||||||
bloco=Bloco.D,
|
bloco=Bloco.C,
|
||||||
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
||||||
base=50,
|
base=50,
|
||||||
teto=150,
|
teto=150,
|
||||||
),
|
gera_selo=True,
|
||||||
"MENCAO": CriterioPontuacao(
|
|
||||||
codigo="MENCAO",
|
|
||||||
bloco=Bloco.D,
|
|
||||||
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
|
||||||
base=30,
|
|
||||||
teto=30,
|
|
||||||
),
|
),
|
||||||
"MENCAO_AUTOR": CriterioPontuacao(
|
"MENCAO_AUTOR": CriterioPontuacao(
|
||||||
codigo="MENCAO_AUTOR",
|
codigo="MENCAO_AUTOR",
|
||||||
bloco=Bloco.D,
|
bloco=Bloco.C,
|
||||||
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
||||||
base=30,
|
base=30,
|
||||||
teto=90,
|
teto=90,
|
||||||
|
gera_selo=True,
|
||||||
),
|
),
|
||||||
"EVENTO": CriterioPontuacao(
|
"EVENTO": CriterioPontuacao(
|
||||||
codigo="EVENTO",
|
codigo="EVENTO",
|
||||||
@@ -282,72 +237,193 @@ CRITERIOS: Dict[str, CriterioPontuacao] = {
|
|||||||
bloco=Bloco.D,
|
bloco=Bloco.D,
|
||||||
tipo=TipoAtuacao.PARTICIPACAO,
|
tipo=TipoAtuacao.PARTICIPACAO,
|
||||||
base=10,
|
base=10,
|
||||||
teto=40,
|
teto=30,
|
||||||
bonus_recorrencia_participacao=2,
|
bonus_recorrencia_participacao=2,
|
||||||
teto_recorrencia_participacao=10,
|
teto_recorrencia_participacao=10,
|
||||||
),
|
),
|
||||||
|
"IDIOMA_BILINGUE": CriterioPontuacao(
|
||||||
|
codigo="IDIOMA_BILINGUE",
|
||||||
|
bloco=Bloco.D,
|
||||||
|
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
||||||
|
base=0,
|
||||||
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
|
),
|
||||||
|
"IDIOMA_MULTILINGUE": CriterioPontuacao(
|
||||||
|
codigo="IDIOMA_MULTILINGUE",
|
||||||
|
bloco=Bloco.D,
|
||||||
|
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
||||||
|
base=0,
|
||||||
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
|
),
|
||||||
|
"TITULACAO_MESTRE": CriterioPontuacao(
|
||||||
|
codigo="TITULACAO_MESTRE",
|
||||||
|
bloco=Bloco.D,
|
||||||
|
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
||||||
|
base=0,
|
||||||
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
|
),
|
||||||
|
"TITULACAO_DOUTOR": CriterioPontuacao(
|
||||||
|
codigo="TITULACAO_DOUTOR",
|
||||||
|
bloco=Bloco.D,
|
||||||
|
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
||||||
|
base=0,
|
||||||
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
|
),
|
||||||
|
"TITULACAO_POS_DOUTOR": CriterioPontuacao(
|
||||||
|
codigo="TITULACAO_POS_DOUTOR",
|
||||||
|
bloco=Bloco.D,
|
||||||
|
tipo=TipoAtuacao.COMPETENCIA_RECONHECIMENTO,
|
||||||
|
base=0,
|
||||||
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
|
),
|
||||||
"ORIENT_POS_DOC": CriterioPontuacao(
|
"ORIENT_POS_DOC": CriterioPontuacao(
|
||||||
codigo="ORIENT_POS_DOC",
|
codigo="ORIENT_POS_DOC",
|
||||||
bloco=Bloco.D,
|
bloco=Bloco.C,
|
||||||
tipo=TipoAtuacao.PARTICIPACAO,
|
tipo=TipoAtuacao.PARTICIPACAO,
|
||||||
base=15,
|
base=0,
|
||||||
teto=100,
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
|
),
|
||||||
|
"ORIENT_POS_DOC_PREM": CriterioPontuacao(
|
||||||
|
codigo="ORIENT_POS_DOC_PREM",
|
||||||
|
bloco=Bloco.C,
|
||||||
|
tipo=TipoAtuacao.PARTICIPACAO,
|
||||||
|
base=0,
|
||||||
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
),
|
),
|
||||||
"ORIENT_TESE": CriterioPontuacao(
|
"ORIENT_TESE": CriterioPontuacao(
|
||||||
codigo="ORIENT_TESE",
|
codigo="ORIENT_TESE",
|
||||||
bloco=Bloco.D,
|
bloco=Bloco.C,
|
||||||
tipo=TipoAtuacao.PARTICIPACAO,
|
tipo=TipoAtuacao.PARTICIPACAO,
|
||||||
base=10,
|
base=0,
|
||||||
teto=50,
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
|
),
|
||||||
|
"ORIENT_TESE_PREM": CriterioPontuacao(
|
||||||
|
codigo="ORIENT_TESE_PREM",
|
||||||
|
bloco=Bloco.C,
|
||||||
|
tipo=TipoAtuacao.PARTICIPACAO,
|
||||||
|
base=0,
|
||||||
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
),
|
),
|
||||||
"ORIENT_DISS": CriterioPontuacao(
|
"ORIENT_DISS": CriterioPontuacao(
|
||||||
codigo="ORIENT_DISS",
|
codigo="ORIENT_DISS",
|
||||||
bloco=Bloco.D,
|
bloco=Bloco.C,
|
||||||
tipo=TipoAtuacao.PARTICIPACAO,
|
tipo=TipoAtuacao.PARTICIPACAO,
|
||||||
base=5,
|
base=0,
|
||||||
teto=25,
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
|
),
|
||||||
|
"ORIENT_DISS_PREM": CriterioPontuacao(
|
||||||
|
codigo="ORIENT_DISS_PREM",
|
||||||
|
bloco=Bloco.C,
|
||||||
|
tipo=TipoAtuacao.PARTICIPACAO,
|
||||||
|
base=0,
|
||||||
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
),
|
),
|
||||||
"CO_ORIENT_POS_DOC": CriterioPontuacao(
|
"CO_ORIENT_POS_DOC": CriterioPontuacao(
|
||||||
codigo="CO_ORIENT_POS_DOC",
|
codigo="CO_ORIENT_POS_DOC",
|
||||||
bloco=Bloco.D,
|
bloco=Bloco.C,
|
||||||
tipo=TipoAtuacao.PARTICIPACAO,
|
tipo=TipoAtuacao.PARTICIPACAO,
|
||||||
base=7,
|
base=0,
|
||||||
teto=35,
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
|
),
|
||||||
|
"CO_ORIENT_POS_DOC_PREM": CriterioPontuacao(
|
||||||
|
codigo="CO_ORIENT_POS_DOC_PREM",
|
||||||
|
bloco=Bloco.C,
|
||||||
|
tipo=TipoAtuacao.PARTICIPACAO,
|
||||||
|
base=0,
|
||||||
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
),
|
),
|
||||||
"CO_ORIENT_TESE": CriterioPontuacao(
|
"CO_ORIENT_TESE": CriterioPontuacao(
|
||||||
codigo="CO_ORIENT_TESE",
|
codigo="CO_ORIENT_TESE",
|
||||||
bloco=Bloco.D,
|
bloco=Bloco.C,
|
||||||
tipo=TipoAtuacao.PARTICIPACAO,
|
tipo=TipoAtuacao.PARTICIPACAO,
|
||||||
base=5,
|
base=0,
|
||||||
teto=25,
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
|
),
|
||||||
|
"CO_ORIENT_TESE_PREM": CriterioPontuacao(
|
||||||
|
codigo="CO_ORIENT_TESE_PREM",
|
||||||
|
bloco=Bloco.C,
|
||||||
|
tipo=TipoAtuacao.PARTICIPACAO,
|
||||||
|
base=0,
|
||||||
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
),
|
),
|
||||||
"CO_ORIENT_DISS": CriterioPontuacao(
|
"CO_ORIENT_DISS": CriterioPontuacao(
|
||||||
codigo="CO_ORIENT_DISS",
|
codigo="CO_ORIENT_DISS",
|
||||||
bloco=Bloco.D,
|
bloco=Bloco.C,
|
||||||
tipo=TipoAtuacao.PARTICIPACAO,
|
tipo=TipoAtuacao.PARTICIPACAO,
|
||||||
base=3,
|
base=0,
|
||||||
teto=15,
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
|
),
|
||||||
|
"CO_ORIENT_DISS_PREM": CriterioPontuacao(
|
||||||
|
codigo="CO_ORIENT_DISS_PREM",
|
||||||
|
bloco=Bloco.C,
|
||||||
|
tipo=TipoAtuacao.PARTICIPACAO,
|
||||||
|
base=0,
|
||||||
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
),
|
),
|
||||||
"MB_BANCA_POS_DOC": CriterioPontuacao(
|
"MB_BANCA_POS_DOC": CriterioPontuacao(
|
||||||
codigo="MB_BANCA_POS_DOC",
|
codigo="MB_BANCA_POS_DOC",
|
||||||
bloco=Bloco.D,
|
bloco=Bloco.C,
|
||||||
tipo=TipoAtuacao.PARTICIPACAO,
|
tipo=TipoAtuacao.PARTICIPACAO,
|
||||||
base=3,
|
base=0,
|
||||||
teto=15,
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
|
),
|
||||||
|
"MB_BANCA_POS_DOC_PREM": CriterioPontuacao(
|
||||||
|
codigo="MB_BANCA_POS_DOC_PREM",
|
||||||
|
bloco=Bloco.C,
|
||||||
|
tipo=TipoAtuacao.PARTICIPACAO,
|
||||||
|
base=0,
|
||||||
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
),
|
),
|
||||||
"MB_BANCA_TESE": CriterioPontuacao(
|
"MB_BANCA_TESE": CriterioPontuacao(
|
||||||
codigo="MB_BANCA_TESE",
|
codigo="MB_BANCA_TESE",
|
||||||
bloco=Bloco.D,
|
bloco=Bloco.C,
|
||||||
tipo=TipoAtuacao.PARTICIPACAO,
|
tipo=TipoAtuacao.PARTICIPACAO,
|
||||||
base=3,
|
base=0,
|
||||||
teto=15,
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
|
),
|
||||||
|
"MB_BANCA_TESE_PREM": CriterioPontuacao(
|
||||||
|
codigo="MB_BANCA_TESE_PREM",
|
||||||
|
bloco=Bloco.C,
|
||||||
|
tipo=TipoAtuacao.PARTICIPACAO,
|
||||||
|
base=0,
|
||||||
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
),
|
),
|
||||||
"MB_BANCA_DISS": CriterioPontuacao(
|
"MB_BANCA_DISS": CriterioPontuacao(
|
||||||
codigo="MB_BANCA_DISS",
|
codigo="MB_BANCA_DISS",
|
||||||
bloco=Bloco.D,
|
bloco=Bloco.C,
|
||||||
tipo=TipoAtuacao.PARTICIPACAO,
|
tipo=TipoAtuacao.PARTICIPACAO,
|
||||||
base=2,
|
base=0,
|
||||||
teto=10,
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
|
),
|
||||||
|
"MB_BANCA_DISS_PREM": CriterioPontuacao(
|
||||||
|
codigo="MB_BANCA_DISS_PREM",
|
||||||
|
bloco=Bloco.C,
|
||||||
|
tipo=TipoAtuacao.PARTICIPACAO,
|
||||||
|
base=0,
|
||||||
|
teto=0,
|
||||||
|
gera_selo=True,
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -42,33 +42,14 @@ def extrair_selos_entry(detalhes: Dict[str, Any]) -> Set[str]:
|
|||||||
selos.add("BPQ")
|
selos.add("BPQ")
|
||||||
|
|
||||||
for prem in detalhes.get("premiacoes", []):
|
for prem in detalhes.get("premiacoes", []):
|
||||||
papel = (prem.get("papel") or "").lower()
|
|
||||||
codigo = prem.get("codigo", "")
|
codigo = prem.get("codigo", "")
|
||||||
|
|
||||||
if codigo == "PREMIACAO":
|
if codigo == "PREMIACAO_GP_AUTOR":
|
||||||
tipo_prem = "GP"
|
|
||||||
elif codigo == "PREMIACAO_GP":
|
|
||||||
tipo_prem = "PREMIO"
|
|
||||||
elif codigo == "MENCAO":
|
|
||||||
tipo_prem = "MENCAO"
|
|
||||||
elif codigo == "PREMIACAO_GP_AUTOR":
|
|
||||||
selos.add("AUTOR_GP")
|
selos.add("AUTOR_GP")
|
||||||
continue
|
|
||||||
elif codigo == "PREMIACAO_AUTOR":
|
elif codigo == "PREMIACAO_AUTOR":
|
||||||
selos.add("AUTOR_PREMIO")
|
selos.add("AUTOR_PREMIO")
|
||||||
continue
|
|
||||||
elif codigo == "MENCAO_AUTOR":
|
elif codigo == "MENCAO_AUTOR":
|
||||||
selos.add("AUTOR_MENCAO")
|
selos.add("AUTOR_MENCAO")
|
||||||
continue
|
|
||||||
else:
|
|
||||||
continue
|
|
||||||
|
|
||||||
if "autor" in papel:
|
|
||||||
selos.add(f"AUTOR_{tipo_prem}")
|
|
||||||
elif "orientador" in papel:
|
|
||||||
selos.add(f"ORIENT_{tipo_prem}")
|
|
||||||
elif "coorientador" in papel or "co-orientador" in papel:
|
|
||||||
selos.add(f"COORIENT_{tipo_prem}")
|
|
||||||
|
|
||||||
for orient in detalhes.get("orientacoes", []):
|
for orient in detalhes.get("orientacoes", []):
|
||||||
codigo = orient.get("codigo", "")
|
codigo = orient.get("codigo", "")
|
||||||
|
|||||||
@@ -330,23 +330,12 @@ class ConsultorRepositoryImpl(ConsultorRepository):
|
|||||||
nome_lower = str(nome_premio).lower()
|
nome_lower = str(nome_premio).lower()
|
||||||
tipo_norm = self._inferir_premiacao_tipo(f"{tipo_lower} {nome_lower}")
|
tipo_norm = self._inferir_premiacao_tipo(f"{tipo_lower} {nome_lower}")
|
||||||
|
|
||||||
papel_lower = str(papel or "").lower()
|
|
||||||
is_autor = "autor" in papel_lower
|
|
||||||
|
|
||||||
if is_autor:
|
|
||||||
if tipo_norm == "GP":
|
if tipo_norm == "GP":
|
||||||
codigo = "PREMIACAO_GP_AUTOR"
|
codigo = "PREMIACAO_GP_AUTOR"
|
||||||
elif tipo_norm == "MENCAO":
|
elif tipo_norm == "MENCAO":
|
||||||
codigo = "MENCAO_AUTOR"
|
codigo = "MENCAO_AUTOR"
|
||||||
else:
|
else:
|
||||||
codigo = "PREMIACAO_AUTOR"
|
codigo = "PREMIACAO_AUTOR"
|
||||||
else:
|
|
||||||
if tipo_norm == "GP":
|
|
||||||
codigo = "PREMIACAO"
|
|
||||||
elif tipo_norm == "MENCAO":
|
|
||||||
codigo = "MENCAO"
|
|
||||||
else:
|
|
||||||
codigo = "PREMIACAO_GP"
|
|
||||||
|
|
||||||
premiacoes.append(Premiacao(
|
premiacoes.append(Premiacao(
|
||||||
codigo=codigo,
|
codigo=codigo,
|
||||||
@@ -368,16 +357,8 @@ class ConsultorRepositoryImpl(ConsultorRepository):
|
|||||||
nivel = dados.get("nivel", "") or dados.get("categoria", "") or ""
|
nivel = dados.get("nivel", "") or dados.get("categoria", "") or ""
|
||||||
area = dados.get("areaConhecimento", "") or ""
|
area = dados.get("areaConhecimento", "") or ""
|
||||||
|
|
||||||
nivel_lower = 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"
|
|
||||||
|
|
||||||
bolsas.append(BolsaCNPQ(
|
bolsas.append(BolsaCNPQ(
|
||||||
codigo=codigo,
|
codigo="BOL_BPQ_NIVEL",
|
||||||
nivel=nivel,
|
nivel=nivel,
|
||||||
area=area,
|
area=area,
|
||||||
))
|
))
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ services:
|
|||||||
- VITE_HOST_ATUACAPES=${HOST_ATUACAPES:-https://atuacapes.capes.gov.br}
|
- VITE_HOST_ATUACAPES=${HOST_ATUACAPES:-https://atuacapes.capes.gov.br}
|
||||||
volumes:
|
volumes:
|
||||||
- ./frontend/src:/app/src
|
- ./frontend/src:/app/src
|
||||||
|
- ./frontend/public:/app/public
|
||||||
- ./frontend/index.html:/app/index.html
|
- ./frontend/index.html:/app/index.html
|
||||||
- ./frontend/vite.config.js:/app/vite.config.js
|
- ./frontend/vite.config.js:/app/vite.config.js
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
|||||||
BIN
frontend/public/logo_capes.png
Normal file
BIN
frontend/public/logo_capes.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 36 KiB |
@@ -41,9 +41,9 @@ const gerarSelos = (consultor) => {
|
|||||||
).length;
|
).length;
|
||||||
|
|
||||||
const addPremSelo = (papel, codBase, seloGP, seloPremio, seloMencao) => {
|
const addPremSelo = (papel, codBase, seloGP, seloPremio, seloMencao) => {
|
||||||
const gp = contarPrem(papel, 'PREMIACAO');
|
const gp = contarPrem(papel, 'PREMIACAO_GP_AUTOR');
|
||||||
const premio = contarPrem(papel, 'PREMIACAO_GP');
|
const premio = contarPrem(papel, 'PREMIACAO_AUTOR');
|
||||||
const mencao = contarPrem(papel, 'MENCAO');
|
const mencao = contarPrem(papel, 'MENCAO_AUTOR');
|
||||||
if (gp > 0) selos.push({ ...seloGP, qtd: gp });
|
if (gp > 0) selos.push({ ...seloGP, qtd: gp });
|
||||||
if (premio > 0) selos.push({ ...seloPremio, qtd: premio });
|
if (premio > 0) selos.push({ ...seloPremio, qtd: premio });
|
||||||
if (mencao > 0) selos.push({ ...seloMencao, qtd: mencao });
|
if (mencao > 0) selos.push({ ...seloMencao, qtd: mencao });
|
||||||
|
|||||||
@@ -474,6 +474,9 @@
|
|||||||
.list-item .muted {
|
.list-item .muted {
|
||||||
color: var(--muted);
|
color: var(--muted);
|
||||||
font-size: 0.8rem;
|
font-size: 0.8rem;
|
||||||
|
margin-left: auto;
|
||||||
|
text-align: right;
|
||||||
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
.list-item .pontos {
|
.list-item .pontos {
|
||||||
|
|||||||
@@ -55,9 +55,9 @@ const gerarSelos = (consultor) => {
|
|||||||
|
|
||||||
const gerarSelosPorPapel = (papel, seloGP, seloPremio, seloMencao, hintPrefix) => {
|
const gerarSelosPorPapel = (papel, seloGP, seloPremio, seloMencao, hintPrefix) => {
|
||||||
const lista = premiacoes.filter((p) => (p.papel || '').toString().toLowerCase() === papel.toLowerCase());
|
const lista = premiacoes.filter((p) => (p.papel || '').toString().toLowerCase() === papel.toLowerCase());
|
||||||
const gp = lista.filter((p) => ['PREMIACAO', 'PREMIACAO_GP_AUTOR'].includes(p.codigo)).length;
|
const gp = lista.filter((p) => p.codigo === 'PREMIACAO_GP_AUTOR').length;
|
||||||
const premio = lista.filter((p) => ['PREMIACAO_GP', 'PREMIACAO_AUTOR'].includes(p.codigo)).length;
|
const premio = lista.filter((p) => p.codigo === 'PREMIACAO_AUTOR').length;
|
||||||
const mencao = lista.filter((p) => ['MENCAO', 'MENCAO_AUTOR'].includes(p.codigo)).length;
|
const mencao = lista.filter((p) => p.codigo === 'MENCAO_AUTOR').length;
|
||||||
|
|
||||||
if (gp > 0) selos.push({ ...seloGP, qtd: gp, hint: `${hintPrefix} - Grande Prêmio` });
|
if (gp > 0) selos.push({ ...seloGP, qtd: gp, hint: `${hintPrefix} - Grande Prêmio` });
|
||||||
if (premio > 0) selos.push({ ...seloPremio, qtd: premio, hint: `${hintPrefix} - Prêmio` });
|
if (premio > 0) selos.push({ ...seloPremio, qtd: premio, hint: `${hintPrefix} - Prêmio` });
|
||||||
@@ -129,58 +129,46 @@ const FORMULAS = {
|
|||||||
},
|
},
|
||||||
bloco_d: {
|
bloco_d: {
|
||||||
titulo: 'Premiacoes/Avaliacoes',
|
titulo: 'Premiacoes/Avaliacoes',
|
||||||
descricao: 'Premiações: GP=100 (teto 180) | Prêmio=50 (teto 60) | Menção=30 (teto 30)\nBolsas: BPQ_SUP=30 (teto 60) | BPQ_INT=50 (teto 100)\nInscrições/Avaliações/Comissões/Participações/Orientações/Bancas (com tetos por código)',
|
descricao: 'Premiações: GP=100 (teto 300) | Prêmio=50 (teto 150) | Menção=30 (teto 90)\nBolsas: BPQ=30 (teto 60)\nInscrições/Avaliações/Comissões/Participações (com tetos por código)\nOrientações/Bancas: apenas selos (0 pts)',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const PONTOS_BASE = {
|
const PONTOS_BASE = {
|
||||||
CA: 200, CAJ: 150, CAJ_MP: 120, CAM: 100,
|
CA: 200, CAJ: 150, CAJ_MP: 120, CAM: 100,
|
||||||
CONS_ATIVO: 150, CONS_HIST: 100, CONS_FALECIDO: 100,
|
CONS_ATIVO: 150, CONS_HIST: 100, CONS_FALECIDO: 100,
|
||||||
INSC_AUTOR: 10, INSC_INST: 30,
|
INSC_AUTOR: 10, INSC_INST_AUTOR: 20,
|
||||||
INSC_INST_AUTOR: 20,
|
AVAL_COMIS_PREMIO: 30, AVAL_COMIS_GP: 40,
|
||||||
AVAL_COMIS_PREMIO: 30, AVAL_COMIS_GP: 50,
|
COORD_COMIS_PREMIO: 40, COORD_COMIS_GP: 50,
|
||||||
COORD_COMIS_PREMIO: 50, COORD_COMIS_GP: 60,
|
|
||||||
PREMIACAO: 100, PREMIACAO_GP: 50, MENCAO: 30,
|
|
||||||
PREMIACAO_GP_AUTOR: 100, PREMIACAO_AUTOR: 50, MENCAO_AUTOR: 30,
|
PREMIACAO_GP_AUTOR: 100, PREMIACAO_AUTOR: 50, MENCAO_AUTOR: 30,
|
||||||
BOL_BPQ_SUP: 30, BOL_BPQ_INT: 50,
|
|
||||||
BOL_BPQ_SUPERIOR: 30, BOL_BPQ_INTERMEDIARIO: 50,
|
|
||||||
BOL_BPQ_NIVEL: 30,
|
BOL_BPQ_NIVEL: 30,
|
||||||
EVENTO: 1, PROJ: 10,
|
EVENTO: 1, PROJ: 10,
|
||||||
ORIENT_POS_DOC: 15, ORIENT_TESE: 10, ORIENT_DISS: 5,
|
ORIENT_POS_DOC: 0, ORIENT_TESE: 0, ORIENT_DISS: 0,
|
||||||
CO_ORIENT_POS_DOC: 7, CO_ORIENT_TESE: 5, CO_ORIENT_DISS: 3,
|
CO_ORIENT_POS_DOC: 0, CO_ORIENT_TESE: 0, CO_ORIENT_DISS: 0,
|
||||||
MB_BANCA_POS_DOC: 3, MB_BANCA_TESE: 3, MB_BANCA_DISS: 2,
|
MB_BANCA_POS_DOC: 0, MB_BANCA_TESE: 0, MB_BANCA_DISS: 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
const TETOS = {
|
const TETOS = {
|
||||||
INSC_AUTOR: { teto: 20, doc: '3.3 Inscrições', bonus: '+2/participação (max 10)' },
|
INSC_AUTOR: { teto: 20, doc: '3.3 Inscrições', bonus: '+2/participação (max 10)' },
|
||||||
INSC_INST: { teto: 60, doc: '3.3 Inscrições' },
|
|
||||||
INSC_INST_AUTOR: { teto: 50, doc: '3.3 Inscrições', bonus: '+5/participação (max 10)' },
|
INSC_INST_AUTOR: { teto: 50, doc: '3.3 Inscrições', bonus: '+5/participação (max 10)' },
|
||||||
AVAL_COMIS_PREMIO: { teto: 60, doc: '3.4 Avaliação/Comissão', bonus: '+2/ano (max 15)' },
|
AVAL_COMIS_PREMIO: { teto: 60, doc: '3.4 Avaliação/Comissão', bonus: '+2/ano (max 15)' },
|
||||||
AVAL_COMIS_GP: { teto: 80, doc: '3.4 Avaliação/Comissão', bonus: '+3/ano (max 20)' },
|
AVAL_COMIS_GP: { teto: 80, doc: '3.4 Avaliação/Comissão', bonus: '+3/ano (max 20)' },
|
||||||
COORD_COMIS_PREMIO: { teto: 100, doc: '3.4 Avaliação/Comissão', bonus: '+4/ano (max 20)' },
|
COORD_COMIS_PREMIO: { teto: 100, doc: '3.4 Avaliação/Comissão', bonus: '+4/ano (max 20)' },
|
||||||
COORD_COMIS_GP: { teto: 120, doc: '3.4 Avaliação/Comissão', bonus: '+6/ano (max 20)' },
|
COORD_COMIS_GP: { teto: 120, doc: '3.4 Avaliação/Comissão', bonus: '+6/ano (max 20)' },
|
||||||
PREMIACAO: { teto: 180, doc: '3.4 Premiações e Bolsas' },
|
|
||||||
PREMIACAO_GP: { teto: 60, doc: '3.4 Premiações e Bolsas' },
|
|
||||||
MENCAO: { teto: 30, doc: '3.4 Premiações e Bolsas' },
|
|
||||||
PREMIACAO_GP_AUTOR: { teto: 300, doc: '3.4 Premiações e Bolsas' },
|
PREMIACAO_GP_AUTOR: { teto: 300, doc: '3.4 Premiações e Bolsas' },
|
||||||
PREMIACAO_AUTOR: { teto: 150, doc: '3.4 Premiações e Bolsas' },
|
PREMIACAO_AUTOR: { teto: 150, doc: '3.4 Premiações e Bolsas' },
|
||||||
MENCAO_AUTOR: { teto: 90, doc: '3.4 Premiações e Bolsas' },
|
MENCAO_AUTOR: { teto: 90, doc: '3.4 Premiações e Bolsas' },
|
||||||
EVENTO: { teto: 5, doc: '3.5 Participações Acadêmicas', bonus: '+1/participação (max 10)' },
|
EVENTO: { teto: 5, doc: '3.5 Participações Acadêmicas', bonus: '+1/participação (max 10)' },
|
||||||
PROJ: { teto: 40, doc: '3.5 Participações Acadêmicas', bonus: '+2/participação (max 10)' },
|
PROJ: { teto: 30, doc: '3.5 Participações Acadêmicas', bonus: '+2/participação (max 10)' },
|
||||||
BOL_BPQ_SUP: { teto: 60, doc: '3.4 Premiações e Bolsas' },
|
|
||||||
BOL_BPQ_INT: { teto: 100, doc: '3.4 Premiações e Bolsas' },
|
|
||||||
BOL_BPQ_SUPERIOR: { teto: 60, doc: '3.4 Premiações e Bolsas' },
|
|
||||||
BOL_BPQ_INTERMEDIARIO: { teto: 100, doc: '3.4 Premiações e Bolsas' },
|
|
||||||
BOL_BPQ_NIVEL: { teto: 60, doc: '3.4 Premiações e Bolsas' },
|
BOL_BPQ_NIVEL: { teto: 60, doc: '3.4 Premiações e Bolsas' },
|
||||||
ORIENT_POS_DOC: { teto: 100, doc: '3.5 Participações Acadêmicas' },
|
ORIENT_POS_DOC: { teto: 0, doc: 'Selo (sem pontuação)' },
|
||||||
ORIENT_TESE: { teto: 50, doc: '3.5 Participações Acadêmicas' },
|
ORIENT_TESE: { teto: 0, doc: 'Selo (sem pontuação)' },
|
||||||
ORIENT_DISS: { teto: 25, doc: '3.5 Participações Acadêmicas' },
|
ORIENT_DISS: { teto: 0, doc: 'Selo (sem pontuação)' },
|
||||||
CO_ORIENT_POS_DOC: { teto: 35, doc: '3.5 Participações Acadêmicas' },
|
CO_ORIENT_POS_DOC: { teto: 0, doc: 'Selo (sem pontuação)' },
|
||||||
CO_ORIENT_TESE: { teto: 25, doc: '3.5 Participações Acadêmicas' },
|
CO_ORIENT_TESE: { teto: 0, doc: 'Selo (sem pontuação)' },
|
||||||
CO_ORIENT_DISS: { teto: 15, doc: '3.5 Participações Acadêmicas' },
|
CO_ORIENT_DISS: { teto: 0, doc: 'Selo (sem pontuação)' },
|
||||||
MB_BANCA_POS_DOC: { teto: 15, doc: '3.5 Participações Acadêmicas' },
|
MB_BANCA_POS_DOC: { teto: 0, doc: 'Selo (sem pontuação)' },
|
||||||
MB_BANCA_TESE: { teto: 15, doc: '3.5 Participações Acadêmicas' },
|
MB_BANCA_TESE: { teto: 0, doc: 'Selo (sem pontuação)' },
|
||||||
MB_BANCA_DISS: { teto: 10, doc: '3.5 Participações Acadêmicas' },
|
MB_BANCA_DISS: { teto: 0, doc: 'Selo (sem pontuação)' },
|
||||||
};
|
};
|
||||||
|
|
||||||
const ScoreItemWithTooltip = ({ value, label, formula, style }) => (
|
const ScoreItemWithTooltip = ({ value, label, formula, style }) => (
|
||||||
|
|||||||
@@ -25,19 +25,18 @@
|
|||||||
.header-title-row {
|
.header-title-row {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 1rem;
|
gap: 1.25rem;
|
||||||
margin-bottom: 0.35rem;
|
margin-bottom: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.header-logo {
|
.header-logo {
|
||||||
width: 60px;
|
width: 56px;
|
||||||
height: 60px;
|
height: 56px;
|
||||||
object-fit: contain;
|
object-fit: contain;
|
||||||
border-radius: 10px;
|
border-radius: 8px;
|
||||||
background: white;
|
background: transparent;
|
||||||
padding: 6px;
|
|
||||||
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2), 0 0 0 1px rgba(255,255,255,0.1);
|
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
|
margin-right: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.header h1 {
|
.header h1 {
|
||||||
@@ -57,7 +56,8 @@
|
|||||||
color: var(--silver);
|
color: var(--silver);
|
||||||
font-size: 0.95rem;
|
font-size: 0.95rem;
|
||||||
line-height: 1.6;
|
line-height: 1.6;
|
||||||
margin-bottom: 0.6rem;
|
margin-top: 0.3rem;
|
||||||
|
margin-bottom: 0.8rem;
|
||||||
opacity: 0.85;
|
opacity: 0.85;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -156,7 +156,7 @@
|
|||||||
|
|
||||||
.criteria-section h4 {
|
.criteria-section h4 {
|
||||||
color: var(--accent-2);
|
color: var(--accent-2);
|
||||||
font-size: 0.7rem;
|
font-size: 0.8rem;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
letter-spacing: 0.2px;
|
letter-spacing: 0.2px;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
@@ -165,7 +165,7 @@
|
|||||||
.max-pts {
|
.max-pts {
|
||||||
padding: 0.1rem 0.35rem;
|
padding: 0.1rem 0.35rem;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
font-size: 0.55rem;
|
font-size: 0.65rem;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
letter-spacing: 0.2px;
|
letter-spacing: 0.2px;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
@@ -185,12 +185,12 @@
|
|||||||
.criteria-table {
|
.criteria-table {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin-top: 0.25rem;
|
margin-top: 0.25rem;
|
||||||
font-size: 0.65rem;
|
font-size: 0.75rem;
|
||||||
border-collapse: collapse;
|
border-collapse: collapse;
|
||||||
}
|
}
|
||||||
|
|
||||||
.criteria-table.compact {
|
.criteria-table.compact {
|
||||||
font-size: 0.6rem;
|
font-size: 0.7rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.criteria-table th {
|
.criteria-table th {
|
||||||
@@ -199,7 +199,7 @@
|
|||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
padding: 0.15rem 0.2rem;
|
padding: 0.15rem 0.2rem;
|
||||||
border-bottom: 1px solid rgba(255,255,255,0.1);
|
border-bottom: 1px solid rgba(255,255,255,0.1);
|
||||||
font-size: 0.55rem;
|
font-size: 0.65rem;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
letter-spacing: 0.3px;
|
letter-spacing: 0.3px;
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
@@ -233,7 +233,7 @@
|
|||||||
margin-top: 0.3rem;
|
margin-top: 0.3rem;
|
||||||
padding-top: 0.25rem;
|
padding-top: 0.25rem;
|
||||||
border-top: 1px dashed rgba(255,255,255,0.1);
|
border-top: 1px dashed rgba(255,255,255,0.1);
|
||||||
font-size: 0.55rem;
|
font-size: 0.65rem;
|
||||||
color: var(--muted);
|
color: var(--muted);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ const Header = ({ total }) => {
|
|||||||
<header className="header">
|
<header className="header">
|
||||||
<div className="header-content">
|
<div className="header-content">
|
||||||
<div className="header-title-row">
|
<div className="header-title-row">
|
||||||
<img src="/logo_capes.jpg" alt="CAPES" className="header-logo" />
|
<img src="/logo_capes.png" alt="CAPES" className="header-logo" />
|
||||||
<h1>Ranking de Consultores CAPES</h1>
|
<h1>Ranking de Consultores CAPES</h1>
|
||||||
</div>
|
</div>
|
||||||
<p className="subtitle">
|
<p className="subtitle">
|
||||||
|
|||||||
Reference in New Issue
Block a user