/
player_edit_instancerun_update.py
100 lines (79 loc) · 3.98 KB
/
player_edit_instancerun_update.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
#######################################################################################################
#Authors: Beaudan Campbell-Brown, Derek Mui, Ha Jin Song, Jerry Chen
#INFO20003 assessment
#File used to edit given instanceRun using given input
#Also deletion
#######################################################################################################
# The libraries we'll need
import sys, session, cgi, MySQLdb, redirect, sql_handler as sql, html_template as html, calendar
#######################################################################################################
#Get Session from cookie and fieldstorage that has been passed on from previous page
sess = session.Session(expires=20*60, cookie_path='/')
loggedIn = sess.data.get('loggedIn')
params= cgi.FieldStorage()
#######################################################################################################
#######################################################################################################
#edit only if run ends up being true
run = True
#Check if user is loggedIn with authority and does not have deletion flag set up
if not html.check_logged_in(loggedIn):
run = False
if params.has_key('delete'):
run = False
#If run is still set to true, get all the information from CGI fieldstorage
if run:
instancerunID= params['instancerunID'].value
instancerunName= params['instancerunName'].value
categoryName= params['categoryName'].value
supervisorID= params['supervisorID'].value
#######################################################################################################
def main():
#Run delete if deletion flag is set
if loggedIn == 2 and params.has_key('delete'):
instanceRunID= params["instancerunID"].value
remove_instance(instanceRunID)
#redirect to view instanceRun page
redirect.refresh("player_view_instanceruns.py",sess.cookie)
return
#Else, update information
updateInstanceInfo()
#redirect to edit page of the instanceRun that just got editted
redirect.refresh("player_edit_instancerun.py?instancerunID=%s"%instancerunID, sess.cookie)
return
#######################################################################################################
#Remove from database
def remove_instance(instanceRunID):
#Get related achievements
sql.run_update(("""UPDATE Achievement
SET InstanceRunID = NULL, WhenAchieved = NULL
WHERE InstanceRunID = "%s"
""" % (instanceRunID)))
#Get related Videos
videoID = sql.run_sql(("""SELECT VideoID FROM Video WHERE InstanceRunID = "%s" """ % (instanceRunID)))
if videoID:
videoID = videoID[0][0]
#Remove all viewerOrders for that video
viewerOrders = sql.run_sql(("""SELECT ViewerOrderID FROM ViewerOrderLine WHERE VideoID = "%s" """% (videoID)))
sql.run_remove(("""DELETE FROM ViewerOrderLine WHERE VideoID = "%s"
""" % (videoID)))
for i in viewerOrders:
sql.run_remove(("""DELETE FROM ViewerOrder
WHERE ViewerOrderID = "%s"
""" % (i[0])))
#Delete Video
sql.run_remove(("""DELETE FROM Video WHERE VideoID = "%s"
""" % (videoID)))
#Delete instaceRun
sql.run_remove(("""DELETE FROM InstanceRun WHERE InstanceRunID= "%s"
""" % (instanceRunID)))
return
#######################################################################################################
#Update database using given info
def updateInstanceInfo():
sql.run_update(("""UPDATE InstanceRun
SET Name = "%s", SupervisorID= "%s", CategoryName = "%s"
WHERE InstanceRunID= "%s"
""" % (instancerunName, supervisorID,categoryName,instancerunID)))
return
#######################################################################################################
main()