IOI-RUN / bi.py
Roudrigus's picture
Upload 82 files
0f0ef8d verified
raw
history blame
2.12 kB
import streamlit as st
import streamlit.components.v1 as components
from banco import SessionLocal
from models import LogAcesso
from datetime import datetime
# =====================================================
# AUDITORIA
# =====================================================
def registrar_auditoria(acao):
db = SessionLocal()
try:
db.add(LogAcesso(
usuario=st.session_state.get("usuario", "desconhecido"),
acao=acao,
tabela="bi",
data_hora=datetime.now()
))
db.commit()
finally:
db.close()
# =====================================================
# APP PRINCIPAL
# =====================================================
def main():
st.title("πŸ“Š Business Intelligence")
st.caption("Indicadores e dashboards oficiais")
# πŸ” Auditoria de acesso
registrar_auditoria("ACESSO_BI")
# =====================================================
# SELEÇÃO DE DASHBOARD
# =====================================================
dashboards = {
"πŸ“ˆ Performance Operacional": {
"url": "https://app.powerbi.com/view?r=SEU_LINK_AQUI",
"height": 800
},
"πŸ“Š Qualidade e Erros": {
"url": "https://app.powerbi.com/view?r=SEU_LINK_AQUI",
"height": 800
},
"πŸ“¦ Produtividade FPSO": {
"url": "https://app.powerbi.com/view?r=SEU_LINK_AQUI",
"height": 900
}
}
opcao = st.selectbox("Selecione o Dashboard", dashboards.keys())
dash = dashboards[opcao]
st.divider()
# =====================================================
# EMBED DO POWER BI
# =====================================================
components.html(
f"""
<iframe
width="100%"
height="{dash['height']}"
src="{dash['url']}"
frameborder="0"
allowfullscreen="true">
</iframe>
""",
height=dash["height"] + 20
)