Update app.py
Browse files
app.py
CHANGED
|
@@ -84,6 +84,7 @@ except Exception:
|
|
| 84 |
return {
|
| 85 |
"prod": "🟢 Produção",
|
| 86 |
"test": "🔴 Teste",
|
|
|
|
| 87 |
"train": "🟡 Treinamento",
|
| 88 |
}.get(choice, "🟢 Produção")
|
| 89 |
|
|
@@ -705,20 +706,20 @@ def _db_choice_ui():
|
|
| 705 |
# Obtém lista de choices
|
| 706 |
if _get_available_choices:
|
| 707 |
try:
|
| 708 |
-
avail = list(_get_available_choices()) # ex.: ["prod","test","
|
| 709 |
if not avail:
|
| 710 |
-
avail = ["prod", "test", "
|
| 711 |
except Exception:
|
| 712 |
-
avail = ["prod", "test", "
|
| 713 |
else:
|
| 714 |
-
avail = ["prod", "test", "
|
| 715 |
|
| 716 |
# Label amigável para cada opção
|
| 717 |
def _lbl(c):
|
| 718 |
try:
|
| 719 |
return bank_label(c)
|
| 720 |
except Exception:
|
| 721 |
-
return {"prod": "🟢 Produção", "test": "🔴 Teste", "
|
| 722 |
|
| 723 |
current = current_db_choice() if callable(current_db_choice) else st.session_state.get("__db_choice_override__", "prod")
|
| 724 |
labels = [_lbl(c) for c in avail]
|
|
@@ -778,6 +779,20 @@ def main():
|
|
| 778 |
# ===== Seleção de banco (sempre visível na sidebar) =====
|
| 779 |
_db_choice_ui()
|
| 780 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 781 |
# LOGIN
|
| 782 |
if not st.session_state.logado:
|
| 783 |
st.session_state.quiz_verificado = False
|
|
@@ -786,8 +801,6 @@ def main():
|
|
| 786 |
login()
|
| 787 |
|
| 788 |
# 🔕 REMOVIDO: mensagem de dica de autenticação no Spaces (conforme solicitado)
|
| 789 |
-
# (antes havia um st.info(...) aqui — removemos)
|
| 790 |
-
|
| 791 |
return
|
| 792 |
|
| 793 |
# 👥 Heartbeat + Badge de usuários logados (APENAS ADMIN)
|
|
|
|
| 84 |
return {
|
| 85 |
"prod": "🟢 Produção",
|
| 86 |
"test": "🔴 Teste",
|
| 87 |
+
"treinamento": "🟡 Treinamento",
|
| 88 |
"train": "🟡 Treinamento",
|
| 89 |
}.get(choice, "🟢 Produção")
|
| 90 |
|
|
|
|
| 706 |
# Obtém lista de choices
|
| 707 |
if _get_available_choices:
|
| 708 |
try:
|
| 709 |
+
avail = list(_get_available_choices()) # ex.: ["prod","test","treinamento"]
|
| 710 |
if not avail:
|
| 711 |
+
avail = ["prod", "test", "treinamento"]
|
| 712 |
except Exception:
|
| 713 |
+
avail = ["prod", "test", "treinamento"]
|
| 714 |
else:
|
| 715 |
+
avail = ["prod", "test", "treinamento"]
|
| 716 |
|
| 717 |
# Label amigável para cada opção
|
| 718 |
def _lbl(c):
|
| 719 |
try:
|
| 720 |
return bank_label(c)
|
| 721 |
except Exception:
|
| 722 |
+
return {"prod": "🟢 Produção", "test": "🔴 Teste", "treinamento": "🟡 Treinamento"}.get(c, c)
|
| 723 |
|
| 724 |
current = current_db_choice() if callable(current_db_choice) else st.session_state.get("__db_choice_override__", "prod")
|
| 725 |
labels = [_lbl(c) for c in avail]
|
|
|
|
| 779 |
# ===== Seleção de banco (sempre visível na sidebar) =====
|
| 780 |
_db_choice_ui()
|
| 781 |
|
| 782 |
+
# 🔧 Criar/atualizar schema no banco selecionado (útil após trocar p/ Teste/Treinamento)
|
| 783 |
+
try:
|
| 784 |
+
from banco import init_schema
|
| 785 |
+
with st.sidebar.expander("⚙️ Manutenção do banco atual", expanded=False):
|
| 786 |
+
if st.button("Criar/atualizar schema neste banco", key="__btn_init_schema__"):
|
| 787 |
+
try:
|
| 788 |
+
init_schema()
|
| 789 |
+
st.sidebar.success("Schema criado/atualizado no banco selecionado com sucesso.")
|
| 790 |
+
except Exception as e:
|
| 791 |
+
st.sidebar.error(f"Falha ao criar/atualizar schema: {e}")
|
| 792 |
+
except Exception:
|
| 793 |
+
# Se o módulo não expor init_schema, apenas ignora silenciosamente
|
| 794 |
+
pass
|
| 795 |
+
|
| 796 |
# LOGIN
|
| 797 |
if not st.session_state.logado:
|
| 798 |
st.session_state.quiz_verificado = False
|
|
|
|
| 801 |
login()
|
| 802 |
|
| 803 |
# 🔕 REMOVIDO: mensagem de dica de autenticação no Spaces (conforme solicitado)
|
|
|
|
|
|
|
| 804 |
return
|
| 805 |
|
| 806 |
# 👥 Heartbeat + Badge de usuários logados (APENAS ADMIN)
|