Hadeeratef91 commited on
Commit
5ef87c7
·
verified ·
1 Parent(s): dee7031

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -64
app.py CHANGED
@@ -8,7 +8,7 @@ from passlib.hash import bcrypt
8
  st.set_page_config(page_title="نظام إدارة الشكاوى", layout="centered")
9
 
10
  # الاتصال بقاعدة البيانات
11
- conn = sqlite3.connect("complaints_system (1).db", check_same_thread=False)
12
  c = conn.cursor()
13
 
14
  # إنشاء الجداول
@@ -65,9 +65,14 @@ if not st.session_state.is_logged_in:
65
  # مقدم الشكوى
66
  elif st.session_state.user_type == "sender":
67
  st.title("📨 إرسال شكوى جديدة")
68
- complaint_text = st.text_area("📝 وصف الشكوى", value=st.session_state.complaint_input, key="complaint_input")
69
-
70
- if st.button("📤 إرسال الشكوى"):
 
 
 
 
 
71
  c.execute("SELECT * FROM complaints WHERE username=?", (st.session_state.username,))
72
  user_complaints = c.fetchall()
73
  prefix = st.session_state.username[:4].lower()
@@ -85,7 +90,6 @@ elif st.session_state.user_type == "sender":
85
  (complaint_id, st.session_state.username, complaint_text.strip(), "Pending", "", timestamp, ""))
86
  conn.commit()
87
  st.success("✅ تم تقديم الشكوى بنجاح")
88
- st.session_state.complaint_input = "" # مسح محتوى الصندوق
89
  st.rerun()
90
 
91
  st.subheader("📋 الشكاوى السابقة")
@@ -116,62 +120,4 @@ elif st.session_state.user_type == "sender":
116
  st.success("✅ تم إرسال التعليق بنجاح")
117
  st.rerun()
118
  else:
119
- st.info(f"🗣️ تعليقك السابق: {user_comment}")
120
-
121
- # مستقبل الشكوى (الـ admin أو الموظف)
122
- elif st.session_state.user_type == "receiver":
123
- st.title("📬 إدارة الشكاوى")
124
-
125
- # تنبيه بوجود شكاوى جديدة
126
- c.execute("SELECT COUNT(*) FROM complaints WHERE status = 'Pending'")
127
- pending_count = c.fetchone()[0]
128
- if pending_count > 0:
129
- st.warning(f"🚨 يوجد {pending_count} شكوى جديدة لم يتم التعامل معها!")
130
-
131
- c.execute("SELECT * FROM complaints ORDER BY id DESC")
132
- complaints = c.fetchall()
133
-
134
- if not complaints:
135
- st.info("لا توجد شكاوى حالياً.")
136
- else:
137
- st.subheader("📋 جميع الشكاوى")
138
- options = {f"{row[1]} - {row[2]}": row for row in complaints}
139
- selected = st.selectbox("اختر شكوى للتعامل معها", list(options.keys()))
140
- selected_row = options[selected]
141
-
142
- st.subheader(f"📨 معرف الشكوى: {selected_row[1]}")
143
- st.write(f"👤 مقدم الشكوى: {selected_row[2]}")
144
- st.write(f"📝 الشكوى: {selected_row[3]}")
145
- st.write(f"📅 الوقت: {selected_row[6]}")
146
- if selected_row[7]:
147
- st.info(f"🗣️ تعليق المستخدم على الرد: {selected_row[7]}")
148
-
149
- new_status = st.selectbox("🔄 تحديث الحالة", ["Pending", "In Progress", "Resolved"], index=["Pending", "In Progress", "Resolved"].index(selected_row[4]))
150
- new_response = st.text_area("💬 الرد على الشكوى", value=selected_row[5] or "")
151
-
152
- if st.button("💾 حفظ التعديلات"):
153
- c.execute("UPDATE complaints SET status=?, response=? WHERE complaint_id=?", (new_status, new_response.strip(), selected_row[1]))
154
- conn.commit()
155
- st.success("✅ تم حفظ التعديلات")
156
- st.rerun()
157
-
158
- # زر تسجيل الخروج دائم
159
- if st.session_state.get("is_logged_in"):
160
- st.markdown("---")
161
- if st.button("🚪 تسجيل الخروج"):
162
- st.session_state.is_logged_in = False
163
- st.session_state.user_type = None
164
- st.session_state.username = ""
165
- st.rerun()
166
-
167
- # زر لتحميل قاعدة البيانات
168
- if os.path.exists("complaints_system (1).db"):
169
- with open("complaints_system (1).db", "rb") as db_file:
170
- st.download_button(
171
- label="📥 تحميل complaints_system.db",
172
- data=db_file,
173
- file_name="complaints_system.db",
174
- mime="application/octet-stream"
175
- )
176
- else:
177
- st.warning("⚠️ ملف قاعدة البيانات غير موجود.")
 
8
  st.set_page_config(page_title="نظام إدارة الشكاوى", layout="centered")
9
 
10
  # الاتصال بقاعدة البيانات
11
+ conn = sqlite3.connect("complaints_system.db", check_same_thread=False)
12
  c = conn.cursor()
13
 
14
  # إنشاء الجداول
 
65
  # مقدم الشكوى
66
  elif st.session_state.user_type == "sender":
67
  st.title("📨 إرسال شكوى جديدة")
68
+
69
+ # استخدام دالة callback لمسح محتوى الشكوى
70
+ def clear_complaint():
71
+ st.session_state.complaint_input = ""
72
+
73
+ complaint_text = st.text_area("📝 وصف الشكوى", key="complaint_input")
74
+
75
+ if st.button("📤 إرسال الشكوى", on_click=clear_complaint):
76
  c.execute("SELECT * FROM complaints WHERE username=?", (st.session_state.username,))
77
  user_complaints = c.fetchall()
78
  prefix = st.session_state.username[:4].lower()
 
90
  (complaint_id, st.session_state.username, complaint_text.strip(), "Pending", "", timestamp, ""))
91
  conn.commit()
92
  st.success("✅ تم تقديم الشكوى بنجاح")
 
93
  st.rerun()
94
 
95
  st.subheader("📋 الشكاوى السابقة")
 
120
  st.success("✅ تم إرسال التعليق بنجاح")
121
  st.rerun()
122
  else:
123
+ st.info(f"🗣️