fix(filtros): corrigir extração de selos e melhorar UX do filtro
- Corrigir lógica de extração de selos para usar códigos exatos - Filtro agora exige todos os selos selecionados (AND em vez de OR) - Botão Aplicar volta: seleção não dispara filtro automaticamente - Layout dos controles unificado em barra com fundo
This commit is contained in:
@@ -45,12 +45,14 @@ def extrair_selos_entry(detalhes: Dict[str, Any]) -> Set[str]:
|
||||
papel = (prem.get("papel") or "").lower()
|
||||
codigo = prem.get("codigo", "")
|
||||
|
||||
if "GP" in codigo or "grande" in codigo.lower():
|
||||
if codigo == "PREMIACAO":
|
||||
tipo_prem = "GP"
|
||||
elif "MENCAO" in codigo or "menção" in codigo.lower():
|
||||
elif codigo == "PREMIACAO_GP":
|
||||
tipo_prem = "PREMIO"
|
||||
elif codigo == "MENCAO":
|
||||
tipo_prem = "MENCAO"
|
||||
else:
|
||||
tipo_prem = "PREMIO"
|
||||
continue
|
||||
|
||||
if "autor" in papel:
|
||||
selos.add(f"AUTOR_{tipo_prem}")
|
||||
@@ -64,18 +66,18 @@ def extrair_selos_entry(detalhes: Dict[str, Any]) -> Set[str]:
|
||||
is_coorient = orient.get("coorientacao", False)
|
||||
|
||||
if is_coorient:
|
||||
if "POS_DOC" in codigo:
|
||||
if codigo == "CO_ORIENT_POS_DOC":
|
||||
selos.add("CO_ORIENT_POS_DOC")
|
||||
elif "TESE" in codigo:
|
||||
elif codigo == "CO_ORIENT_TESE":
|
||||
selos.add("CO_ORIENT_TESE")
|
||||
elif "DISS" in codigo:
|
||||
elif codigo == "CO_ORIENT_DISS":
|
||||
selos.add("CO_ORIENT_DISS")
|
||||
else:
|
||||
if "POS_DOC" in codigo:
|
||||
if codigo == "ORIENT_POS_DOC":
|
||||
selos.add("ORIENT_POS_DOC")
|
||||
elif "TESE" in codigo:
|
||||
elif codigo == "ORIENT_TESE":
|
||||
selos.add("ORIENT_TESE")
|
||||
elif "DISS" in codigo:
|
||||
elif codigo == "ORIENT_DISS":
|
||||
selos.add("ORIENT_DISS")
|
||||
|
||||
return selos
|
||||
@@ -146,7 +148,7 @@ class RankingStore:
|
||||
selos_set = set(filtro_selos)
|
||||
entries = [
|
||||
e for e in entries
|
||||
if selos_set & extrair_selos_entry(e.detalhes)
|
||||
if selos_set.issubset(extrair_selos_entry(e.detalhes))
|
||||
]
|
||||
|
||||
total = len(entries)
|
||||
|
||||
Reference in New Issue
Block a user