Implement Cosmetics Configuration to the Administrators Panel

This commit is contained in:
Jeremy Zhang
2017-07-22 05:02:59 +00:00
parent f4608794a0
commit 1304ea6153
5 changed files with 231 additions and 3 deletions

View File

@ -1,6 +1,6 @@
from flask import Blueprint, url_for, redirect, session, render_template
from flask import Blueprint, url_for, redirect, session, render_template, abort, request
from functools import wraps
from titanembeds.database import get_administrators_list
from titanembeds.database import db, get_administrators_list, Cosmetics
admin = Blueprint("admin", __name__)
@ -20,3 +20,57 @@ def is_admin(f):
@is_admin
def index():
return render_template("admin_index.html.j2")
@admin.route("/cosmetics", methods=["GET"])
@is_admin
def cosmetics():
entries = db.session.query(Cosmetics).all()
return render_template("admin_cosmetics.html.j2", cosmetics=entries)
@admin.route("/cosmetics", methods=["POST"])
@is_admin
def cosmetics_post():
user_id = request.form.get("user_id", None)
if not user_id:
abort(400)
css = request.form.get("css", None)
entry = db.session.query(Cosmetics).filter(Cosmetics.user_id == user_id).first()
if entry:
abort(409)
user = Cosmetics(user_id)
if css:
css = css.lower() == "true"
user.css = css
db.session.add(user)
db.session.commit()
return ('', 204)
@admin.route("/cosmetics", methods=["DELETE"])
@is_admin
def cosmetics_delete():
user_id = request.form.get("user_id", None)
if not user_id:
abort(400)
entry = db.session.query(Cosmetics).filter(Cosmetics.user_id == user_id).first()
if not entry:
abort(409)
db.session.delete(entry)
db.session.commit()
return ('', 204)
@admin.route("/cosmetics", methods=["PATCH"])
@is_admin
def cosmetics_patch():
user_id = request.form.get("user_id", None)
if not user_id:
abort(400)
css = request.form.get("css", None)
entry = db.session.query(Cosmetics).filter(Cosmetics.user_id == user_id).first()
if not entry:
abort(409)
if css:
css = css.lower() == "true"
entry.css = css
db.session.commit()
return ('', 204)