Beispiel #1
0
def like(request, content_type, id, vote):
    #content_type = content_type.replace("-", ".")
    app, modelname = content_type.split('-')
    object = ContentType.objects.get(app_label=app, model__iexact=modelname).model_class().objects.get(id=id)

    if can_vote(object, request.user, request):
        UserActivity.track_activity(user=request.user.member,
                                    activity=activity_constants.ACTIVITY_LIKED,
                                    sub=ugettext('<a href="%s">%s</a>' % (object.get_absolute_url(),
                                                                          object.comment if isinstance(object, FoundryComment) else object.title)),
                                    content_object=object,
                                    image_object=object)
    return likes_views.like(request, content_type, id, vote)
Beispiel #2
0
    def test_report_comment_abuse_signal(self):
        # Prepare context.
        context = Context()
        request = RequestFactory().get('/')
        request.user = AnonymousUser()
        request.META['HTTP_REFERER'] = '/'
        request.META['HTTP_USER_AGENT'] = 'testing_agent'
        request.secretballot_token = SecretBallotUserIpUseragentMiddleware().\
            generate_token(request)
        comment = Comment.objects.create(
            content_type_id=1,
            site_id=1,
            comment="abuse report testing comment"
        )
        context['request'] = request
        context['comment'] = comment
        content_type = '-'.join((comment._meta.app_label,
                                 comment._meta.module_name))

        # Reset previous like and test it applied.
        Vote.objects.all().delete()

        # Report an abuse comment - 1st
        like(
            request,
            content_type=content_type,
            id=comment.id,
            vote=-1
        )
        self.assertEqual(Vote.objects.all().count(), 1)
        self.failIf(Comment.objects.get(pk=comment.pk).is_removed)

        # Report an abuse comment - 2nd
        request.META['HTTP_USER_AGENT'] = 'testing_agent_2'
        request.secretballot_token = SecretBallotUserIpUseragentMiddleware().\
            generate_token(request)
        like(
            request,
            content_type=content_type,
            id=comment.id,
            vote=-1,
        )
        self.assertEqual(Vote.objects.all().count(), 2)
        self.failIf(Comment.objects.get(pk=comment.pk).is_removed)

        # Report an abuse comment - 3rd
        request.META['HTTP_USER_AGENT'] = 'testing_agent_3'
        request.secretballot_token = SecretBallotUserIpUseragentMiddleware().\
            generate_token(request)
        like(
            request,
            content_type=content_type,
            id=comment.id,
            vote=-1,
        )
        self.assertEqual(Vote.objects.all().count(), 3)
        self.failUnless(Comment.objects.get(pk=comment.pk).is_removed)