-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.py
145 lines (133 loc) · 5.54 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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from models import Registrant
import myweb
import pages
import free_email
import util
from google.appengine.api import datastore
from datetime import datetime
import access
import settings
class Test(webapp.RequestHandler):
def get(self):
import os
for i in os.environ:
self.response.out.write(i + ":" + os.environ[i] + "\n")
class Form(webapp.RequestHandler):
def get(self, the_key):
user = access.wall(self)
if user:
if (user.nickname() in settings.admins):
import form
record = datastore.Get(the_key)
self.response.out.write(form.form(record))
else:
self.redirect('/')
class XLS(webapp.RequestHandler):
def get(self):
user = access.wall(self)
if user:
if (user.nickname() in settings.admins):
query = datastore.Query("registrant")
query.Order('created')
records = query.Get(999)
#self.response.headers.add_header("Content-Type", 'text/csv')
self.response.headers.add_header("Content-Disposition", "attachment; filename=registrants.xls")
self.response.out.write(pages.xls(records))
#self.response.out.write(str(records))
class View(webapp.RequestHandler):
def get(self):
user = access.wall(self)
if user:
if (user.nickname() in settings.admins):
query = datastore.Query("registrant")
query.Order('created')
records = query.Get(999)
self.response.out.write(pages.view(records))
#self.response.out.write(str(records))
class IPN(webapp.RequestHandler):
pass
class Pay():
pass
#for automatically submitting the paypal form
class Paypal_submit(webapp.RequestHandler):
def get(self):
util.start_session(self)
session = util.get_session(self)
payment = 'Full Payment'
if 'payment' in session:
payment = session['payment']
self.response.out.write(pages.buy_now(payment))
#after a registrant paid
class Paid(webapp.RequestHandler):
def get(self):
util.start_session(self)
session = util.get_session(self)
if ('key' in session):
form = datastore.Get(session['key'])
if 'email' in session:
self.response.out.write(session['email'])
mailed = free_email.blue_email(settings.from_email, session['email'] + ", " + settings.to_email, settings.thank_you_subject, settings.thank_you_body)
if mailed:
form['email_sent'] = 'maybe'
else:
form['email_sent'] = 'no'
else:
form['email_sent'] = 'no'
self.response.out.write("Thank you")
datastore.Put(form)
self.redirect(settings.thank_you_url)
class MainPage(webapp.RequestHandler):
#paypal = "http://google.com"
def get(self):
#import form
##self.response.headers['Content-Type'] = 'text/html'
##self.response.out.write('Hello, webapp World!')
#self.response.out.write(form.just_form())
##self.response.out.write(pages.test_form())
self.redirect("http://timetoblossom.com")
def post(self):
util.start_session(self)##
posts = myweb.get_post_vars()
posts['created'] = str(datetime.now())
obj = datastore.Entity(kind = "registrant")
obj.update(posts)
if 'os0' in obj: # os0 is wether it's half or full payment
pass
else:
obj['os0'] = 'Full Payment'
datastore.Put(obj) #also could put a list of objs #what if this fails
#self.response.out.write(obj.key())
util.put_session(self,{'email': posts['email'], 'key':obj.key(), 'payment' : obj['os0']}) #saving some cookies, key is most important others save lines of code
#mailed = free_email.email(self.email, "drewalex@gmail.com", "New Registrant for timetoblossom", """
mailed = free_email.blue_email(settings.from_email, settings.to_email, "New Registrant for timetoblossom", """
Timetoblossom.com
New Registrant
""" + obj['first'] + " " + obj['last'] + """ registered
See details at
http://timetoblossom.latest.clstff.appspot.com/view
""")
if mailed == True:
obj['email_sent_to_carla'] = "yes"
else:
obj['email_sent_to_carla'] = "no"
#self.response.out.write("Sorry, something went wrong, please hit back and try again.")
datastore.Put(obj) #save the email info
#self.redirect("/paypal_submit") #this also works
self.redirect("http://www.timetoblossom.com/pages/pay.htm")
application = webapp.WSGIApplication(
[('/', MainPage),
('/view', View),
('/registrants.xls', XLS),
('/ipn', IPN),
(r'/form/(.*)$', Form),
#(r'/pay/(.*)$)',Pay),
('/test',Test),
('/paypal_submit', Paypal_submit),
('/paid', Paid)],
debug=True)
def main():
run_wsgi_app(application)
if __name__ == "__main__":
main()