""" مكون الشريط الجانبي المحسن """ import streamlit as st from datetime import datetime # استيراد ملف التكوين الحالي from config import APP_TITLE, UI_THEME, DEFAULT_MODULE, STATIC_DIR from streamlit_option_menu import option_menu def render_sidebar(): """ عرض وإدارة الشريط الجانبي بتصميم احترافي الإرجاع: اسم الوحدة المحددة """ # تحديد الألوان بناءً على سمة واجهة المستخدم if UI_THEME == "dark": primary_color = "#3498db" secondary_color = "#ff9a3c" bg_color = "#1e1e1e" text_color = "#ffffff" sidebar_bg = "#2d2d2d" else: primary_color = "#2c3e50" secondary_color = "#ff9a3c" bg_color = "#f8f9fa" text_color = "#333333" sidebar_bg = "#f0f2f6" # تطبيق CSS مخصص لتحسين مظهر الشريط الجانبي st.markdown(f""" """, unsafe_allow_html=True) with st.sidebar: # إضافة اللوجو بتنسيق مخصص st.markdown('
', unsafe_allow_html=True) st.image("static/images/logo.png", width=180) st.markdown('
', unsafe_allow_html=True) # إضافة عنوان التطبيق st.markdown(f'
{APP_TITLE.split("-")[0].strip()}
', unsafe_allow_html=True) # إنشاء قائمة الخيارات باستخدام مكتبة 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=None, # إزالة أيقونة القائمة default_index=0, styles={ "container": {"padding": "0px", "background-color": "transparent"}, "icon": {"color": primary_color, "font-size": "18px"}, "nav-link": {"font-size": "14px", "text-align": "right", "margin": "5px 0px", "padding": "10px 15px"}, "nav-link-selected": {"background-color": secondary_color, "color": "white", "font-weight": "bold"}, } ) # إضافة فاصل st.markdown("
", unsafe_allow_html=True) # إضافة معلومات المشروع الحالي if 'current_project' in st.session_state and st.session_state.current_project: project = st.session_state.current_project st.markdown('
', unsafe_allow_html=True) st.markdown("### المشروع الحالي") st.markdown(f"**{project['name']}**") st.markdown(f"رقم المناقصة: {project['number']}") st.markdown(f"الجهة المالكة: {project['client']}") st.markdown('
', unsafe_allow_html=True) # إضافة زر للتبديل بين المشاريع if st.button("تبديل المشروع"): # لتنفيذ في مرحلة لاحقة pass # إضافة معلومات المستخدم if 'user_info' in st.session_state and st.session_state.user_info: user = st.session_state.user_info st.markdown("
", unsafe_allow_html=True) st.markdown('
', unsafe_allow_html=True) st.markdown("### معلومات المستخدم") st.markdown(f"**{user['full_name']}**") st.markdown(f"الدور: {user['role']}") st.markdown('
', unsafe_allow_html=True) # إضافة زر لتسجيل الخروج if st.button("تسجيل الخروج"): st.session_state.is_authenticated = False st.session_state.user_info = None st.rerun() # إضافة معلومات النسخة st.markdown("
", unsafe_allow_html=True) st.markdown(f"الإصدار: 1.0.0") st.markdown(f"تاريخ الإصدار: 2025-03-15") st.markdown(f"© 2025 شركة شبه الجزيرة للمقاولات") return selected_module