""" Supply Roster Optimization Tool - Streamlit App Simplified version with configuration and optimization results """ import streamlit as st import sys import os # Add src directory to path for imports sys.path.append(os.path.join(os.path.dirname(__file__), 'src')) # 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 from config_page import render_config_page st.title("📦 Supply Roster Optimization Tool") st.markdown("---") render_config_page() elif page == "📊 Optimization Results": # Import and render the optimization results page from optimization_results import display_optimization_results # 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: from src.demand_validation_viz import display_demand_validation 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.")