لا يمكن إزالة شارة الإعجاب الأول

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

خطوات التكرار:

  1. إنشاء مستخدم جديد
  2. الإعجاب بمنشور
  3. تلقي شارة “الإعجاب الأول”
  4. إلغاء الإعجاب بالمنشور
  5. التبديل إلى مستخدم مسؤول
  6. الانتقال إلى لوحة تحكم المسؤول للمستخدم الذي أعجب بالمنشور
  7. زيارة خيار “تعديل الشارات”
  8. النقر على “إلغاء” على شارة “الإعجاب الأول”
  9. الانتظار قليلاً (لست متأكدًا من وقت تشغيل مهمة الملء التلقائي لهذه الشارة تحديدًا، ولكن يومًا واحدًا سيكون كافيًا بالتأكيد. ربما حاول تشغيل جميع المهام المتعلقة بالشارات في Sidekiq لتسريعها؟)
  10. يتم منح الشارة مرة أخرى للمستخدم تلقائيًا، لنفس المنشور الذي تم إلغاء الإعجاب به وفي نفس تاريخ إجراء الإعجاب.

لقد قمت بتضييق نطاق المشكلة إلى هذا السطر من استعلام SQL لمنح الشارة، لأنه بينما لا يزال الصف في post_actions لإجراء الإعجاب موجودًا بعد إلغاء الإعجاب، فإن عمود deleted_at الخاص به تم تعيينه إلى قيمة تاريخ، وهو ما لا يأخذه الاستعلام في الاعتبار. أعتقد أن إصلاح هذا سيغير عبارة WHERE في الاستعلام الفرعي إلى:

      WHERE post_action_type_id = 2 AND
        pa.deleted_at IS NULL AND
        (:backfill OR pa.post_id IN (:post_ids) )

لكن ليس لدي بيئة تطوير معدة أو الكثير من الوقت لاختبار هذا الإصلاح بنفسي.

الأولوية/الخطورة: لقد قمت بحل هذه المشكلة بنفسي عن طريق حذف صفوف post_actions ذات الصلة بالفعل، ولم أتلق مثل هذا الطلب من قبل. أعتقد أن هذا لا يجعلها ذات أولوية عالية جدًا؟

إعجابَين (2)

لقد أعجب بمنشور. إلغاء الإعجاب بمنشور لا يغير حقيقة أنه أثبت أنه يعرف كيفية الإعجاب بمنشور. ربما يكون مؤهلاً للحصول على شارة “إلغاء الإعجاب الأول”، ولكن الآن بعد أن أعجب بمنشور، فقد أعجب بمنشور. يحصل على الشارة لأنه أعجب بمنشور. لا يمكنك إلغاء ما تم.

هذا تخميني.

كان حلك ذكيًا جدًا. طريقة أخرى لإزالة شارتهم هي حذف المستخدم. :rofl:

إعجابَين (2)

هذا صحيح، لكنني ما زلت أعتقد أنه من غير البديهي كيف لا يمكنني، بصفتي مسؤولاً، إلغاء هذه الشارة من المستخدم، حتى بعد إلغاء إعجابه بالمنشور. على الأقل يجب أن يكون هناك نوع من الإشعار على زر “إلغاء” في عرض تعديل الشارات حول كيفية عدم إمكانية إلغاء الشارة؟ بدلاً من السلوك الحالي، الذي يعيد منح الشارة بصمت أثناء وظيفة إعادة ملء خلفية، مما يجعل المسؤول يتساءل عما إذا كان قد نقر بالفعل على هذا الزر أم لا.

إعجابَين (2)

أتفق.

أعتقد أن ردي كان سيكون على غرار:

أنا آسف يا ديف. أخشى أنني لا أستطيع فعل ذلك.

3 إعجابات

تم نقل هذا إلى ميزة، أعتقد أن طلب الميزة هو:

اجعل من الممكن إلغاء شارة يتم إعادة تقييمها بنسبة 100٪
أو

حظر المسؤولين من إلغاء الشارات المستندة إلى SQL / الشارات ذات التقييم المتكرر


في الوقت الحالي، توصيتي هي “لا تفعل ذلك”، ولكن تجربة المسؤول يمكن بالتأكيد أن تكون أفضل.

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