Spaces:
Sleeping
Sleeping
import streamlit as st | |
from salesforce_integration import fetch_poles | |
import plotly.express as px | |
from modules.visuals import display_dashboard, display_charts | |
st.title("π‘ VIEP Smart Poles Dashboard (Salesforce Data)") | |
# Fetch Data | |
df = fetch_poles() | |
# Display Table with extra fields | |
st.subheader("π Pole Table") | |
st.dataframe(df[[ | |
"Name", | |
"Solar_Generation__c", | |
"Wind_Generation__c", | |
"Camera_Status__c", | |
"Longitude__c", | |
"Latitude__c", | |
"Last_Check_Time__c" | |
]]) | |
# Energy Generation Chart | |
st.subheader("β Energy Generation (Solar vs Wind)") | |
st.plotly_chart( | |
px.bar( | |
df, | |
x="Name", | |
y=["Solar_Generation__c", "Wind_Generation__c"], | |
barmode="group", | |
title="Solar vs Wind Energy by Pole" | |
) | |
) | |
# Camera Status Visualization (Only once, horizontal bar) | |
st.subheader("π₯ Camera Status Overview") | |
camera_counts = df["Camera_Status__c"].value_counts().reset_index() | |
camera_counts.columns = ["Status", "Count"] | |
fig_camera_status = px.bar( | |
camera_counts, | |
x="Count", | |
y="Status", | |
orientation="h", | |
color="Status", | |
text="Count", | |
title="Camera Status Distribution" | |
) | |
st.plotly_chart(fig_camera_status) | |
# Custom Visuals | |
display_dashboard(df) | |
display_charts(df) | |