Beispiel #1
0
def delete_object(request):
    if not request.user.is_authenticated() or not request.user.is_active:
        return HttpResponse(simplejson.dumps({'FAIL': True, 'message': 'user inactive or not logged in'}),
                                mimetype='application/json')

    if request.method == 'POST':
        content_type = request.POST[u'content_type']
        object_id = request.POST[u'object_id']
        contype = ContentType.objects.get(pk=content_type)
        cons = Consensus.objects.get(object_pk=object_id)
        parent = cons.content_object.parent
        try:
            parent.children -= 1
            parent.save()
        except:
            pass
        mod = contype.model_class()
        obj = mod.objects.get(pk=object_id)
        if not obj.user == request.user:
            if not request.user.is_staff:
                return HttpResponse(simplejson.dumps({'FAIL': True, 'message': 'object user not request user'}),
                                mimetype='application/json')
        #need to delete all the notifications about this
        reps = ReputationEvent.objects.filter(object_id=cons.pk)
        for i in reps:
            i.delete()
        notes = Notification.objects.filter(object_pk=obj.pk)
        for i in notes:
            i.delete()
        notes = Notification.objects.filter(object_pk=cons.pk)
        for i in notes:
            i.delete()
        # now delete the object
        obj.delete()
        user_cons = Consensus.objects.get(object_pk=request.user.pk)
        #delete all votes
        uvote = UpDownVote.objects.filter(parent=cons)
        for i in uvote:
            aso_rep_delete.send(sender=request.user, event_score=1, user=i.user,
                                initiator=request.user, dimension=ReputationDimension.objects.get('Vote'),
                                related_object=i, is_vote=True)
                                # register reputation for voting
            user_cons.register_vote(i, 'delete', old_vote=None)
            i.delete()

        vote = RatingVote.objects.filter(parent=cons)
        for r in vote:
            aso_rep_delete.send(sender=request.user, event_score=1, user=r.user,
                                initiator=request.user, dimension=ReputationDimension.objects.get('Vote'),
                                related_object=r, is_vote=True)
                                # register reputation for voting
            user_cons.register_vote(r, 'delete', old_vote=None)
            r.delete()
        cons.delete()
        update_ranks(request)
        #need to also delete comments...
        #need to initiate update of this object
        return HttpResponse(simplejson.dumps({'FAIL': False, 'message': 'deleted'}),
                        mimetype='application/json')
Beispiel #2
0
def flagvote(request):
    if not request.user.is_authenticated()  or not request.user.is_active:
        #needs to popup registration dialog instead
        return HttpResponse(simplejson.dumps({'FAIL': True}),
            #need a better non-auth error here, interferes with view
                                mimetype='application/json')

    if request.method == 'POST':
        vote = int(request.POST[u'vote'])
        pk = int(request.POST[u'pk'])
        flag_type = str(request.POST['flag_type'])
        user_pk = int(request.POST['user'])
        if request.user.pk != user_pk:
            return HttpResponse(simplejson.dumps({'FAIL': True}),
                                mimetype='application/json')
        user = User(pk=user_pk)
        flag = Flag.objects.get(object_pk=pk, flag_type=flag_type)
        uflag, created = UserFlag.objects.get_or_create(user=user, flag=flag)
        cons = Consensus.objects.get(object_pk=pk)
        count = 0
        v = bool(vote)
        votestr = ''
        if uflag.mode == v and not created:
            if v == True:
                flag.votes = flag.votes - 1
                count = flag.votes
                votestr = 'vote_up_flat'
            elif v == False:
                flag.counters = flag.counters - 1
                count = flag.counters
                votestr = 'vote_down_flat'
            flag.save()
            aso_rep_delete.send(sender=user, event_score=1, user=user, initiator=user, dimension=ReputationDimension.objects.get('Flag'),related_object=uflag) # delete reputation is flag removed
            uflag.delete() 
        elif created:
            uflag.mode = v
            if v == True:
                flag.votes = flag.votes + 1
                count = flag.votes
                votestr = 'vote_up_acti'
            elif v == False:
                flag.counters = flag.counters + 1
                count = flag.counters
                votestr = 'vote_down_acti'
            uflag.save()
            flag.save()
            check_badges(cons.content_object.user, Flag, pk)
            aso_rep_event.send(sender=user, event_score=1, user=flag.content_object.user, initiator=user, dimension=ReputationDimension.objects.get('Flag'),related_object=uflag) # register reputation for flag creation
        imgsrc = '/static/voteimgs/' + votestr + '.gif'
        results = {'FAIL':False, 'count':count, 'modes':str(vote == 0), 'imgsrc':imgsrc}
        if 'application/json' in request.META.get('HTTP_ACCEPT', ''):
            return HttpResponse(simplejson.dumps(results),
                                mimetype='application/json')
