EGYADMIN commited on
Commit
2824f09
·
verified ·
1 Parent(s): fcab965

Update utils/components/credits.py

Browse files
Files changed (1) hide show
  1. utils/components/credits.py +111 -104
utils/components/credits.py CHANGED
@@ -1,105 +1,112 @@
1
- """
2
- مكون عرض معلومات فريق التطوير
3
- """
4
-
5
- import streamlit as st
6
-
7
-
8
- def display_credits():
9
- """
10
- عرض معلومات فريق التطوير
11
- """
12
- # تعريف بيانات الفريق
13
- team_members = [
14
- {
15
- "name": "م بدر وهبي",
16
- "role": "مدير المشروع",
17
- "image": "badr.jpg",
18
- "bio": "مهندس برمجيات ذو خبرة 15 عامًا في تطوير أنظمة المقاولات والتسعير"
19
- },
20
- {
21
- "name": "م تامر الجوهري",
22
- "role": "مهندسة الذكاء الاصطناعي",
23
- "image": "tamer.jpg",
24
- "bio": "متخصصة في معالجة اللغة العربية الطبيعية وتحليل البيانات"
25
- },
26
- {
27
- "name": "م اسلام عيسي",
28
- "role": "أخصائي تطوير التسعير",
29
- "image": "Islam.jpg",
30
- "bio": "خبير في أنظمة التسعير المتقدمة والتحليل المالي للمشاريع"
31
- }
32
- ]
33
-
34
- # عرض معلومات الفريق في صفوف
35
- # كل صف يحتوي على 3 أعضاء
36
- cols_per_row = 3
37
-
38
- for i in range(0, len(team_members), cols_per_row):
39
- # إنشاء الأعمدة
40
- cols = st.columns(cols_per_row)
41
-
42
- # عرض الأعضاء في هذا الصف
43
- for j in range(cols_per_row):
44
- idx = i + j
45
- if idx < len(team_members):
46
- member = team_members[idx]
47
-
48
- with cols[j]:
49
- # عرض صورة العضو (استخدام صورة افتراضية إذا لم تكن متوفرة)
50
- try:
51
- st.image(f"static/images/team/{member['image']}", width=150)
52
- except:
53
- # استخدام الأحرف الأولى من الاسم كصورة افتراضية
54
- initials = ''.join([name[0] for name in member['name'].split() if name.startswith('م.') == False])
55
- st.markdown(f"""
56
- <div class="avatar">
57
- <span>{initials}</span>
58
- </div>
59
- """, unsafe_allow_html=True)
60
-
61
- # عرض معلومات العضو
62
- st.markdown(f"""
63
- <div class="team-member">
64
- <h3>{member['name']}</h3>
65
- <h4>{member['role']}</h4>
66
- <p>{member['bio']}</p>
67
- </div>
68
- """, unsafe_allow_html=True)
69
-
70
- # إضافة أسلوب CSS للعرض
71
- st.markdown("""
72
- <style>
73
- .team-member {
74
- text-align: center;
75
- margin-bottom: 20px;
76
- }
77
- .team-member h3 {
78
- color: #333;
79
- margin-bottom: 5px;
80
- font-size: 18px;
81
- }
82
- .team-member h4 {
83
- color: #ff9a3c;
84
- margin-top: 0;
85
- margin-bottom: 10px;
86
- font-size: 14px;
87
- }
88
- .team-member p {
89
- color: #666;
90
- font-size: 12px;
91
- }
92
- .avatar {
93
- background-color: #ff9a3c;
94
- color: white;
95
- width: 100px;
96
- height: 100px;
97
- border-radius: 50%;
98
- display: flex;
99
- justify-content: center;
100
- align-items: center;
101
- margin: 0 auto 15px auto;
102
- font-size: 36px;
103
- }
104
- </style>
 
 
 
 
 
 
 
105
  """, unsafe_allow_html=True)
 
