Esempio n. 1
0
def flag(request, comment_id, next=None):
    """
    Flags a comment. Confirmation on GET, action on POST.

    Templates: :template:`comments/flag.html`,
    Context:
        comment
            the flagged `comments.comment` object
    """
    comment = get_object_or_404(get_comment_model(),
                                pk=comment_id, site__pk=settings.SITE_ID)
    if not has_app_model_option(comment)['allow_flagging']:
        ctype = ContentType.objects.get_for_model(comment.content_object)
        raise Http404("Comments posted to instances of '%s.%s' are not "
                      "explicitly allowed to receive 'removal suggestion' "
                      "flags. Check the COMMENTS_XTD_APP_MODEL_OPTIONS "
                      "setting." % (ctype.app_label, ctype.model))
    # Flag on POST
    if request.method == 'POST':
        perform_flag(request, comment)
        return next_redirect(request, fallback=next or 'comments-flag-done',
                             c=comment.pk)

    # Render a form on GET
    else:
        return render(request, 'comments/flag.html',
                      {'comment': comment,
                       'next': next})
Esempio n. 2
0
def flag(request, comment_id, next=None):
    """
    Flags a comment. Confirmation on GET, action on POST.

    Templates: :template:`comments/flag.html`,
    Context:
        comment
            the flagged `comments.comment` object
    """
    comment = get_object_or_404(get_comment_model(),
                                pk=comment_id, site__pk=settings.SITE_ID)
    if not has_app_model_option(comment)['allow_flagging']:
        ctype = ContentType.objects.get_for_model(comment.content_object)
        raise Http404("Comments posted to instances of '%s.%s' are not "
                      "explicitly allowed to receive 'removal suggestion' "
                      "flags. Check the COMMENTS_XTD_APP_MODEL_OPTIONS "
                      "setting." % (ctype.app_label, ctype.model))
    # Flag on POST
    if request.method == 'POST':
        perform_flag(request, comment)
        return next_redirect(request, fallback=next or 'comments-flag-done',
                             c=comment.pk)

    # Render a form on GET
    else:
        return render(request, 'comments/flag.html',
                      {'comment': comment,
                       'next': next})
Esempio n. 3
0
def report(request, comment_id):
    """
    Flags a comment on GET.

    Redirects to whatever is provided in request.REQUESRT['next'].
    """

    comment = get_object_or_404(
        django_comments.get_model(), pk=comment_id, site__pk=settings.SITE_ID)
    if comment.parent is not None:
        messages.info(request, _('Reporting comment replies is not allowed.'))
    else:
        perform_flag(request, comment)
        messages.info(request, _('The comment has been reported.'))

    next = request.GET.get('next') or comment.get_absolute_url()
    return HttpResponseRedirect(next)
Esempio n. 4
0
    def flag_ucomment(self, request, **kwargs):
        """
        Flags a comment on POST request only using method from django_comments view (to bypass csrf protection)
        
        """
        self.method_check(request, allowed=['post'])
        self.is_authenticated(request)
        self.throttle_check(request)

        # Flag on POST
        if request.method == 'POST':
            comment = get_object_or_404(Comment, pk=kwargs['comment_id'], site__pk=settings.SITE_ID)
            perform_flag(request, comment)
            
            # FIXME : basic email sending
            change_url = urlresolvers.reverse('admin:django_comments_comment_change', args=(comment.id,))
            host = request.get_host()
            recipient_list = [manager_tuple[1] for manager_tuple in settings.MANAGERS]
            subject = '[%s] Un commentaire abusif signale ' % (get_current_site(request).name)
            message = "Un commentaire abusif a ete signale. Vous pouvez le moderer et le supprimer si besoin a cette adresse %s%s" % (host, change_url)
            send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, recipient_list, fail_silently=True)

            return HttpResponse("Comment flaged")
Esempio n. 5
0
 def perform_create(self, serializer):
     perform_flag(self.request, serializer.validated_data['comment'])
Esempio n. 6
0
 def perform_create(self, serializer):
     perform_flag(self.request, serializer.validated_data['comment'])