استطلاعات المناقشة

|||
-|-|-|
:discourse2: | ملخص | يتيح لك المكون الإضافي Discourse Surveys إنشاء استطلاعات رأي مباشرة داخل منشورات منتداك Discourse باستخدام صيغة Markdown بسيطة.
:hammer_and_wrench: | رابط المستودع | https://github.com/discourse/discourse-surveys
:open_book: | دليل التثبيت | كيفية تثبيت المكونات الإضافية في Discourse

يتيح لك المكون الإضافي Discourse Surveys إنشاء استطلاعات رأي مباشرة داخل منشورات منتداك Discourse باستخدام صيغة Markdown بسيطة. يدعم المكون الإضافي حاليًا مجموعة متنوعة من أنواع الأسئلة مثل الأزرار الراديو، وصناديق الاختيار، والقوائم المنسدلة، ومدخلات الأرقام، ومناطق النص، وتقييمات النجوم، وتقييمات الإعجاب/عدم الإعجاب.

صيغة Markdown الأساسية للاستطلاع

إليك مثال أساسي لصيغة Markdown للاستطلاع يتضمن جميع الحقول المتاحة:

[survey name="awesome-survey-thumbs" title="Awesome Survey"]

[radio question="Choose any one option:"]
- cat
- dog
[/radio]

[checkbox question="Choose multiple options:"]
- red
- blue
- green
[/checkbox]

[dropdown question="Gender:"]
- Male
- Female
[/dropdown]

[number question="Rate this survey from 1 to 10:"]
[/number]

[textarea question="What is your feedback about xyz?" required="false"]
[/textarea]

[star question="How would you rate overall experience?"]
[/star]

[thumbs question="Were you satisfied with our services?"]
[/thumbs]

[/survey]

عرض الاستطلاع

فيما يلي مثال لكيفية عرض صيغة Markdown أعلاه في Discourse:

نتائج الاستطلاع

حاليًا، لا يحتوي هذا المكون الإضافي على أي واجهة مستخدم خلفية لعرض نتائج الاستطلاع مباشرة. بدلاً من ذلك، يمكنك الاعتماد على استعلامات Data Explorer لجلب وتحليل استجابات الاستطلاع. إليك مثال للاستعلام:

-- [params]
-- text :survey_name = survey

SELECT s.id, s.name, s.post_id, sf.question, COALESCE(sr.value, sfo.html) AS value, sr.user_id, sr.created_at as responded_at
FROM surveys s
JOIN survey_fields sf ON sf.survey_id = s.id
JOIN survey_responses sr ON sr.survey_field_id = sf.id
LEFT JOIN survey_field_options sfo ON sfo.id = sr.survey_field_option_id
WHERE s.name = :survey_name
ORDER BY s.id DESC

النطاق المستقبلي

يتمتع المكون الإضافي بإمكانيات للعديد من التحسينات. لا تتردد في الانضمام إلى المناقشة، وتقديم طلبات السحب على مستودع المكون الإضافي.

28 إعجابًا

لذا لا يمكن للمستخدمين رؤية النتائج (إلا إذا كان لديهم الحق في استخدام الاستعلام) وهذا بالكامل للمسؤولين/الموظفين الخلفيين؟

3 إعجابات

نعم، هذا صحيح.

7 إعجابات

لا يبدو عمليًا للغاية :cry:

3 إعجابات

الحاجة إلى خيار لنشر نتائج الاستطلاع. بخلاف ذلك، من الأفضل استخدام استطلاعات متعددة.

3 إعجابات

مرحباً

يتم عرض عينة Markdown في موضوع جديد كما هو موضح أدناه. تم تحديث Discourse الخاص بي إلى أحدث إصدار.

ما الذي يمكن أن يكون المشكلة؟

مع خالص التقدير

مرحباً @ppcole،

ما ورد أعلاه هو ما يظهر في معاينة المنشئ عند إنشاء الاستبيان. بمجرد إنشاء الموضوع، سيتم عرضه بشكل صحيح كما هو متوقع.

شكرًا لك Arpit. لقد نجح الأمر. نتطلع إلى التحسينات.

إعجاب واحد (1)

هل لي أن أعرف إذا كنتم تعملون على هذا ولكن ليس بأولوية فعلية؟

سيكون من الرائع أن يستمر تطوير هذا - لديه الكثير من الإمكانات.

وجدت أن الاستعلام SQL أعلاه قام بسحب النتائج، لكنه لم يكن بتنسيق يسهل العمل معه؛ بشكل أساسي، سيتطلب ذلك الكثير من التحويل على مستوى جدول البيانات لتمكين التحليل المفيد.

