Update app.py
Browse files
app.py
CHANGED
|
@@ -81,6 +81,7 @@ else:
|
|
| 81 |
try:
|
| 82 |
conn = get_connection()
|
| 83 |
termo = f"%{busca}%"
|
|
|
|
| 84 |
query = """
|
| 85 |
SELECT nome, sobrenome, email, ultimo_acesso, nome_curso, papel, turmas, data_inicial, data_final
|
| 86 |
FROM portal_alunos_flat
|
|
@@ -91,18 +92,32 @@ else:
|
|
| 91 |
conn.close()
|
| 92 |
|
| 93 |
if not df.empty:
|
| 94 |
-
# Agrupamento visual por aluno
|
| 95 |
alunos = df[['nome', 'sobrenome', 'email', 'ultimo_acesso']].drop_duplicates()
|
|
|
|
| 96 |
for _, aluno in alunos.iterrows():
|
|
|
|
| 97 |
with st.expander(f"👤 {aluno['nome']} {aluno['sobrenome']} ({aluno['email']})"):
|
| 98 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 99 |
hist = df[df['email'] == aluno['email']][['nome_curso', 'papel', 'turmas', 'data_inicial', 'data_final']]
|
| 100 |
-
|
|
|
|
|
|
|
|
|
|
| 101 |
else:
|
| 102 |
-
st.warning("Nenhum aluno encontrado.")
|
| 103 |
except Exception as e:
|
| 104 |
st.error(f"Erro na consulta: {e}")
|
| 105 |
-
|
| 106 |
# --- MÓDULO: GESTÃO DE USUÁRIOS (Apenas Admin) ---
|
| 107 |
elif menu == "Gerenciar Usuários":
|
| 108 |
st.title("👥 Gestão de Usuários do Sistema")
|
|
|
|
| 81 |
try:
|
| 82 |
conn = get_connection()
|
| 83 |
termo = f"%{busca}%"
|
| 84 |
+
# A query já traz o campo ultimo_acesso da tabela FLAT
|
| 85 |
query = """
|
| 86 |
SELECT nome, sobrenome, email, ultimo_acesso, nome_curso, papel, turmas, data_inicial, data_final
|
| 87 |
FROM portal_alunos_flat
|
|
|
|
| 92 |
conn.close()
|
| 93 |
|
| 94 |
if not df.empty:
|
| 95 |
+
# Agrupamento visual por aluno para não repetir o cabeçalho
|
| 96 |
alunos = df[['nome', 'sobrenome', 'email', 'ultimo_acesso']].drop_duplicates()
|
| 97 |
+
|
| 98 |
for _, aluno in alunos.iterrows():
|
| 99 |
+
# Criamos um "card" expansível para cada aluno encontrado
|
| 100 |
with st.expander(f"👤 {aluno['nome']} {aluno['sobrenome']} ({aluno['email']})"):
|
| 101 |
+
|
| 102 |
+
# EXIBIÇÃO EM DESTAQUE DA DATA DE ÚLTIMO LOGON
|
| 103 |
+
col_info1, col_info2 = st.columns(2)
|
| 104 |
+
with col_info1:
|
| 105 |
+
st.metric(label="📅 Último Logon Registrado", value=str(aluno['ultimo_acesso']))
|
| 106 |
+
|
| 107 |
+
st.write("---")
|
| 108 |
+
st.subheader("Histórico de Cursos")
|
| 109 |
+
|
| 110 |
+
# Filtra os cursos apenas deste aluno
|
| 111 |
hist = df[df['email'] == aluno['email']][['nome_curso', 'papel', 'turmas', 'data_inicial', 'data_final']]
|
| 112 |
+
|
| 113 |
+
# Renomeando colunas para ficar mais amigável na tela
|
| 114 |
+
hist.columns = ['Curso', 'Papel', 'Turmas', 'Início', 'Fim']
|
| 115 |
+
st.dataframe(hist, use_container_width=True, hide_index=True)
|
| 116 |
else:
|
| 117 |
+
st.warning("Nenhum aluno encontrado com esses dados.")
|
| 118 |
except Exception as e:
|
| 119 |
st.error(f"Erro na consulta: {e}")
|
| 120 |
+
|
| 121 |
# --- MÓDULO: GESTÃO DE USUÁRIOS (Apenas Admin) ---
|
| 122 |
elif menu == "Gerenciar Usuários":
|
| 123 |
st.title("👥 Gestão de Usuários do Sistema")
|