diff --git a/smash/models_sqlalchemy.py b/smash/models_sqlalchemy.py
index 1e83f09..1e6a6dd 100644
--- a/smash/models_sqlalchemy.py
+++ b/smash/models_sqlalchemy.py
@@ -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):
diff --git a/smash/templates/queue.html b/smash/templates/queue.html
index 360c5a3..924b1d2 100644
--- a/smash/templates/queue.html
+++ b/smash/templates/queue.html
@@ -9,6 +9,14 @@
{{ quote.content|safe }}
+
+
Tags:
diff --git a/smash/views.py b/smash/views.py
index f01fd39..d151e31 100644
--- a/smash/views.py
+++ b/smash/views.py
@@ -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/')
def quote(id):
quote = Quote.query.filter_by(id=id, approved=True).first()