Esempio n. 1
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
Esempio n. 2
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
Esempio n. 3
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))
Esempio n. 4
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))