def get_user_votes(request): """ Get vote.count on active issues. """ if request.user.is_authenticated(): votes = Vote.objects.get_user_votes(request.user, Model=Issue) votes = votes.filter(direction__in=normal_votes.keys()) votes = votes.filter(object_id__in=Issue.active.values_list('id',)) return votes.count() return 0
def get_user_votes(request): """ Get vote.count on active issues. """ if request.user.is_authenticated(): votes = Vote.objects.get_user_votes(request.user, Model=Issue) votes = votes.filter(direction__in=normal_votes.keys()) votes = votes.filter(object_id__in=Issue.active.values_list('id', )) return votes.count() return 0
def xhr_key_data(request): """ get json data for key in GET possible keys user folowers tag_tagname stats """ if request.method == 'POST': return json_error_response( 'XMLHttpRequest votes can only be made using GET.') key = request.GET.get('key', False) if not key: return json_error_response('No key provided.') data = {} if key == 'user': # provide user data of votes. # dict of ids. if not request.user.is_authenticated(): data['votes'] = request.session.get("vote_history", {}) else: queryset = Vote.objects.get_user_votes(request.user, Issue) queryset = queryset.filter(direction__in=normal_votes.keys()) votes = queryset.values_list( 'object_id', 'direction', ) votes = dict([(object_id, direction) for object_id, direction in votes]) data = {'votes': votes} elif key == 'followers': #TODO pass # provide public issue keys of user. elif key == 'tags': pass # find tags on Issues. # return list of tags with ids. elif key.startswith('tag'): tag = key[4:] stag = "\"%s\"" % tag issues = Issue.tagged.with_any(stag) issues = issues.filter(is_draft=False) issues = issues.values_list('id', ) issues = [i[0] for i in issues] data = {key: issues} elif key == 'parties': parties = UserProfile.objects.filter(role='party program') parties.select_related() names = [] for profile in parties: name = profile.user.username profile_issues = Issue.active.filter(user=profile.user) ids = [issue.id for issue in profile_issues] if len(ids) > 3: data[name] = ids names.append(name) data['names'] = names elif key == 'issues': issues = Issue.active.all() ids = [issue.id for issue in issues] data['issues'] = ids elif key == 'stats': #TODO # provide statistics. pass else: return json_error_response('Invalid key provided.') data['succes'] = True return HttpResponse(simplejson.dumps(data))
def xhr_key_data(request): """ get json data for key in GET possible keys user folowers tag_tagname stats """ if request.method == 'POST': return json_error_response( 'XMLHttpRequest votes can only be made using GET.') key = request.GET.get('key', False) if not key: return json_error_response('No key provided.') data = {} if key == 'user': # provide user data of votes. # dict of ids. if not request.user.is_authenticated(): data['votes'] = request.session.get("vote_history", {}) else: queryset = Vote.objects.get_user_votes(request.user, Issue) queryset = queryset.filter(direction__in=normal_votes.keys()) votes = queryset.values_list('object_id', 'direction',) votes = dict([(object_id, direction) for object_id, direction in votes ]) data = {'votes' : votes } elif key == 'followers': #TODO pass # provide public issue keys of user. elif key == 'tags': pass # find tags on Issues. # return list of tags with ids. elif key.startswith('tag'): tag = key[4:] stag = "\"%s\"" % tag issues = Issue.tagged.with_any(stag) issues = issues.filter(is_draft=False) issues = issues.values_list('id',) issues = [ i[0] for i in issues] data = { key : issues } elif key == 'parties': parties = UserProfile.objects.filter(role='party program'); parties.select_related() names = [] for profile in parties: name = profile.user.username profile_issues = Issue.active.filter(user=profile.user) ids = [issue.id for issue in profile_issues] if len(ids) > 3: data[name] = ids names.append(name) data['names'] = names elif key == 'issues': issues = Issue.active.all(); ids = [issue.id for issue in issues] data['issues'] = ids elif key == 'stats': #TODO # provide statistics. pass else: return json_error_response('Invalid key provided.') data['succes'] = True return HttpResponse(simplejson.dumps(data))