in moderator/moderate/views.py [0:0]
def moderate_event(request, slug, q_id=None, accepted=None):
event = get_object_or_404(Event, slug=slug)
user = request.user
if not (event.moderators.filter(pk=user.pk).exists() or user.is_superuser):
raise Http404
questions = Question.objects.filter(event=event, is_accepted__isnull=True)
question_form = QuestionForm()
# Update the question if it's accepted or rejected
if q_id:
try:
question = Question.objects.get(id=q_id)
except Question.DoesNotExist:
raise ValidationError("This question is not valid")
question.is_accepted = accepted
question.save()
if request.method == "POST":
question_form = QuestionForm(request.POST, instance=question)
# update the question with moderator's reply
if question_form.is_valid():
reason = question_form.cleaned_data.get("rejection_reason")
Question.objects.filter(id=question.pk).update(rejection_reason=reason)
if (
reason
and not question.is_accepted
and question.submitter_contact_info
):
send_mail(
SUBJECT,
reason,
settings.FROM_NOREPLY,
[question.submitter_contact_info],
)
messages.success(request, "Email sent successfully")
return redirect(reverse("moderate_event", kwargs={"slug": event.slug}))
return render(
request,
"moderation.jinja",
{"user": user, "event": event, "questions": questions, "q_form": question_form},
)