コード例 #1
0
def flag(request, slug):
    submission = get_object_or_404(Submission, slug=slug)

    if request.method != "POST":
        form = ContentFlagForm(request.GET)
    else:
        form = ContentFlagForm(request.POST, request.FILES)
        if form.is_valid():
            flag_type = form.cleaned_data['flag_type']
            recipients = None
            if (flag_type in FLAG_NOTIFICATIONS
                    and FLAG_NOTIFICATIONS[flag_type]):
                recipients = [
                    profile.user.email
                    for profile in UserProfile.objects.filter(
                        content_flagging_email=True)
                ]
            flag, created = ContentFlag.objects.flag(
                request=request,
                object=submission,
                flag_type=flag_type,
                explanation=form.cleaned_data['explanation'],
                recipients=recipients)
            return HttpResponseRedirect(
                reverse('demos.views.detail', args=(submission.slug, )))

    return render(request, 'demos/flag.html', {
        'form': form,
        'submission': submission
    })