parent
d6512bb197
commit
938516cb3f
@ -0,0 +1,11 @@
|
||||
from app import app
|
||||
from app.utils.priv_required import priv_required
|
||||
from app.utils.render import render
|
||||
from app.models.poll import Poll
|
||||
|
||||
@app.route('/admin/sondages', methods=['GET'])
|
||||
@priv_required('access-admin-panel')
|
||||
def adm_polls():
|
||||
polls = Poll.query.order_by(Poll.end.desc()).all()
|
||||
|
||||
return render('admin/polls.html', polls=polls)
|
@ -0,0 +1,31 @@
|
||||
from app import app, db
|
||||
from flask import abort, flash, redirect, request, url_for
|
||||
from flask_login import current_user
|
||||
from app.utils.render import render
|
||||
from app.models.poll import Poll
|
||||
from app.forms.poll import DeletePollForm
|
||||
|
||||
@app.route("/sondages/<int:poll_id>/supprimer", methods=['GET', 'POST'])
|
||||
def poll_delete(poll_id):
|
||||
poll = Poll.query.get(poll_id)
|
||||
if poll is None:
|
||||
abort(404)
|
||||
|
||||
if current_user != poll.author and \
|
||||
not current_user.priv('delete-posts'):
|
||||
abort(403)
|
||||
|
||||
form = DeletePollForm()
|
||||
|
||||
if form.validate_on_submit():
|
||||
for a in poll.answers:
|
||||
db.session.delete(a)
|
||||
db.session.commit()
|
||||
|
||||
db.session.delete(poll)
|
||||
db.session.commit()
|
||||
|
||||
flash('Le sondage a été supprimé', 'info')
|
||||
return redirect(url_for('account_polls'))
|
||||
|
||||
return render('poll/delete.html', poll=poll, del_form=form)
|
@ -0,0 +1,19 @@
|
||||
{% extends "base/base.html" %}
|
||||
{% import "widgets/poll.html" as poll_widget with context %}
|
||||
|
||||
{% block title %}
|
||||
<h1>Gestion des sondages</h1>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<section>
|
||||
<h1>Tous les sondages</h1>
|
||||
<div>
|
||||
{% for p in polls %}
|
||||
{{ poll_widget.wpoll(p) }}
|
||||
<span>Auteur : {{ p.author.name }}</span> |
|
||||
<a href="{{ url_for('poll_delete', poll_id=p.id) }}">Supprimer le sondage</a>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
{% endblock %}
|
@ -0,0 +1,25 @@
|
||||
{% extends "base/base.html" %}
|
||||
{% import "widgets/poll.html" as poll_widget with context %}
|
||||
|
||||
{% block title %}
|
||||
<h1>Supprimer un sondage</h1>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<section>
|
||||
{{ poll_widget.wpoll(poll) }}
|
||||
|
||||
<form action="{{ url_for('poll_delete', poll_id=poll.id) }}" method=post>
|
||||
{{ del_form.hidden_tag() }}
|
||||
<div>
|
||||
{{ del_form.delete.label }}
|
||||
{{ del_form.delete(checked=False) }}
|
||||
<div style="font-size: 80%; color: gray">{{ del_form.delete.description }}</div>
|
||||
{% for error in del_form.delete.errors %}
|
||||
<span class=msgerror>{{ error }}</span>
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div>{{ del_form.submit(class_="bg-error") }}</div>
|
||||
</form>
|
||||
</section>
|
||||
{% endblock %}
|
Loading…
Reference in new issue