IOI-RUN / bi.py
Roudrigus's picture
Upload 82 files
0f0ef8d verified
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
)