This repository has been archived by the owner on Oct 17, 2018. It is now read-only.
/
adminFunctions.py
112 lines (105 loc) · 3.47 KB
/
adminFunctions.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
import defaults
import helpers
import webapp2
import datetime
from google.appengine.api import users
def getTemplateValues(adminAcc, origRequest):
return {'userAcc': adminAcc,
'now': datetime.datetime.now(),
'logInOut': users.create_logout_url(origRequest.request.uri),
'logInOut_linkText': 'Logout',
'userName': acc.name,
'userMatric': acc.matric,
'userMobile': acc.mobile,
'admin': True,
'adminSessions': '/admin_sessions',
'adminEditFront': '/admin_edit_front',
'adminSettings': '/admin_settings',
'accSettings': '/acc_settings'
}
###must login to GAE and manually add admin
###for adding / editing slots and viewing registrants
class EditSessionsHandler(webapp2.RequestHandler):
def get(self):
user = users.get_current_user()
if user:
helpers.checkUser(user)
adminAcc = Admin.get_by_id(user.user_id())
if adminAcc:
template = jinja_environment.get_template('templates/admin_sessions.html')
template_values = getTemplateValues(adminAcc, self)
template_values.update({'slots': helpers.getSlots()})
self.response.write(template.render(template_values))
else:
self.redirect('/')
def post(self):
inputDate = helpers.convert(self.request.get('date')) #DD/MM/YYYY
inputStart = helpers.convert(self.request.get('start'))
inputSpaces = helpers.convert(self.request.get('spaces'))
year = int(inputDate[6:])
month = int(inputDate[3:5])
day = int(inputDate[0:2])
hour = int(inputStart[0:2])
minute = int(inputStart[2:])
newSlot = Slot(
startTime= datetime.datetime(year, month, day, hour, minute),
totalSpaces= int(inputSpaces))
newSlot.put()
self.redirect('/admin_sessions')
class RemoveSessionsHandler(webapp2.RequestHandler):
def get(self):
user = users.get_current_user()
helpers.checkUser(user)
acc = Account.get_by_id(user.user_id())
q_string = self.request.query_string
q_list = q_string.split('&')
if len(q_list) > 1:
pass #error
else:
slot_key = ndb.Key(urlsafe=q_list[0])
slot = slot_key.get()
if slot:
for registrant_key in slot.registrants:
registrant = registrant_key.get()
registrant.slots.remove(slot_key)
registrant.put()
slot_key.delete()
else:
pass #error
self.redirect('/admin_sessions')
class EditFrontHandler(webapp2.RequestHandler):
def get(self):
user = users.get_current_user()
if user:
helpers.checkUser(user)
adminAcc = Admin.get_by_id(user.user_id())
if adminAcc:
template = jinja_environment.get_template('templates/admin_front.html')
template_values = getTemplateValues(adminAcc, self)
self.response.write(template.render(template_values))
else:
self.redirect('/')
class SettingsHandler(webapp2.RequestHandler):
def get(self):
user = users.get_current_user()
if user:
helpers.checkUser(user)
adminAcc = Admin.get_by_id(user.user_id())
if adminAcc:
template = jinja_environment.get_template('templates/admin_settings.html')
template_values = getTemplateValues(adminAcc, self)
self.response.write(template.render(template_values))
else:
self.redirect('/')
class AccSettingsHandler(webapp2.RequestHandler):
def get(self):
user = users.get_current_user()
if user:
helpers.checkUser(user)
adminAcc = Admin.get_by_id(user.user_id())
if adminAcc:
template = jinja_environment.get_template('templates/account_settings.html')
template_values = getTemplateValues(adminAcc, self)
self.response.write(template.render(template_values))
else:
self.redirect('/')