ومع ذلك، بمساعدة الذكاء الاصطناعي التوليدي، تمكنت من إنتاج استعلام رائع لمستكشف البيانات. نظرًا لبعض القيود في مستكشف البيانات، لا يمكن جعله ديناميكيًا بما يكفي للتعامل مع مجموعة متنوعة من الاستطلاعات؛ بشكل أساسي، تحتاج إلى استعلام مخصص لكل استطلاع.

لحسن الحظ، يمكن للذكاء الاصطناعي التوليدي أن يجعل ذلك بسيطًا للغاية. إليك نموذج مطالبة قد يعمل في معظم خدمات الذكاء الاصطناعي التوليدي (إذا لم يكن لديك المكون الإضافي للذكاء الاصطناعي نشطًا) - فقط قم بلصق علامة الاستطلاع الخاصة بك وستكون جاهزًا للانطلاق:

مطالبة الذكاء الاصطناعي التوليدي لإنتاج استعلام SQL مخصص لاستطلاع معين

لدي استطلاع معرف بتنسيق markdown، وأحتاج إلى استعلام SQL لاستخراج نتائج الاستطلاع من قاعدة بيانات Discourse باستخدام المكون الإضافي لمستكشف البيانات. يتضمن الاستطلاع أنواعًا مختلفة من الأسئلة مثل الراديو، والقائمة المنسدلة، والنجوم، ومربعات الاختيار، ومربعات النص، والإبهام، والأرقام. أريد أن يقوم الاستعلام بإخراج النتائج مع وجود صف واحد لكل مستخدم وعمود لكل سؤال. بالنسبة لأسئلة مربعات الاختيار، يجب دمج الاستجابات المتعددة في سلسلة واحدة.

هذا هو علامة الاستطلاع:

الصق علامة الاستطلاع الخاصة بك هنا

هذا هو الاستعلام الأصلي المستخدم للحصول على نتائج الاستطلاع:

-- [params]
-- text :survey_name = survey

SELECT s.id, s.name, s.post_id, sf.question, COALESCE(sr.value, sfo.html) AS value, sr.user_id, sr.created_at as responded_at
FROM surveys s
JOIN survey_fields sf ON sf.survey_id = s.id
JOIN survey_responses sr ON sr.survey_field_id = sf.id
LEFT JOIN survey_field_options sfo ON sfo.id = sr.survey_field_option_id
WHERE s.name = :survey_name
ORDER BY s.id DESC

يرجى إنشاء استعلام SQL يقوم بما يلي:

  • ترميز اسم الاستطلاع بشكل ثابت.
  • استخدام التجميع الشرطي لقلب البيانات، مع كل سؤال كعمود.
  • استخدام STRING_AGG لأسئلة مربعات الاختيار للتعامل مع الاستجابات المتعددة.
  • التأكد من تجميع الإخراج حسب user_id وترتيبه حسب user_id.
  • أن يكون منسقًا للقراءة ويتضمن تعليقات توضح المنطق عند الضرورة.

إرشادات إضافية لمكون مستكشف البيانات الإضافي:

  • يجب أن يكون الاستعلام متوافقًا مع مكون Discourse Data Explorer الإضافي، مما يعني أنه لا يجب أن ينتهي بفاصلة منقوطة.
  • استخدم أسماء أعمدة مثل user_id للاستفادة من ميزات الربط التلقائي داخل مستكشف البيانات.
  • تجنب استخدام SQL الديناميكي، حيث لا يدعمه المكون الإضافي.
  • تأكد من أن الاستعلام فعال ومحسن للأداء، حيث قد يتم تشغيله على مجموعات بيانات كبيرة.
7 إعجابات

هذه إضافة صغيرة ممتازة وغنية بالميزات بشكل مدهش. شكراً لصناعتها.

@nathank عمل رائع على الدليل لبناء استعلام النتائج بسرعة.

4 إعجابات

لقد قمت بتثبيت هذا على موقعي المستضاف ذاتيًا لتجربته، وهو لطيف جدًا بالفعل!

أدرك أن هذا يتعارض مع الخطاب، ولكن سيكون من المفيد إذا كان من الممكن إنشاء استطلاعات يمكن إكمالها بشكل مجهول، دون تسجيل الدخول. أو على الأقل إخفاء هوية النتائج بحيث لا ترتبط بمستخدمين محددين.

وبالطبع نعم، ستكون القدرة على النظر إلى النتائج كما تفعل مع استطلاعات الرأي دون الحاجة إلى اللجوء إلى مستكشف البيانات رائعة.

4 إعجابات

نعم، واجهت نفس المشكلة. نأمل أن يكون هناك حل.

3 إعجابات