""" مكون الشريط الجانبي المحسن """ import streamlit as st from datetime import datetime import config from streamlit_option_menu import option_menu def render_sidebar(): """ عرض وإدارة الشريط الجانبي المحسن الإرجاع: اسم الوحدة المحددة """ with st.sidebar: # عرض الشعار بحجم أكبر st.image("static/images/logo.png", width=200) # إنشاء قائمة الخيارات باستخدام مكتبة streamlit_option_menu selected_module = option_menu( "نظام العقود والمناقصات", [ "الرئيسية", "إدارة المشاريع", "التسعير المتكاملة", "الموارد والتكاليف", "تحليل المستندات", "تحليل المخاطر", "التقارير والتحليلات", "المساعد الذكي" ], icons=[ 'house-fill', 'folder-fill', 'calculator-fill', 'tools', 'file-earmark-text-fill', 'exclamation-triangle-fill', 'bar-chart-fill', 'robot' ], menu_icon="cast", default_index=0, styles={ "container": {"padding": "5px", "background-color": "#f0f2f6", "direction": "rtl", "border-radius": "8px"}, "icon": {"color": "#2C5282", "font-size": "18px"}, "nav-link": {"font-size": "14px", "text-align": "right", "margin": "0px", "padding": "10px", "border-radius": "4px"}, "nav-link-selected": {"background-color": "#2C5282", "font-weight": "bold"}, }, key="main_menu" # إضافة معرف فريد لتجنب مشكلة تكرار المعرفات ) # إضافة فاصل st.markdown("---") # إضافة معلومات المشروع الحالي if 'current_project' in st.session_state and st.session_state.current_project: # التحقق من نوع البيانات للمشروع الحالي project_id = st.session_state.current_project # البحث عن معلومات المشروع باستخدام المعرف project = None if 'projects' in st.session_state: for p in st.session_state.projects: if isinstance(p, dict) and 'id' in p and p['id'] == project_id: project = p break # عرض معلومات المشروع إذا تم العثور عليه if project and isinstance(project, dict): st.markdown("""
{name}
العميل: {client}
{name}
الدور: {role}
الإصدار: 2.0.0
تاريخ الإصدار: 2025-04-01
© 2025 شركة شبه الجزيرة للمقاولات