lucianorabelo commited on
Commit
2271d67
·
verified ·
1 Parent(s): 970b449

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +61 -2
app.py CHANGED
@@ -107,7 +107,7 @@ else:
107
  st.sidebar.markdown("---")
108
 
109
  # OPÇÕES PARA TODOS OS USUÁRIOS (Consulta e Admin)
110
- opcoes_menu = ["Consultar Histórico", "Relatórios de Retenção", "Alunos sem Acesso"]
111
 
112
  # OPÇÃO EXCLUSIVA PARA ADMIN
113
  if perfil_usuario == 'admin':
@@ -342,5 +342,64 @@ else:
342
  except Exception as e:
343
  st.error(f"Erro ao carregar logs: {e}")
344
 
 
 
 
 
 
 
 
345
 
346
-
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
107
  st.sidebar.markdown("---")
108
 
109
  # OPÇÕES PARA TODOS OS USUÁRIOS (Consulta e Admin)
110
+ opcoes_menu = ["Consultar Histórico", "Relatórios de Retenção", "Alunos sem Acesso", "Equipe de Apoio"]
111
 
112
  # OPÇÃO EXCLUSIVA PARA ADMIN
113
  if perfil_usuario == 'admin':
 
342
  except Exception as e:
343
  st.error(f"Erro ao carregar logs: {e}")
344
 
345
+ # --- MÓDULO 6: CONSULTA DE EQUIPE DE APOIO ---
346
+ elif menu == "Equipe de Apoio":
347
+ st.title("👥 Consulta de Equipe de Apoio")
348
+ st.write("Visualize Professores, Tutores e Coordenadores vinculados aos cursos.")
349
+
350
+ try:
351
+ conn = get_connection()
352
 
353
+ # 1. Buscar Semestres disponíveis para o primeiro filtro
354
+ query_semestres = "SELECT DISTINCT semestre_referencia FROM portal_alunos_flat ORDER BY semestre_referencia DESC"
355
+ df_semestres = pd.read_sql(query_semestres, conn)
356
+ lista_semestres = df_semestres['semestre_referencia'].tolist()
357
+
358
+ semestre_sel = st.selectbox("Selecione o Semestre:", lista_semestres)
359
+
360
+ if semestre_sel:
361
+ # 2. Buscar Cursos do semestre selecionado para o segundo filtro
362
+ query_cursos = f"""
363
+ SELECT DISTINCT nome_curso
364
+ FROM portal_alunos_flat
365
+ WHERE semestre_referencia = '{semestre_sel}'
366
+ ORDER BY nome_curso
367
+ """
368
+ df_cursos = pd.read_sql(query_cursos, conn)
369
+ lista_cursos = ["Todos"] + df_cursos['nome_curso'].tolist()
370
+
371
+ curso_sel = st.selectbox("Selecione o Curso:", lista_cursos)
372
+
373
+ if st.button("Consultar Equipe"):
374
+ filtro_curso = "" if curso_sel == "Todos" else f"AND nome_curso = '{curso_sel}'"
375
+
376
+ # 3. Query Principal: Todos os papéis EXCETO Estudante
377
+ query_equipe = f"""
378
+ SELECT nome, sobrenome, email, papel, nome_curso, turmas
379
+ FROM portal_alunos_flat
380
+ WHERE semestre_referencia = '{semestre_sel}'
381
+ AND papel != 'Estudante'
382
+ {filtro_curso}
383
+ ORDER BY papel ASC, nome ASC
384
+ """
385
+
386
+ df_equipe = pd.read_sql(query_equipe, conn)
387
+
388
+ if not df_equipe.empty:
389
+ st.success(f"Encontrados {len(df_equipe)} membros da equipe.")
390
+
391
+ # Exibição organizada
392
+ st.dataframe(df_equipe, use_container_width=True, hide_index=True)
393
+
394
+ # Exportação
395
+ csv = df_equipe.to_csv(index=False).encode('utf-8-sig')
396
+ st.download_button("📥 Baixar Lista de Contatos", csv, f"equipe_{semestre_sel}.csv", "text/csv")
397
+ else:
398
+ st.warning("Nenhum membro de equipe encontrado para os critérios selecionados.")
399
+
400
+ conn.close()
401
+
402
+ except Exception as e:
403
+ st.error(f"Erro ao consultar equipe: {e}")
404
+
405
+