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) id = db.Column(db.Integer, primary_key=True)
rating = db.Column(db.Integer) rating = db.Column(db.Integer)
content = db.Column(db.String()) content = db.Column(db.String(), nullable=False)
approved = db.Column(db.Boolean) approved = db.Column(db.Boolean)
author_ip = db.Column(db.String()) author_ip = db.Column(db.String(), nullable=False)
time = db.Column(db.String()) time = db.Column(db.String(), nullable=False)
tags = db.relationship( tags = db.relationship(
'Tag', 'Tag',
secondary=tags_to_quotes, secondary=tags_to_quotes,
@ -36,7 +36,7 @@ class Tag(db.Model):
__tablename__ = 'tags' __tablename__ = 'tags'
id = db.Column(db.Integer, primary_key=True) 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): def __init__(self, name):

View file

@ -9,6 +9,14 @@
<p>{{ quote.content|safe }}</p> <p>{{ quote.content|safe }}</p>
</div> </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"> <div class="tags">
Tags: Tags:

View file

@ -71,6 +71,13 @@ def latest():
@app.route('/queue') @app.route('/queue')
def 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() quotes = Quote.query.filter_by(approved=False).order_by(Quote.id).all()
if len(quotes)>0: 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>') @app.route('/quote/<int:id>')
def quote(id): def quote(id):
quote = Quote.query.filter_by(id=id, approved=True).first() quote = Quote.query.filter_by(id=id, approved=True).first()