from app import app, db from flask import abort, flash, redirect, request, url_for from flask_login import current_user from app.models.poll import Poll @app.route("/poll//vote", methods=['POST']) def poll_vote(poll_id): poll = Poll.query.first_or_404(poll_id) if not current_user.is_authenticated: abort(401) if not poll.can_vote(current_user): abort(403) if poll.has_voted(current_user): abort(403) if not poll.started: abort(403) if poll.ended: abort(403) answer = poll.vote(current_user, request) if answer is None: abort(400) db.session.add(answer) db.session.commit() flash('Le vote a été pris en compte', 'info') if request.referrer: return redirect(request.referrer) return redirect(url_for('index'))