feat(library): add vocation filter, normalize categories, improve grid layout
Added vocation state and included it in query string builder, updated onFilter to accept a vocation parameter, improved grid layout with grid flow classes, normalized category names for consistent item icons, and refined stats mapping to handle type safety.
This commit is contained in:
1 parent
44d7f8ce81
commit
2b790d8eb4
19 files changed
+2638
-173
No files matched your search
@@ -96,3 +96,45 @@ def clean_text(text):
|
||||
|
||||
return cleaned
|
||||
|
||||
|
||||
def normalize_column_name(column_name):
|
||||
"""
|
||||
Normaliza nome de coluna para identificador SQL válido
|
||||
|
||||
Args:
|
||||
column_name: Nome da coluna original
|
||||
|
||||
Returns:
|
||||
str: Nome normalizado (lowercase, sem acentos, underscores, válido para SQL)
|
||||
|
||||
Exemplos:
|
||||
"Lvl" -> "lvl"
|
||||
"Dano Elemental" -> "dano_elemental"
|
||||
"Mod. de Defesa" -> "mod_de_defesa"
|
||||
"Dropa de" -> "dropa_de"
|
||||
"""
|
||||
if not column_name:
|
||||
return ""
|
||||
|
||||
# Remove acentos
|
||||
nfd = unicodedata.normalize('NFD', column_name)
|
||||
name_no_accent = ''.join(c for c in nfd if unicodedata.category(c) != 'Mn')
|
||||
|
||||
# Converte para lowercase
|
||||
normalized = name_no_accent.lower()
|
||||
|
||||
# Substitui caracteres não alfanuméricos por underscore
|
||||
normalized = re.sub(r'[^a-z0-9]+', '_', normalized)
|
||||
|
||||
# Remove underscores do início e fim
|
||||
normalized = normalized.strip('_')
|
||||
|
||||
# Garante que não começa com número
|
||||
if normalized and normalized[0].isdigit():
|
||||
normalized = 'col_' + normalized
|
||||
|
||||
# Se ficou vazio, retorna um nome padrão
|
||||
if not normalized:
|
||||
return "coluna_sem_nome"
|
||||
|
||||
return normalized
|
||||
Reference in new issue
Block a user