-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
122 lines (103 loc) · 4.12 KB
/
Copy pathmain.py
File metadata and controls
122 lines (103 loc) · 4.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import datetime
import fileinput
from flask import Flask, render_template, request, url_for, redirect
import data.UserDB as db
app = Flask(__name__,static_folder='static')
logged_in = False
"""
HOME PAGE
"""
@app.route("/", methods = ['GET','POST'])
def home():
return render_template("home.html")
"""
LOGIN
"""
@app.route("/login", methods = ['GET','POST'])
def login():
global logged_in
if not logged_in:
if request.method == 'POST':
username = request.form.get('username')
password = request.form.get('password')
with open("data/user_data.csv") as userfile:
userfile.readline() #skip header line
trueline = userfile.readline()
fields = trueline.split(',')
for i in range(2):
fields[i] = fields[i].strip()
if username == fields[0] and password == fields[1]:
logged_in = True
return redirect(url_for('dashboard'))
return redirect(url_for('login'))
return render_template('login.html', user="")
else:
return redirect(url_for('dashboard'))
"""
INVENTORY DASHBOARD
"""
@app.route("/dashboard", methods = ['GET','POST'])
def dashboard():
if logged_in:
error = 0
#make rows be all the rows of the db
database = db.Database()
if request.method == "POST":
item_name = request.form.get('Button') #get item name from button value
if request.form.get("new_quantity"):
quantity = request.form.get("new_quantity") #data verification
#TESTING
print(item_name)
if quantity.isdigit():
#Update db with new quantity for inventory
database.changeQuantity(item_name, quantity)
redirect(url_for('dashboard'))
else:
#send message saying the db has not been updated
error = "Invalid Input. Database has not been update."
else:
database.removeItem(item_name)
redirect(url_for('dashboard'))
rows = database.cur.execute("SELECT * FROM Inventory").fetchall()
return render_template("inventory.html",
page_title = "Inventory",
rows = rows,
error = error)
else:
return redirect(url_for('login'))
"""
ADD ITEM
"""
@app.route("/add", methods = ['GET','POST'])
def add():
if logged_in:
database = db.Database()
if request.method == "POST":
name = request.form.get("name")
amount = request.form.get("amount")
donor = request.form.get("donor")
category = request.form.get("category")
dietary_restrictions = [request.form.get('kosher'), request.form.get('halal'),
request.form.get('vegetarian'), request.form.get('vegan')]
kosher = dietary_restrictions[0]
halal = dietary_restrictions[1]
vegetarian = dietary_restrictions[2]
vegan = dietary_restrictions[3]
# allergens = [request.form.get('dairy'), request.form.get('eggs'), request.form.get('fish'),
# request.form.get('shellfish'), request.form.get('tree_nuts'), request.form.get('peanuts'),
# request.form.get('wheat'), request.form.get('soybeans'), request.form.get('sesame')]
# tag_list = request.form.get('tags')
# tags = tag_list.split(',')
# for i in range(0, len(tags)):
# tags[i] = tags[i].strip()
requested = request.form.get('requested')
expiration = request.form.get('expiration_date')
database.addItem(name,None,amount,category,donor,vegetarian,kosher,vegan,halal,expiration,requested)
print(database.cur.execute("SELECT * FROM Inventory").fetchall())
return render_template("add.html")
else:
return redirect(url_for('login'))
if __name__ == "__main__":
global LOGGED_IN
LOGGED_IN = False
app.run(debug=True)