Beispiel #3
0
def vote(request, pk, vote, votemodel, vote_type_str, register):
    consensus = Consensus.objects.get(object_pk=pk)
    cnt = ContentType.objects.get_for_model(User)
    user_cons, is_new = Consensus.objects.get_or_create(content_type=cnt,
                                object_pk=consensus.content_object.user.pk,
                                parent_pk=consensus.content_object.user.pk,
                                vote_type=cnt)
    if is_new:
        user_cons.intiate_vote_distributions()
        user_cons.spectrum.get_list()
    if vote == -99:
        st = votemodel.objects.get(user=request.user, object_pk=pk)
        # register reputation for voting
        if register:
            user_cons.register_vote(st, 'delete', old_vote=st.vote)
            aso_rep_delete.send(sender=request.user, event_score=1, user=consensus.content_object.user,
                            initiator=request.user, dimension=ReputationDimension.objects.get('Vote'),
                            related_object=st, is_vote=True)
        consensus.register_vote(st, 'delete', old_vote=st.vote)

        update_agent.send(sender=user_cons, type="vote", params=[vote_type_str, st.pk])
        st.delete()
    else:
        try:
            #TODO: there is an error happening here!
            old = votemodel.objects.get(user=request.user, object_pk=pk)
            if old.vote != vote:
                old_vote_pos = old.vote
                old.vote = vote
                old.save()
                if register:
                    user_cons.register_vote(old, 'change', old_vote=old_vote_pos)
                vote_created_callback(sender=request.session.session_key, parent=consensus, vote_type=vote)
                consensus.register_vote(old, 'change', old_vote=old_vote_pos)
        except:
            st, is_new = votemodel.objects.get_or_create(user=request.user, parent=consensus, vote=vote, object_pk=pk, parent_pk=consensus.parent_pk)
            st.save()
            check_badges(consensus.content_object.user, votemodel, pk)
            # register reputation for voting
            vote_created_callback(sender=request.session.session_key, parent=consensus, vote_type=vote)
            if register:
                aso_rep_event.send(sender=request.user, event_score=1, user=consensus.content_object.user,
                                initiator=request.user, dimension=ReputationDimension.objects.get('Vote'),
                                related_object=st, is_vote=True)
                user_cons.register_vote(st, 'register')
            consensus.register_vote(st, 'register')
            update_agent.send(sender=user_cons, type="vote", params=[vote_type_str, st.pk])
Beispiel #4
0
def vote(request, pk, vote, votemodel, vote_type_str, register):
    consensus = Consensus.objects.get(object_pk=pk)
    cnt = ContentType.objects.get_for_model(User)
    user_cons, is_new = Consensus.objects.get_or_create(
        content_type=cnt,
        object_pk=consensus.content_object.user.pk,
        parent_pk=consensus.content_object.user.pk,
        vote_type=cnt)
    if is_new:
        user_cons.intiate_vote_distributions()
        user_cons.spectrum.get_list()
    if vote == -99:
        st = votemodel.objects.get(user=request.user, object_pk=pk)
        # register reputation for voting
        if register:
            user_cons.register_vote(st, 'delete', old_vote=st.vote)
            aso_rep_delete.send(
                sender=request.user,
                event_score=1,
                user=consensus.content_object.user,
                initiator=request.user,
                dimension=ReputationDimension.objects.get('Vote'),
                related_object=st,
                is_vote=True)
        consensus.register_vote(st, 'delete', old_vote=st.vote)

        update_agent.send(sender=user_cons,
                          type="vote",
                          params=[vote_type_str, st.pk])
        st.delete()
    else:
        try:
            #TODO: there is an error happening here!
            old = votemodel.objects.get(user=request.user, object_pk=pk)
            if old.vote != vote:
                old_vote_pos = old.vote
                old.vote = vote
                old.save()
                if register:
                    user_cons.register_vote(old,
                                            'change',
                                            old_vote=old_vote_pos)
                vote_created_callback(sender=request.session.session_key,
                                      parent=consensus,
                                      vote_type=vote)
                consensus.register_vote(old, 'change', old_vote=old_vote_pos)
        except:
            st, is_new = votemodel.objects.get_or_create(
                user=request.user,
                parent=consensus,
                vote=vote,
                object_pk=pk,
                parent_pk=consensus.parent_pk)
            st.save()
            check_badges(consensus.content_object.user, votemodel, pk)
            # register reputation for voting
            vote_created_callback(sender=request.session.session_key,
                                  parent=consensus,
                                  vote_type=vote)
            if register:
                aso_rep_event.send(
                    sender=request.user,
                    event_score=1,
                    user=consensus.content_object.user,
                    initiator=request.user,
                    dimension=ReputationDimension.objects.get('Vote'),
                    related_object=st,
                    is_vote=True)
                user_cons.register_vote(st, 'register')
            consensus.register_vote(st, 'register')
            update_agent.send(sender=user_cons,
                              type="vote",
                              params=[vote_type_str, st.pk])
