/
main.py
100 lines (90 loc) · 3.53 KB
/
main.py
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
import webapp2
import os
import jinja2
from google.appengine.ext import ndb
from google.appengine.api import urlfetch
import json
from datetime import datetime
from model import Grocery, Food, CssiUser
from google.appengine.api import users
jinjaEnv = jinja2.Environment(
loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
extensions=['jinja2.ext.autoescape'],
autoescape=True)
class homePage(webapp2.RequestHandler):
def get(self):
homePage = jinjaEnv.get_template('templates/homepage.html')
self.response.write(homePage.render())
user = users.get_current_user()
if user:
email_address = user.nickname()
cssi_user = CssiUser.get_by_id(user.user_id())
signout_link_html = '<a href="%s">sign out</a>' % (
users.create_logout_url('/'))
if cssi_user:
self.response.write('''
Welcome %s %s (%s)! <br> %s <br>''' % (
cssi_user.first_name,
cssi_user.last_name,
email_address,
signout_link_html))
else:
self.response.write('''
Welcome to our site, %s! Please sign up! <br>
<form method="post" action="/">
<input type="text" name="first_name">
<input type="text" name="last_name">
<input type="submit">
</form><br> %s <br>
''' % (email_address, signout_link_html))
else:
self.response.write('''
Please log in to use our site! <br>
<a href="%s">Sign in</a>''' % (
users.create_login_url('/')))
def post(self):
user = users.get_current_user()
if not user:
self.error(500)
return
cssi_user = CssiUser(
first_name=self.request.get('first_name'),
last_name=self.request.get('last_name'),
id=user.user_id())
cssi_user.put()
self.response.write('Thanks for signing up, %s!' %
cssi_user.first_name)
class loadList(webapp2.RequestHandler):
def get(self):
#testing fetch to database with mutipule tables
loadListPage = jinjaEnv.get_template('templates/loadlist.html')
past_lists = Grocery.query().fetch()
self.response.write(loadListPage.render({"debug":past_lists}))
class newList(webapp2.RequestHandler):
def get(self):
newList = jinjaEnv.get_template('templates/newlist.html')
self.response.write(newList.render())
def post(self):
nameOfFood = self.request.get('food-name', allow_multiple=True)
dateOfExpiration = self.request.get('expirationDate',allow_multiple=True)
pickYourTitle = self.request.get('title')
#fill list with key values
listOfFoods = []
for i in range(len(nameOfFood)):
food = Food(food = nameOfFood[i], expirationDate = datetime.strptime(dateOfExpiration[i],'%Y-%m-%d'))
foodKey = food.put()
listOfFoods.append(foodKey)
#save to grocery list to database
groceryToSave = Grocery(title = pickYourTitle, foods = listOfFoods)
groceryToSave.put()
self.redirect('/loadlist')
class aboutPage(webapp2.RequestHandler):
def get(self):
about_page = jinjaEnv.get_template('templates/about.html')
self.response.write(about_page.render())
app = webapp2.WSGIApplication([
('/', homePage),
('/loadlist', loadList),
('/newlist', newList),
('/about',aboutPage)
], debug=True)