Ejemplo n.º 1
0
def proposal(request, proposal_id):
    try:
        proposal = Proposal.load(request.session, id=proposal_id)
    except NoResultFound:
        return {}, 'notfound.phtml', 404

    problem = proposal.problem

    img64 = proposal.img

    model = proposal.model
    if model is not None:
        model = model.decode('base64')

    user = request.logged_user()
    if user is None:
        vote = None
    else:
        try:
            vote = Vote.load(request.session, proposal_id=proposal.id, user_id=user.id)
        except NoResultFound:
            vote = None

    view = {'problem': problem, 'proposal': proposal, 'vote': vote,
            'img64': img64, 'model': model}
    return view, 'proposal.phtml'
Ejemplo n.º 2
0
def vote(request, user, proposal_id, vote_value):
    try:
        proposal = Proposal.load(request.session, id=proposal_id)
    except NoResultFound:
        return return_json({})

    if proposal.user_id == user.id:
        return return_json({})
        
    
    try:
        vote = Vote.load(request.session, user_id=user.id, proposal_id=proposal.id)
    except NoResultFound:
        vote = Vote(voter=user, proposal=proposal)
        request.session.add(vote)

    vote.is_plus = (not vote_value == 0)

    return return_json({})