File size: 2,352 Bytes
06634be
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import os
import sys
import streamlit as st
import logging
from datetime import datetime

# إضافة المسار الرئيسي للمشروع إلى PATH
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

# استيراد الوحدات الخاصة بالمشروع
from config import get_config
from web.pages.procurement import main as procurement_page

# إعداد التسجيل
config = get_config()
log_dir = config["paths"]["logs_dir"]
os.makedirs(log_dir, exist_ok=True)

logging.basicConfig(
    filename=os.path.join(log_dir, f"app_{datetime.now().strftime('%Y%m%d')}.log"),
    level=logging.INFO,
    format="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
)

logger = logging.getLogger(__name__)

def main():
    """
    الدالة الرئيسية لتشغيل التطبيق
    """
    # تكوين الصفحة
    st.set_page_config(
        page_title=config["app"]["name"],
        page_icon="📋",
        layout="wide",
        initial_sidebar_state="expanded"
    )
    
    # تسجيل بدء تشغيل التطبيق
    logger.info(f"Starting {config['app']['name']} v{config['app']['version']}")
    
    # اختيار الصفحة
    pages = {
        "المناقصات والعقود": procurement_page,
        # يمكن إضافة صفحات أخرى هنا
    }
    
    # شريط التنقل الجانبي
    with st.sidebar:
        st.title(config["app"]["name"])
        st.markdown(f"**الإصدار:** {config['app']['version']}")
        
        # اختيار الصفحة
        page = st.radio("اختر الصفحة:", list(pages.keys()))
        
        # معلومات إضافية
        st.markdown("---")
        st.markdown("### المطور بواسطة")
        st.markdown("فريق تطوير البرمجيات")
        st.markdown("© 2023-2024 جميع الحقوق محفوظة")
    
    # عرض الصفحة المختارة
    pages[page]()
    
    # تذييل الصفحة
    st.markdown("---")
    st.markdown(
        """
        <div style="text-align: center; color: gray; font-size: 0.8em;">
            {config["app"]["name"]} - الإصدار {config["app"]["version"]} | تم التحديث: {datetime.now().strftime("%Y-%m-%d")}
        </div>
        """,
        unsafe_allow_html=True
    )

if __name__ == "__main__":
    main()