119 lines
3.6 KiB
Python
119 lines
3.6 KiB
Python
from flask import Flask, render_template, make_response, request, redirect, url_for, session, abort
|
|
from pprint import pprint
|
|
import db
|
|
import os.path
|
|
|
|
application = Flask(__name__)
|
|
application.config["DEBUG"] = True
|
|
application.secret_key = b'*$#@U9423jr92jioJKL_)_;dasfj()12'
|
|
|
|
def createSession(res):
|
|
list_ids = db.get_list_ids(res[0][0])
|
|
session["id"] = int(res[0][0])
|
|
session["username"] = res[0][1]
|
|
session["isAdmin"] = res[0][2]
|
|
session["list_ids"] = list_ids
|
|
session["active_id"] = "0"
|
|
|
|
def refreshSession(id):
|
|
list_ids = db.get_list_ids(int(session["id"]))
|
|
print(list_ids)
|
|
session["list_ids"] = None
|
|
session["list_ids"] = list_ids
|
|
# print(session["list_ids"])
|
|
|
|
@application.route('/')
|
|
def index():
|
|
if session.get('id') is None:
|
|
data = {"title":"Login"}
|
|
return render_template("auth.html", data=data)
|
|
|
|
refreshSession(session["id"])
|
|
|
|
if session.get("active_id") == "0":
|
|
res = db.get_items(session["id"])
|
|
else:
|
|
res = db.get_items(session["id"], session["active_id"])
|
|
data = {"title": "Shopping List", "results": res, "session": session, "list_ids": session["list_ids"]}
|
|
|
|
return render_template('index.html', data=data)
|
|
|
|
@application.route('/post', methods=['POST'])
|
|
def handle_data():
|
|
print(request.form)
|
|
if "addValue" in request.form:
|
|
for x in request.form:
|
|
if request.form[x] == '':
|
|
return redirect(url_for('index'))
|
|
db.insertToDB({"item": request.form["item"], "name": session["id"], "list_id": request.form["item2add"]})
|
|
if "rem" in request.form:
|
|
db.deleteRow(request.form["rem"])
|
|
|
|
if "got" in request.form:
|
|
db.getItem(request.form["got"])
|
|
|
|
if "ungot" in request.form:
|
|
db.unGetItem(request.form["ungot"])
|
|
|
|
if "loginform" in request.form:
|
|
res = db.doLogin(request.form["username"], request.form["password"])
|
|
if len(res) != 0:
|
|
createSession(res)
|
|
|
|
if "newuser" in request.form:
|
|
#first check if the user exists
|
|
usrCheck = db.get_users(request.form["username"])
|
|
if len(usrCheck) != 0:
|
|
return "Username Exists"
|
|
userData = {"username": request.form["username"], "password": request.form["password"]}
|
|
db.add_user(userData)
|
|
return redirect(url_for("admin"))
|
|
|
|
if "newpass" in request.form:
|
|
user_id = request.form['updatepass']
|
|
newpass = request.form['newpass']
|
|
db.update_pass(user_id, newpass)
|
|
return redirect(url_for("index"))
|
|
|
|
if "logout" in request.form:
|
|
session.clear()
|
|
|
|
if "list" in request.form:
|
|
session["active_id"] = request.form['list']
|
|
|
|
if "addList" in request.form:
|
|
print(request.form["addList"])
|
|
db.addList(request.form["addList"])
|
|
|
|
if "add2list" in request.form:
|
|
userid = request.form["add2list"]
|
|
listid = request.form["listID"]
|
|
db.addUserToList(userid, listid)
|
|
|
|
return redirect(url_for('index'))
|
|
|
|
@application.route("/useracc")
|
|
def useracc():
|
|
|
|
return render_template("useracc.html")
|
|
|
|
@application.route("/admin")
|
|
def admin():
|
|
if session.get('id') is None:
|
|
data = {"title":"Login"}
|
|
return render_template("auth.html", data=data)
|
|
elif session.get('isAdmin') == 0:
|
|
return redirect(url_for("useracc"))
|
|
|
|
#get a list of users
|
|
userList = db.get_users()
|
|
lists = db.get_list_ids("admin")
|
|
data = {"users": userList, "lists": lists}
|
|
|
|
return render_template("admin.html", data=data)
|
|
|
|
if __name__ == '__main__':
|
|
db.doesTableExist()
|
|
application.run(host="0.0.0.0")
|
|
|