PCv5/app/routes/account/polls.py

29 lines
936 B
Python

from app import app, db
from flask import abort, flash, redirect, request, url_for
from flask_login import current_user
from app.models.polls.simple import SimplePoll
from app.models.polls.multiple import MultiplePoll
from app.forms.poll import PollForm
from app.utils.render import render
@app.route("/compte/sondages", methods=['GET', 'POST'])
def account_polls():
form = PollForm()
polls = current_user.polls
polls_types = {
'simplepoll': SimplePoll,
'multiplepoll': MultiplePoll,
}
if form.validate_on_submit():
choices = list(filter(None, form.choices.data.split('\n')))
p = polls_types[form.type.data](current_user, form.title.data, choices,
start=form.start.data, end=form.end.data)
db.session.add(p)
db.session.commit()
flash(f"Le sondage {p.id} a été créé", "info")
return render("account/polls.html", polls=polls, form=form)