1
+ """
2
+ مكون عرض معلومات فريق التطوير
3
+ """
4
+
5
+ import streamlit as st
6
+
7
+
8
+ def render_credits():
9
+ """
10
+ عرض معلومات فريق التطوير (واجهة للاستخدام مع وحدات النظام المختلفة)
11
+ """
12
+ display_credits()
13
+
14
+
15
+ def display_credits():
16
+ """
17
+ عرض معلومات فريق التطوير
18
+ """
19
+ # تعريف بيانات الفريق
20
+ team_members = [
21
+ {
22
+ "name": "م بدر وهبي",
23
+ "role": "مدير المشروع",
24
+ "image": "badr.jpg",
25
+ "bio": "مهندس برمجيات ذو خبرة 15 عامًا في تطوير أنظمة المقاولات والتسعير"
26
+ },
27
+ {
28
+ "name": "م تامر الجوهري",
29
+ "role": "مهندسة الذكاء الاصطناعي",
30
+ "image": "tamer.jpg",
31
+ "bio": "متخصصة في معالجة اللغة العربية الطبيعية وتحليل البيانات"
32
+ },
33
+ {
34
+ "name": اسلام عيسي",
35
+ "role": "أخصائي تطوير التسعير",
36
+ "image": "Islam.jpg",
37
+ "bio": "خبير في أنظمة التسعير المتقدمة والتحليل المالي للمشاريع"
38
+ }
39
+ ]
40
+
41
+ # عرض معلومات الفريق في صفوف
42
+ # كل صف يحتوي على 3 أعضاء
43
+ cols_per_row = 3
44
+
45
+ for i in range(0, len(team_members), cols_per_row):
46
+ # إنشاء الأعمدة
47
+ cols = st.columns(cols_per_row)
48
+
49
+ # عرض الأعضاء في هذا الصف
50
+ for j in range(cols_per_row):
51
+ idx = i + j
52
+ if idx < len(team_members):
53
+ member = team_members[idx]
54
+
55
+ with cols[j]:
56
+ # عرض صورة العضو (استخدام صورة افتراضية إذا لم تكن متوفرة)
57
+ try:
58
+ st.image(f"static/images/team/{member['image']}", width=150)
59
+ except:
60
+ # استخدام الأحرف الأولى من الاسم كصورة افتراضية
61
+ initials = ''.join([name[0] for name in member['name'].split() if name.startswith('م.') == False])
62
+ st.markdown(f"""
63
+ <div class="avatar">
64
+ <span>{initials}</span>
65
+ </div>
66
+ """, unsafe_allow_html=True)
67
+
68
+ # عرض معلومات العضو
69
+ st.markdown(f"""
70
+ <div class="team-member">
71
+ <h3>{member['name']}</h3>
72
+ <h4>{member['role']}</h4>
73
+ <p>{member['bio']}</p>
74
+ </div>
75
+ """, unsafe_allow_html=True)
76
+
77
+ # إضافة أسلوب CSS للعرض
78
+ st.markdown("""
79
+ <style>
80
+ .team-member {
81
+ text-align: center;
82
+ margin-bottom: 20px;
83
+ }
84
+ .team-member h3 {
85
+ color: #333;
86
+ margin-bottom: 5px;
87
+ font-size: 18px;
88
+ }
89
+ .team-member h4 {
90
+ color: #ff9a3c;
91
+ margin-top: 0;
92
+ margin-bottom: 10px;
93
+ font-size: 14px;
94
+ }
95
+ .team-member p {
96
+ color: #666;
97
+ font-size: 12px;
98
+ }
99
+ .avatar {
100
+ background-color: #ff9a3c;
101
+ color: white;
102
+ width: 100px;
103
+ height: 100px;
104
+ border-radius: 50%;
105
+ display: flex;
106
+ justify-content: center;
107
+ align-items: center;
108
+ margin: 0 auto 15px auto;
109
+ font-size: 36px;
110
+ }
111
+ </style>
112
  """, unsafe_allow_html=True)