PCv5/app/routes/account/polls.py

34 lines
1.1 KiB
Python
Raw Permalink Normal View History

2021-02-20 01:28:08 +01:00
from app import app, db
from flask import abort, flash, redirect, request, url_for
from flask_login import current_user, login_required
2021-02-20 01:28:08 +01:00
from app.models.poll import Poll
2021-02-20 01:28:08 +01:00
from app.models.polls.simple import SimplePoll
2021-02-22 22:49:11 +01:00
from app.models.polls.multiple import MultiplePoll
2021-02-20 01:28:08 +01:00
from app.forms.poll import PollForm
from app.utils.render import render
2021-02-20 01:28:08 +01:00
@app.route("/compte/sondages", methods=['GET', 'POST'])
@login_required
2021-02-20 01:28:08 +01:00
def account_polls():
form = PollForm()
polls = (Poll.query.filter(Poll.author == current_user)
.order_by(Poll.end.desc()))
2021-02-22 22:49:11 +01:00
polls_types = {
'simplepoll': SimplePoll,
'multiplepoll': MultiplePoll,
}
2021-02-20 01:28:08 +01:00
if form.validate_on_submit():
choices = list(filter(None, form.choices.data.split('\n')))
2021-02-22 22:49:11 +01:00
p = polls_types[form.type.data](current_user, form.title.data, choices,
2021-02-20 01:28:08 +01:00
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")
app.v5logger.info(f"<{current_user.name}> has created the form #{p.id}")
2021-02-20 01:28:08 +01:00
return render("account/polls.html", polls=polls, form=form)