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')
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')
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])
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])
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')
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')
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")