أقترح تغيير هذه الصياغة إلى “منح شارة لـ مجموعة من المستخدمين”، لأن المجموعة لها معنى محدد في Discourse، ومجموعة عناوين بريد إلكتروني عشوائية في ملف CSV ليست كذلك .
عند إضافة مستخدمين بشكل جماعي إلى مجموعة، يتوقع النظام قائمة بأسماء المستخدمين. أما عند إضافة مستخدمين بشكل جماعي إلى شارة، فيتوقع النظام ملفًا بصيغة .csv يحتوي على عناوين البريد الإلكتروني.
شخصيًا، أفضل قائمة أسماء المستخدمين، حيث يُعد الحصول عليها من المنتديات أسهل بكثير دون المرور بخطوات إدارية معقدة، كما أن لدي بعض الحيل في Excel يمكنها إنتاج قائمة جاهزة للنسخ واللصق. كنتُ سابقًا أخصص الشارات بشكل جماعي عن طريق إضافة قائمة إلى مجموعة مؤقتة، ثم تعديل استعلام الشارة لتخصيصها لتلك المجموعة بأكملها. عندما ظهرت ميزة “تخصيص شارة لمجموعة من المستخدمين”، كنتُ آمل في اختصار خطوة…
هل توجد طريقة لجعل طريقة قائمة المستخدمين بديلاً صالحًا لتخصيص الشارات بشكل جماعي؟
إذا كان العنصر الأول في القائمة يحتوي على “@”، فقم بالاستيراد عبر البريد الإلكتروني، وإلا فقم بالاستيراد عبر اسم المستخدم.
كما يمكننا أن نكون أكثر مرونة قليلًا فيما يتعلق بتنسيق تلك القائمة.
يمكننا ببساطة اشتراط أن تكون عناوين البريد الإلكتروني أو أسماء المستخدمين كل منها في سطر منفصل، ثم نقوم بـ split("\n")، ونحذف أي أسطر فارغة، ونحذف أي فاصلة “,” زائدة في النهاية، ونحذف أي زوج من علامات التنصيص المفردة أو المزدوجة (مثلًا: gsub(/^['"]|['"]$/, "")).
أعلم أن الأمر صعب وقد يبدأ في التسبب في توسع نطاق المهمة (mission creep)، لكنني أتساءل ما إذا كان من الممكن أن يهدف واجهة المشرف (Admin UI) مع مرور الوقت إلى تحقيق مزيد من الاتساق عبر جميع عمليات الدُفعات (bulk operations) في لوحة المشرف؟ على سبيل المثال، عند:
منح الشارات (Badges) بشكل جماعي: اختر الشارة ثم قم بتحميل ملف CSV يحتوي على عناوين البريد الإلكتروني للمستخدمين
إضافة المستخدمين إلى مجموعة بشكل جماعي: اختر المجموعة ثم الصق قائمة بـ أسماء المستخدمين أو عناوين البريد الإلكتروني، سطر واحد لكل مستخدم
دعوة المستخدمين إلى Discourse بشكل جماعي: قم بتحميل ملف CSV يحتوي على عناوين البريد الإلكتروني للمستخدمين (مع إمكانية تحديد المجموعات التي سيتم إضافتهم إليها ومنشور البداية الذي سيتم عرضه لهم)
من الواضح أن هناك مناطق مشتركة بين هذه العمليات، لكن هناك أيضًا تباينات واضحة حيث لا تقوم جميعها بنفس الشيء. لذا، لا أعرف مدى سهولة العمل نحو نموذج واجهة مستخدم (UI paradigm) متسق لجميع إجراءات الدُفعات في لوحة المشرف. لكنني اعتقدت أنه يجب طرح هذه القضية هنا نظرًا لأن الموضوع قيد النقاش.
من بين هذه المتغيرات الثلاثة، أعتقد أن الخيار الأفضل حاليًا هو “إضافة إلى مجموعة بشكل جماعي” الذي يتيح “الصق قائمة بأسماء المستخدمين أو عناوين البريد الإلكتروني، سطر واحد لكل مستخدم”.
في كثير من الأحيان، أرغب في دعوة عدة مستخدمين (لنقل من 5 إلى 10 مستخدمين)، وطريقة الدعوة واحدة تلو الأخرى بطيئة بشكل مزعج بعض الشيء، بينما طريقة الدعوة عبر ملف CSV معقدة بعض الشيء وتتطلب مني تشغيل برنامج آخر أو تحرير ملف CSV يدويًا. حتى لو تم الاحتفاظ برفع ملف CSV للدعوات الضخمة جدًا، فسيكون رائعًا وجود نافذة “دعوة المستخدمين” تشبه نافذة “إضافة إلى مجموعة بشكل جماعي”. بالطبع، يمكنها قبول عناوين البريد الإلكتروني فقط، سطر واحد لكل عنوان، لكن هذا سيكون مقبولاً.
رغم أنه لا يزال ليس ببساطة لصق قائمة بأسماء المستخدمين في مربع، إلا أنه خطوة كبيرة للأمام مقارنة بضرورة استخدام عناوين البريد الإلكتروني! هل توجد خطط لتوحيد المعالجة الجماعية لإضافة المستخدمين إلى المجموعات أو الشارات؟ لستُ مبرمجًا، لكن يبدو لي أن هذا كود قابل لإعادة الاستخدام
إذا تم تحديد مربع الاختيار “يمكن منحها عدة مرات” الخاص بالشارة (الموجود في القسم السفلي من صفحة إدارة الشارات)، فيجب أن تتمكن من منح الشارة عدة مرات بهذه الطريقة.
لقد قمت بتفعيله، لكن عند الاستيراد عبر ملف CSV (حتى لو كان مجرد قائمة بأسماء المستخدمين الذين يحملون بالفعل الشارة) لا يتم منحها مرة أخرى. يجب أن أقوم بمنح الشارة للمستخدم يدويًا قبل أن تظهر على أنها مُمنَّحة عدة مرات.
أعتقد أن هذه الشارة موثوقة جدًا، ولكن أحيانًا يمكن أن يؤدي الاختلاف بين المناطق الزمنية والتوقيت العالمي المنسق (UTC) إلى ظهورها بشكل غير موثوق.
لا أعتقد أنه يمكنك منح هذه الشارة يدويًا حاليًا، ولكن إنشاء ملف CSV بأسماء المستخدمين يستغرق ثانية أو ثانيتين فقط. لقد قمت للتو بتجربة باستخدام جداول بيانات Google على هاتفي، وكانت سريعة جدًا.