Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ModerationAlertAPIView(GenericAPIView):
- permission_classes = [IsAuthenticated, IsModerator]
- @staticmethod
- def get_random_question():
- flagged_question_ids = [
- question.id for question in Question.objects.filter(state='flagged')
- ]
- duplicate_question_ids = [
- question.id for question in Question.objects.filter(state='duplicate')
- ]
- max_questions = min(len(flagged_question_ids), len(duplicate_question_ids))
- if len(flagged_question_ids) > max_questions:
- random.shuffle(flagged_question_ids)
- flagged_question_ids = flagged_question_ids[:max_questions]
- if len(duplicate_question_ids) > max_questions:
- random.shuffle(duplicate_question_ids)
- duplicate_question_ids = duplicate_question_ids[:max_questions]
- question_ids = flagged_question_ids
- question_ids.extend(duplicate_question_ids)
- if question_ids:
- question = Question.objects.get(id=random.choice(question_ids))
- if question.state == 'flagged':
- flag_remark = f'({question.flag_remark})' if question.flag_remark else ''
- return {
- 'alert_title': f'Following question was flagged {flag_remark} - ',
- 'alert_body': question.question,
- 'alert_footer': 'Do you want to review the question?',
- 'on_proceed': reverse('questionbank:question-update', kwargs={'pk': question.id})
- }
- else:
- return {
- 'alert_title': 'Following question was marked as duplicate - ',
- 'alert_body': question.question,
- 'alert_footer': 'Do you want to review the similar questions?',
- 'on_proceed': reverse('questionbank:question-duplicates', kwargs={'pk': question.id})
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement