Add approving and deleting queued messages

This commit is contained in:
nukeop 2017-01-03 02:12:14 +01:00
parent bbda2d968c
commit c253867c62
3 changed files with 53 additions and 4 deletions

View file

@ -13,10 +13,10 @@ class Quote(db.Model):
id = db.Column(db.Integer, primary_key=True)
rating = db.Column(db.Integer)
content = db.Column(db.String())
content = db.Column(db.String(), nullable=False)
approved = db.Column(db.Boolean)
author_ip = db.Column(db.String())
time = db.Column(db.String())
author_ip = db.Column(db.String(), nullable=False)
time = db.Column(db.String(), nullable=False)
tags = db.relationship(
'Tag',
secondary=tags_to_quotes,
@ -36,7 +36,7 @@ class Tag(db.Model):
__tablename__ = 'tags'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String())
name = db.Column(db.String(), unique=True, nullable=False)
def __init__(self, name):

View file

@ -9,6 +9,14 @@
<p>{{ quote.content|safe }}</p>
</div>
<form action="/moderate" name="moderate" method="post">
<div class="btn-group" role="group">
<input type="hidden" name="quoteid" value={{quote.id}} />
<button type="submit" name="submit" class="btn btn-success btn-sm" value="Approve">Approve</button>
<button type="submit" name="submit" class="btn btn-danger btn-sm" value="Delete">Delete</button>
</div>
</form>
<div class="tags">
Tags:

View file

@ -71,6 +71,13 @@ def latest():
@app.route('/queue')
def queue():
if not session.get('authorized'):
return render_template(
"message.html",
alertclass="alert-danger",
message="You are not authorized to view this page."
)
quotes = Quote.query.filter_by(approved=False).order_by(Quote.id).all()
if len(quotes)>0:
@ -91,6 +98,40 @@ def queue():
)
@app.route('/moderate', methods=['POST'])
def moderate():
if not session.get('authorized'):
return render_template(
"message.html",
alertclass="alert-danger",
message="You are not authorized to perform this action."
)
if request.form['submit'] == "Approve":
quote = Quote.query.filter_by(id=request.form['quoteid']).first()
quote.approved = True
db.session.commit()
return render_template(
"message.html",
alertclass="alert-success",
message="Quote approved."
)
elif request.form['submit'] == "Delete":
quote = Quote.query.filter_by(id=request.form['quoteid']).first()
db.session.delete(quote)
db.session.commit()
return render_template(
"message.html",
alertclass="alert-success",
message="Quote deleted."
)
return str(request.form)
@app.route('/quote/<int:id>')
def quote(id):
quote = Quote.query.filter_by(id=id, approved=True).first()