"""
مكون الشريط الجانبي المحسن
"""
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