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")