haileyhalimj@gmail.com
Solve default problem and none date issue
4d36152
"""
Supply Roster Optimization Tool - Streamlit App
Simplified version with configuration and optimization results
"""
import streamlit as st
import sys
import os
# Add project root to path BEFORE imports
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if project_root not in sys.path:
sys.path.insert(0, project_root)
from ui.pages.config_page import render_config_page
from ui.pages.optimization_results import display_optimization_results
from src.demand_validation_viz import display_demand_validation
# Set page config
st.set_page_config(
page_title="Supply Roster Optimization Tool",
page_icon="πŸ“¦",
layout="wide",
initial_sidebar_state="expanded"
)
# Sidebar navigation
st.sidebar.title("πŸ“¦ Supply Roster Tool")
st.sidebar.markdown("---")
# Navigation
page = st.sidebar.selectbox(
"Navigate to:",
["βš™οΈ Settings", "πŸ“Š Optimization Results", "πŸ“‹ Demand Validation"],
index=0
)
# Main app content
if page == "βš™οΈ Settings":
# Import and render the config page
st.title("πŸ“¦ Supply Roster Optimization Tool")
st.markdown("---")
render_config_page()
elif page == "πŸ“Š Optimization Results":
# Import and render the optimization results page
# Check if we have results in session state
if 'optimization_results' in st.session_state and st.session_state.optimization_results:
display_optimization_results(st.session_state.optimization_results)
else:
st.title("πŸ“Š Optimization Results")
st.info("πŸ”„ No optimization results available yet.")
st.markdown("Please run an optimization from the **βš™οΈ Settings** page first to see results here.")
# Add helpful instructions
st.markdown("### πŸ“‹ How to Get Results:")
st.markdown("1. Go to **βš™οΈ Settings** page")
st.markdown("2. Configure your optimization parameters")
st.markdown("3. Click **πŸš€ Optimize Schedule**")
st.markdown("4. Return here to view detailed results and input data inspection")
elif page == "πŸ“‹ Demand Validation":
# Import and render the demand validation page
try:
st.title("πŸ“‹ Demand Data Validation")
st.markdown("---")
display_demand_validation()
except ImportError as e:
st.error(f"❌ Error loading demand validation module: {str(e)}")
st.info("πŸ’‘ Please ensure the demand validation module is properly installed.")
except Exception as e:
st.error(f"❌ Error in demand validation: {str(e)}")
st.info("πŸ’‘ Please check the data files and configuration.")