Beispiel #5
0
def flagvote(request):
    if not request.user.is_authenticated() or not request.user.is_active:
        #needs to popup registration dialog instead
        return HttpResponse(
            simplejson.dumps({'FAIL': True}),
            #need a better non-auth error here, interferes with view
            mimetype='application/json')

    if request.method == 'POST':
        vote = int(request.POST[u'vote'])
        pk = int(request.POST[u'pk'])
        flag_type = str(request.POST['flag_type'])
        user_pk = int(request.POST['user'])
        if request.user.pk != user_pk:
            return HttpResponse(simplejson.dumps({'FAIL': True}),
                                mimetype='application/json')
        user = User(pk=user_pk)
        flag = Flag.objects.get(object_pk=pk, flag_type=flag_type)
        uflag, created = UserFlag.objects.get_or_create(user=user, flag=flag)
        cons = Consensus.objects.get(object_pk=pk)
        count = 0
        v = bool(vote)
        votestr = ''
        if uflag.mode == v and not created:
            if v == True:
                flag.votes = flag.votes - 1
                count = flag.votes
                votestr = 'vote_up_flat'
            elif v == False:
                flag.counters = flag.counters - 1
                count = flag.counters
                votestr = 'vote_down_flat'
            flag.save()
            aso_rep_delete.send(
                sender=user,
                event_score=1,
                user=user,
                initiator=user,
                dimension=ReputationDimension.objects.get('Flag'),
                related_object=uflag)  # delete reputation is flag removed
            uflag.delete()
        elif created:
            uflag.mode = v
            if v == True:
                flag.votes = flag.votes + 1
                count = flag.votes
                votestr = 'vote_up_acti'
            elif v == False:
                flag.counters = flag.counters + 1
                count = flag.counters
                votestr = 'vote_down_acti'
            uflag.save()
            flag.save()
            check_badges(cons.content_object.user, Flag, pk)
            aso_rep_event.send(
                sender=user,
                event_score=1,
                user=flag.content_object.user,
                initiator=user,
                dimension=ReputationDimension.objects.get('Flag'),
                related_object=uflag)  # register reputation for flag creation
        imgsrc = '/static/voteimgs/' + votestr + '.gif'
        results = {
            'FAIL': False,
            'count': count,
            'modes': str(vote == 0),
            'imgsrc': imgsrc
        }
        if 'application/json' in request.META.get('HTTP_ACCEPT', ''):
            return HttpResponse(simplejson.dumps(results),
                                mimetype='application/json')
