حاليًا، يستخدم آلية مشابهة لتصدير المستخدم، مما يمنحك:
ملف مضغوط عبر رسالة خاصة لأولئك الذين لديهم امتيازات التحرير على هذا المنشور
يمنحك هذه الحقول: username status first_answered_at last_updated_at
الاقتراح 1
توفير تنزيل مباشر لملف CSV من النافذة المنبثقة
سيكون هذا أبسط بكثير من منظور المستخدم
الاقتراح 2
الإبلاغ عن رسائل البريد الإلكتروني الأساسية في هذا التنزيل (أو توفير خيار لذلك)
سيسمح هذا بتصدير سهل للمشاركين عند الحاجة لأغراض أخرى متعلقة بالحدث.
لدي استعلام مستكشف البيانات لهذا حاليًا والذي يعمل بشكل جيد بما فيه الكفاية، ولكنه يتطلب الكثير من التعديل لمنح منظمي الحدث (أي المنشئ الأصلي) الوصول إليه:
-- [params]
-- int :post_id
WITH e AS (
SELECT email, user_id
FROM user_emails u
WHERE u.primary = true
)
SELECT dpei.user_id, email, status, notified
FROM discourse_post_event_invitees dpei
JOIN e ON e.user_id = dpei.user_id
WHERE dpei.post_id = :post_id
ORDER BY status, email
لقد تم اكتشاف هذا مرة أخرى اليوم، عندما سأل أحد المسؤولين لدينا عن كيفية معرفة متى نقر الأشخاص على “ذاهب”.
مشكلة تجربة المستخدم التي واجهناها هي أن النقر على “تصدير الحدث” لا يبدو أنه يفعل أي شيء بالفعل (أي، لا يوجد رد فعل). فقط عندما لاحظت أن لدي بعض الرسائل لاحقًا (حيث نقرت عدة مرات أثناء البحث عن أخطاء في وحدة التحكم) أدركت أنها نجحت بالفعل.
إن ضغط الملف يضيف الكثير من الاحتكاك مقابل لا شيء. من المحتمل أن يكون أي ملف CSV صغيرًا جدًا.
سيكون من الجيد تنظيم هذا قليلاً، حيث إنها وظيفة مفيدة جدًا (بمجرد أن تكتشف كيفية عملها).
نحن نستخدم صيغة [event] الخاصة بـ Discourse (عبر إضافة التقويم) لجدولة وتنسيق اجتماعات المجلس الرسمية — كل حدث يعيش داخل موضوع مخصص، ونشجع الأعضاء على تأكيد الحضور باستخدام الواجهة المدمجة.
المشكلة هي: ليس لدينا حاليًا طريقة واضحة لاستخراج بيانات تأكيد الحضور هذه بتنسيق قابل للاستخدام. بالنسبة لجلسات المشاركة العامة، والاجتماعات التنفيذية، والإحاطات الداخلية، سيكون من المفيد للغاية تصدير:
عنوان موضوع الحدث + عنوان URL
الاسم المعروض / اسم المستخدم للمؤكدين
حالة تأكيد الحضور (ذاهب / مهتم / غير ذاهب)
عنوان البريد الإلكتروني (للمسؤولين فقط، لسجلات الحضور أو المتابعة المباشرة)
الطابع الزمني لتأكيد الحضور (إن أمكن)
غالبًا ما لا يستخدم كتبة المجلس ورؤساء الجلسات Discourse بأنفسهم، لذا فإن القدرة على تنزيل ملف CSV ومشاركة الحضور معهم أمر ضروري.
من المفهوم أن رؤية البريد الإلكتروني ستحتاج إلى أن تكون محدودة الأذونات لموظفي الموقع أو مشرفي المجموعات — ولكن بدونها، يفقد التصدير معظم قيمته الإدارية.
سيؤدي هذا النوع من التصدير المنظم إلى تحسين فائدة الإضافة بشكل كبير للمنظمات الواقعية التي تستخدم Discourse لتنسيق الاجتماعات غير المتصلة بالإنترنت.
يسعدنا تقديم عينة تخطيط ملف .csv إذا كان ذلك مفيدًا!
سيقطع استعلام مستكشف البيانات هذا شوطًا طويلاً في تزويدك بما تحتاجه:
-- [params]
-- int :topic_id
WITH user_emails AS (
SELECT
ue.user_id,
ue.email
FROM
user_emails ue
WHERE
ue.primary = true
),
forum_timezone AS (
SELECT
value AS timezone
FROM
site_settings
WHERE
name = 'discourse_local_dates_email_timezone'
)
SELECT
u.name AS display_name,
u.username,
ue.email,
CASE dpei.status
WHEN 0 THEN 'Going'
WHEN 1 THEN 'Interested'
WHEN 2 THEN 'Not Going'
END AS status,
to_char(dpei.created_at AT TIME ZONE 'UTC' AT TIME ZONE ft.timezone, 'YYYY-MM-DD HH24:MI:SS') AS rsvp_timestamp
FROM
discourse_post_event_invitees dpei
JOIN
posts p ON p.id = dpei.post_id
JOIN
users u ON u.id = dpei.user_id
JOIN
user_emails ue ON ue.user_id = dpei.user_id
JOIN
forum_timezone ft ON true
WHERE
p.topic_id = :topic_id
ORDER BY
dpei.status, ue.email
إذا قمت بإنشاء مجموعة لموظفي المسؤولين لديك، وجعلت هذا الاستعلام متاحًا لهم، فمن المحتمل أن يؤدي المهمة بشكل جيد.
ستحتاج إلى تعليمهم كيفية استخدام معرف الموضوع (Topic ID)، وما يعنيه ذلك من حيث عنوان URL. ولكن من المحتمل أن يكون ذلك قابلاً للتنفيذ.
نعم، ولكن لا ينبغي لموظفيك الإداريين أن يكونوا مسؤولين عن موقع Discourse الخاص بك إلا إذا كانوا يحتاجون حقًا إلى هذا المستوى من الوصول.
لذلك، يمكنك إما جعلهم مسؤولين كاملين واستخدام @admins، أو إنشاء مجموعة جديدة تحتوي عليهم. ثم قم بتعيين استعلام مستكشف البيانات لهذه المجموعة (يمكنهم بعد ذلك الوصول إليه ضمن علامة التبويب التقارير).