لنادي الجري الخاص بي، أنا أُنسّق تحديًا يستمر عامًا كاملاً يتضمن عنصرًا جماعيًا. لكل فريق من فئات العمرية العشرية، أقوم بإنشاء مجموعة في Discourse حتى يمكن الإشارة إليها بـ @ وإجراء محادثات خاصة بها، رغم أنني أشك بشدة في أن أي شخص سيكتشف هذه الميزة. لذا لدي سبع مجموعات لكل فريق من فرق الفئات العمرية، وعليّ تحديثها يدويًا كلما سجل شخص جديد.
أريد أيضًا إنشاء مجموعة شاملة تضم جميع المشاركين في التحدي. سيكون الأمر أسهل بكثير لو أمكن أن تحتوي المجموعة الأكبر “المتحدين” فقط على المجموعات الفرعية لفئات: 19 عامًا وأقل، 20-29، 30-39، وهكذا. بهذه الطريقة، سأتمكن من إدارة المجموعات الفرعية فقط، وستنتقل التغييرات تلقائيًا إلى المجموعة الشاملة.
هل توجد (أو هل يمكن أن توجد) طريقة للقيام بذلك، أم أنني عالق في الحاجة إلى كتابة كل اسم مستخدم من المجموعات الفرعية يدويًا؟ (أعتقد أن العدد الإجمالي سيصل إلى بضع مئات من الأشخاص، وسيكون هذا مهمة أسبوعية.)
ما زلتُ أشعر بالحيرة إزاء الإشارة إلى “الإضافة الجماعية إلى المجموعة”، حيث لا يظهر هذا الخيار في واجهة المستخدم، حسب ما أستطيع رؤيته — فاللقطات الملتقطة من موضوع عام 2015 الذي أشرت إليه لا تتطابق مع ما أراه الآن. هل هو ببساطة نفس الأمر مثل استخدام نافذة “إضافة أعضاء” داخل المجموعة؟
وكيف يمكنني نسخ قائمة بأعضاء مجموعة واحدة لتمكين الإضافة الجماعية إلى مجموعة أخرى؟ أفضل سير عمل أستطيع التوصل إليه حتى الآن هو نسخ نص صفحة “الأعضاء” واستخدام تعبير نمطي ذكي (في Nisus Writer Pro) لنسخ أسماء المستخدمين. الأمر ممكن، لكنه ليس سهلاً تمامًا.
هناك عدة مراجع لميزة “الإضافة الجماعية إلى المجموعة” هنا في ميتا، لكنني لا أراها نشطة بعد في https://discourse.example.org/admin/groups/bulk، بل تظهر صفحة فارغة فقط (لقد تحققت من عدد قليل من المواقع المختلفة حيث أملك صلاحيات المسؤول). هل ترى أي شيء هناك @adamengst؟
أعتقد أن هذه ميزة مخفية إلى حد ما، ولكن يمكنك استخدام ميزة الدعوة الجماعية لإضافة مستخدمين موجودين إلى المجموعات. فقط جهز ملف CSV يحتوي على عنوان البريد الإلكتروني والمجموعة كما هو موضح في النافذة المنبثقة، ثم قم برفعه. لن يتم إرسال رسائل بريد إلكتروني للمستخدمين.
@tobiaseigen أها! هل تعلم ما إذا كان ذلك سيتعامل مع تحديثات المجموعات للمستخدمين الحاليين إذا كان عنوان البريد الإلكتروني المعني يحتوي بالفعل على حساب؟
شكرًا لك! هذا يقترب أكثر، مع ملاحظة أن الاعتماد على عنوان البريد الإلكتروني غالبًا ما يكون غير فعال بالنسبة لي لأن الكثير من الأشخاص لديهم عناوين متعددة، لذا يجب عليّ التحقق مسبقًا مما إذا كنت أدعو الشخص المرتبط بحساب أم شخصًا آخر قد يسبب ارتباكًا (وقد يؤدي إلى إنشاء حساب ثانٍ له).
لا أعرف كيف تعمل البنية الأساسية، لكن يبدو أن السماح للمجموعات بأن تحتوي على مراجع لمجموعات أخرى هو الأسلوب الأبسط.
يمكنك دائمًا تصدير المستخدمين، ثم استخدام ملف CSV المُصدَّر لإنشاء قائمة جديدة لاستيرادها مرة أخرى باستخدام ميزة الدعوة الجماعية. يبدو أنك تحتاج إلى القيام بذلك مرة واحدة فقط لإعداد النظام مع مستخدميك الحاليين، ثم يدويًا عند انضمام أشخاص جدد أو إجراء تغيير على الفئة العمرية الخاصة بهم.
ربما يكون هناك مجال لكتابة كود مخصص لأتمتة هذه العملية جزئيًا لمجتمعك - يمكنك نشر طلب في Marketplace إذا كان لديك ميزانية.
منذ أن بدأت هذا الموضوع، اعتقدت أنني سأشارك وأقول إن طلبي للمجموعات الهرمية لا يزال ذا صلة تمامًا.
ميزة “الدعوة الجماعية إلى المجموعة” ببساطة لا تلعب دورًا لأنني في حالتي، أضيف أشخاصًا إلى مجموعات محددة حسب العمر ومجموعة شاملة تغطي جميع المجموعات حسب العمر على مدى أربعة أشهر عند تسجيلهم في نظام آخر.
سأرى ما إذا كان بإمكان مطوري أتمتة العملية هذا العام، الآن بعد أن عرفت مدى صعوبة القيام بذلك يدويًا على أساس أسبوعي.
نعم، في الواقع تمكن المطور الخاص بي من مزامنة البيانات من Webscorer، الذي نستخدمه لتسجيل السباقات، مع مجموعات Discourse. يتطلب ذلك تطابق الأسماء، لكنه بنى صفحة مسؤول تُظهر متى لا تتطابق.
لذلك لا توجد تسلسلات هرمية، ولكننا نقوم بملء مجموعات متعددة تلقائيًا، مما يزيل الحاجة الرئيسية التي كانت لدي.
إنها شفرة مفتوحة المصدر لذا يمكنني على الأرجح مشاركتها إذا كان أي شخص مهتمًا بمعرفة كيفية عملها.
إليك مخطط تفصيلي لـ الكود المحدد الذي ذكره آدم سابقًا:
(L36) الحصول على جميع المستخدمين في النظام الخارجي
(L37) الحصول على جميع المستخدمين في Discourse
(L38-39) الحصول على جميع أعضاء المجموعات المعنية (global هي “المجموعة الفائقة” في هذه الحالة)
(L46-78) لكل مستخدم في النظام الخارجي، تحقق مما إذا كان موجودًا في Discourse، وقم بتعيين المجموعات التي هو جزء منها بالفعل والتي يحتاج إلى إضافتها إليها