Advertisement
Fahim_7861

moderation alert

Nov 3rd, 2021
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  1. class ModerationAlertAPIView(GenericAPIView):
  2. permission_classes = [IsAuthenticated, IsModerator]
  3.  
  4. @staticmethod
  5. def get_random_question():
  6. flagged_question_ids = [
  7. question.id for question in Question.objects.filter(state='flagged')
  8. ]
  9. duplicate_question_ids = [
  10. question.id for question in Question.objects.filter(state='duplicate')
  11. ]
  12. max_questions = min(len(flagged_question_ids), len(duplicate_question_ids))
  13.  
  14. if len(flagged_question_ids) > max_questions:
  15. random.shuffle(flagged_question_ids)
  16. flagged_question_ids = flagged_question_ids[:max_questions]
  17. if len(duplicate_question_ids) > max_questions:
  18. random.shuffle(duplicate_question_ids)
  19. duplicate_question_ids = duplicate_question_ids[:max_questions]
  20.  
  21. question_ids = flagged_question_ids
  22. question_ids.extend(duplicate_question_ids)
  23.  
  24. if question_ids:
  25. question = Question.objects.get(id=random.choice(question_ids))
  26. if question.state == 'flagged':
  27. flag_remark = f'({question.flag_remark})' if question.flag_remark else ''
  28. return {
  29. 'alert_title': f'Following question was flagged {flag_remark} - ',
  30. 'alert_body': question.question,
  31. 'alert_footer': 'Do you want to review the question?',
  32. 'on_proceed': reverse('questionbank:question-update', kwargs={'pk': question.id})
  33. }
  34. else:
  35. return {
  36. 'alert_title': 'Following question was marked as duplicate - ',
  37. 'alert_body': question.question,
  38. 'alert_footer': 'Do you want to review the similar questions?',
  39. 'on_proceed': reverse('questionbank:question-duplicates', kwargs={'pk': question.id})
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement