EGYADMIN commited on
Commit
06634be
·
verified ·
1 Parent(s): f63e0ac

Create main.py

Browse files
Files changed (1) hide show
  1. main.py +77 -0
main.py ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ import sys
3
+ import streamlit as st
4
+ import logging
5
+ from datetime import datetime
6
+
7
+ # إضافة المسار الرئيسي للمشروع إلى PATH
8
+ sys.path.append(os.path.dirname(os.path.abspath(__file__)))
9
+
10
+ # استيراد الوحدات الخاصة بالمشروع
11
+ from config import get_config
12
+ from web.pages.procurement import main as procurement_page
13
+
14
+ # إعداد التسجيل
15
+ config = get_config()
16
+ log_dir = config["paths"]["logs_dir"]
17
+ os.makedirs(log_dir, exist_ok=True)
18
+
19
+ logging.basicConfig(
20
+ filename=os.path.join(log_dir, f"app_{datetime.now().strftime('%Y%m%d')}.log"),
21
+ level=logging.INFO,
22
+ format="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
23
+ )
24
+
25
+ logger = logging.getLogger(__name__)
26
+
27
+ def main():
28
+ """
29
+ الدالة الرئيسية لتشغيل التطبيق
30
+ """
31
+ # تكوين الصفحة
32
+ st.set_page_config(
33
+ page_title=config["app"]["name"],
34
+ page_icon="📋",
35
+ layout="wide",
36
+ initial_sidebar_state="expanded"
37
+ )
38
+
39
+ # تسجيل بدء تشغيل التطبيق
40
+ logger.info(f"Starting {config['app']['name']} v{config['app']['version']}")
41
+
42
+ # اختيار الصفحة
43
+ pages = {
44
+ "المناقصات والعقود": procurement_page,
45
+ # يمكن إضافة صفحات أخرى هنا
46
+ }
47
+
48
+ # شريط التنقل الجانبي
49
+ with st.sidebar:
50
+ st.title(config["app"]["name"])
51
+ st.markdown(f"**الإصدار:** {config['app']['version']}")
52
+
53
+ # اختيار الصفحة
54
+ page = st.radio("اختر الصفحة:", list(pages.keys()))
55
+
56
+ # معلومات إضافية
57
+ st.markdown("---")
58
+ st.markdown("### المطور بواسطة")
59
+ st.markdown("فريق تطوير البرمجيات")
60
+ st.markdown("© 2023-2024 جميع الحقوق محفوظة")
61
+
62
+ # عرض الصفحة المختارة
63
+ pages[page]()
64
+
65
+ # تذييل الصفحة
66
+ st.markdown("---")
67
+ st.markdown(
68
+ """
69
+ <div style="text-align: center; color: gray; font-size: 0.8em;">
70
+ {config["app"]["name"]} - الإصدار {config["app"]["version"]} | تم التحديث: {datetime.now().strftime("%Y-%m-%d")}
71
+ </div>
72
+ """,
73
+ unsafe_allow_html=True
74
+ )
75
+
76
+ if __name__ == "__main__":
77
+ main()