Beispiel #6
0
def delete_object(request):
    if not request.user.is_authenticated() or not request.user.is_active:
        return HttpResponse(simplejson.dumps({
            'FAIL':
            True,
            'message':
            'user inactive or not logged in'
        }),
                            mimetype='application/json')

    if request.method == 'POST':
        content_type = request.POST[u'content_type']
        object_id = request.POST[u'object_id']
        contype = ContentType.objects.get(pk=content_type)
        cons = Consensus.objects.get(object_pk=object_id)
        parent = cons.content_object.parent
        try:
            parent.children -= 1
            parent.save()
        except:
            pass
        mod = contype.model_class()
        obj = mod.objects.get(pk=object_id)
        if not obj.user == request.user:
            if not request.user.is_staff:
                return HttpResponse(simplejson.dumps({
                    'FAIL':
                    True,
                    'message':
                    'object user not request user'
                }),
                                    mimetype='application/json')
        #need to delete all the notifications about this
        reps = ReputationEvent.objects.filter(object_id=cons.pk)
        for i in reps:
            i.delete()
        notes = Notification.objects.filter(object_pk=obj.pk)
        for i in notes:
            i.delete()
        notes = Notification.objects.filter(object_pk=cons.pk)
        for i in notes:
            i.delete()
        # now delete the object
        obj.delete()
        user_cons = Consensus.objects.get(object_pk=request.user.pk)
        #delete all votes
        uvote = UpDownVote.objects.filter(parent=cons)
        for i in uvote:
            aso_rep_delete.send(
                sender=request.user,
                event_score=1,
                user=i.user,
                initiator=request.user,
                dimension=ReputationDimension.objects.get('Vote'),
                related_object=i,
                is_vote=True)
            # register reputation for voting
            user_cons.register_vote(i, 'delete', old_vote=None)
            i.delete()

        vote = RatingVote.objects.filter(parent=cons)
        for r in vote:
            aso_rep_delete.send(
                sender=request.user,
                event_score=1,
                user=r.user,
                initiator=request.user,
                dimension=ReputationDimension.objects.get('Vote'),
                related_object=r,
                is_vote=True)
            # register reputation for voting
            user_cons.register_vote(r, 'delete', old_vote=None)
            r.delete()
        cons.delete()
        update_ranks(request)
        #need to also delete comments...
        #need to initiate update of this object
        return HttpResponse(simplejson.dumps({
            'FAIL': False,
            'message': 'deleted'
        }),
                            mimetype='application/json')
Beispiel #7
0
def flagvote(request):
    if not request.user.is_authenticated() or not request.user.is_active:
        # needs to popup registration dialog instead
        return HttpResponse(
            simplejson.dumps({"FAIL": True}),
            # need a better non-auth error here, interferes with view
            mimetype="application/json",
        )

    if request.method == "POST":
        vote = int(request.POST[u"vote"])
        pk = int(request.POST[u"pk"])
        flag_type = str(request.POST["flag_type"])
        user_pk = int(request.POST["user"])
        if request.user.pk != user_pk:
            return HttpResponse(simplejson.dumps({"FAIL": True}), mimetype="application/json")
        user = User(pk=user_pk)
        flag = Flag.objects.get(object_pk=pk, flag_type=flag_type)
        uflag, created = UserFlag.objects.get_or_create(user=user, flag=flag)
        cons = Consensus.objects.get(object_pk=pk)
        count = 0
        v = bool(vote)
        votestr = ""
        if uflag.mode == v and not created:
            if v == True:
                flag.votes = flag.votes - 1
                count = flag.votes
                votestr = "vote_up_flat"
            elif v == False:
                flag.counters = flag.counters - 1
                count = flag.counters
                votestr = "vote_down_flat"
            flag.save()
            aso_rep_delete.send(
                sender=user,
                event_score=1,
                user=user,
                initiator=user,
                dimension=ReputationDimension.objects.get("Flag"),
                related_object=uflag,
            )  # delete reputation is flag removed
            uflag.delete()
        elif created:
            uflag.mode = v
            if v == True:
                flag.votes = flag.votes + 1
                count = flag.votes
                votestr = "vote_up_acti"
            elif v == False:
                flag.counters = flag.counters + 1
                count = flag.counters
                votestr = "vote_down_acti"
            uflag.save()
            flag.save()
            check_badges(cons.content_object.user, Flag, pk)
            aso_rep_event.send(
                sender=user,
                event_score=1,
                user=flag.content_object.user,
                initiator=user,
                dimension=ReputationDimension.objects.get("Flag"),
                related_object=uflag,
            )  # register reputation for flag creation
        imgsrc = "/static/voteimgs/" + votestr + ".gif"
        results = {"FAIL": False, "count": count, "modes": str(vote == 0), "imgsrc": imgsrc}
        if "application/json" in request.META.get("HTTP_ACCEPT", ""):
            return HttpResponse(simplejson.dumps(results), mimetype="application/json")