0
الإدارات
0
المشرفون
0
المؤطرون
0
المصوتون
📊 التوزيع حسب المشرف
📈 التطور التراكمي (30 يومًا)
🏘️ أكبر الأحياء
🎯 نسبة بلوغ الأهداف
📅 التتبع اليومي
المصوتون حسب المشرف
أعلى المؤطرين
حصيلة المشرفين
| المشرف | الإدارة | المؤطرون | المصوتون | الإنجاز |
|---|
حصيلة المؤطرين
| المؤطر | المشرف | الإدارة | المصوتون | الإنجاز |
|---|
➕ إضافة عدة مصوتين دفعة واحدة
اختر المشرف والمؤطر مرة واحدة، ثم اكتب أو الصق عدة مصوتين معًا. الأعمدة تُقرأ بأسمائها، وب.ت.و المكرر يُتجاوز.
| # | الاسم الكامل * | رقم ب.ت.و | المركز | الحي | الهاتف |
|---|
إدخال مصوّت جديد
لائحة المصوتين
| # | الاسم | ب.ت.و | المركز | الحي | المؤطر |
|---|
إضافة مشرف
لائحة المشرفين
| المشرف | الإدارة | الهاتف | المؤطرون | المصوتون |
|---|
إضافة مؤطر
لائحة المؤطرين
| المؤطر | المشرف | الإدارة | الحي | المصوتون |
|---|
🗺️ التوزيع الجغرافي
مراكز التصويت
| المركز | الحي | المصوتون |
|---|
التوزيع حسب الحي
| الحي | المصوتون | الحصة |
|---|
التوزيع حسب المركز
| المركز | المصوتون | الحصة |
|---|
مراقبة الجودة
| ب.ت.و | التكرار | الأسماء |
|---|
تقارير PDF
ملف PDF حقيقي متعدد الصفحات يُتنزَل تلقائيًا.
ملف لكل مؤطر
| المؤطر | المشرف | المصوتون |
|---|
🖨️ الطباعة وحفظ PDF
تقرير مهيّأ للورق: كل مشرف يبدأ في صفحة جديدة، مع ترويسة ومساحة توقيع أسفل كل صفحة. اضغط «طباعة» ثم اختر حفظ كـ PDF في نافذة المتصفح.
اختيار دقيق (اختياري)
إن لم تحدّد شيئًا، يُطبع النطاق المختار أعلاه كاملًا.
المعاينة
اضغط «تجهيز المعاينة»
ستظهر الصفحات هنا كما ستُطبع تمامًا
طلبات تحتاج موافقتك
طلباتي السابقة
إضافة إدارة
قائمة الإدارات
| الإدارة | المشرفون | المؤطرون | المصوتون |
|---|
📊 مراقبة رسائل واتساب
«أُرسل» تعني أن UltraMsg قَبِل الطلب، لا أن الرسالة وصلت. الوصول يظهر كـ «سُلّمت» عبر الـ Webhook. يتطلّب whatsapp.sql ونشر الدالتين.
| الوقت | الحالة | الرقم | المستلم | النوع | الرسالة / الخطأ |
|---|
⏱️ جلسة إدخال سريع
اختر المشرف والمؤطر مرة واحدة، ثم أدخل المصوتين تباعًا بلا إعادة اختيار. عند الإغلاق يُرسَل تقرير الجلسة على واتساب.
🌟 رفع لائحة لمؤطر
اختر المؤطر ثم الصق اللائحة. تُوزَّع البيانات تلقائيًا تحته وتُربط بإدارته، ويُتجاوز أي رقم بطاقة وطنية مكرر.
انسخ الأعمدة من Excel والصق داخل أول خلية — تتوزّع تلقائيًا وتُضاف السطور. سطر العناوين يُتجاوز لوحده، والأعمدة تُرتَّب حسب أسمائها.
| # | الاسم الكامل * | رقم ب.ت.و | المركز | الحي | الهاتف |
|---|
استيراد لائحة عامة (مشرفون + مؤطرون + مصوتون)
التصدير والنسخ
📲 بوابة UltraMsg + التقرير اليومي
الرسالة الشخصية: كل مستخدم يتوصّل بملخّص نطاقه هو فقط، على رقمه المسجّل في تبويب «المستخدمون».
✉️ دعوة مستخدم
لا يمكنك منح صلاحية تساوي صلاحيتك أو تفوقها — القاعدة ترفض ذلك ولو عُبث بالطلب. يتطلّب reports-invitations.sql.
| البريد | الصلاحية | الحالة | تنتهي |
|---|
المستخدمون والصلاحيات
يمكن منح المستخدم أكثر من إدارة. الحسابات الجديدة «في انتظار التفعيل». المشرف يُربط تلقائيًا بسجلّه عند أول دخول.
| البريد | الصلاحية | الإدارات | مرتبط بـ | الهاتف |
|---|
📝 تقرير اليوم
تقرير واحد لكل مؤطر في اليوم. بعد الإرسال لا تستطيع تعديله — المسؤول وحده يعتمده أو يرجعه. يتطلّب reports-invitations.sql.
التقارير
| التاريخ | الحالة | المؤطر | العنوان | جدد |
|---|
📜 سجل العمليات
يُكتب من داخل القاعدة بواسطة تريغرات، ولا يستطيع أي مستخدم — ولا المسؤول العام — التعديل عليه أو حذفه. يتطلّب تنفيذ audit-log.sql.
| الوقت | العملية | السجل | الجدول | الفاعل |
|---|
⚠️ إصلاح سريع: عمود الهاتف
إذا ظهر لك الخطأ PGRST204 — Could not find the 'phone' column فمعناه أن عمود الهاتف غير موجود بعدُ في جدول profiles. نفّذ السطرين التاليين في SQL Editor ثم أعد تحميل الصفحة.
alter table profiles add column if not exists phone text; notify pgrst, 'reload schema';
إلى أن تنفّذه، تُحفظ الأرقام في هذا المتصفح فقط ولن تظهر لبقية الأجهزة.
🗑️ السجلات المحذوفة
شواهد الحذف تمنع عودة أي سجل حُذف من القاعدة، حتى من جهاز غاب أسابيع. تتطلّب تنفيذ schema-v3.sql.
| وقت الحذف | الجدول | السجل |
|---|
⬇️ فحص السحب — لماذا الرقم صفر؟
السحب كان يبتلع الأخطاء: لو فشل تحميل جدول واحد (مهلة، صلاحية، خطأ سياسة) كان يُفرَّغ الجدول محليًا بلا رسالة — فتظهر «0» وكأن البيانات غير موجودة.
⬆️ فحص الرفع — لماذا لا تصل البيانات؟
الرفع كان يبتلع الأخطاء بصمت: لو رفض الخادم دفعة واحدة (بسبب رقم بطاقة مكرر مثلًا) تسقط الدفعة كاملة ولا تُخبرك. لهذا قد ترى بيانات في متصفحك وصفرًا في القاعدة.
🔄 مزامنة النسخة المحلية
الرفع لا يحذف: أي سجل حُذف من القاعدة مباشرة (عبر SQL) قد يعود من متصفح لم يُحدَّث بعد. نفّذ هذا على كل جهاز بعد أي حذف من SQL Editor.
🔧 إصلاح ترابط البيانات
يُعيد بناء الروابط الناقصة: إدارة كل مؤطر تُؤخذ من مشرفه، وإدارة كل مصوّت من مؤطره. نفّذه إذا كان مستخدم لا يرى بيانات إدارته.
🗃️ سكربتات القاعدة — الحالة المعتمدة
حُذفت من هذه الصفحة نسخ SQL القديمة عمدًا. كانت تُنشئ جيلًا سابقًا من السياسات بأسماء مختلفة، وPostgres يجمع السياسات بـ OR — فسياسة قديمة متساهلة واحدة تُبطل كل التشديد اللاحق. لا تنفّذ أي شيء من ذاكرة الصفحة؛ الملفات المرفقة وحدها هي المرجع.
| المكوّن | الملف / الأمر | الحالة |
|---|
ترتيب التنفيذ: السكربت النهائي v2 ← audit-log.sql ← schema-v3.sql ← centers-migration.sql ← whatsapp.sql ← نشر wa-send وwa-webhook.
🧪 اختبار الحماية
يحاول فعلًا ما لا يُفترض أن ينجح — من حسابك الحالي وعبر الشبكة، لا محاكاة. شغّله بكل حساب (مسؤول، مشرف، مؤطر، منتظر) وقارن.
🔐 الأمان
الحماية الحقيقية في القاعدة وليست في المتصفح: المفتاح anon ظاهر للجميع، فما لم تُفعّل سياسات RLS أسفله يستطيع أي شخص قراءة كل الجدول بأداة بسيطة.