3 import os
, cgi
, cgitb
, time
, urllib
4 import db
, unique_cookie
6 ## setting script globals
7 form
= cgi
.FieldStorage()
8 if 'label' in form
.keys():
9 comment
= form
['label'].value
13 for key
in form
.keys():
14 dict_url
[key
] = form
[key
].value
17 uid
= unique_cookie
.unique_id('tko_history')
18 HTTP_REFERER
= os
.environ
.get('HTTP_REFERER')
19 if HTTP_REFERER
is None:
20 ## fall back strategy for proxy connection
21 ## substitute relative url
22 HTTP_REFERER
= 'compose_query.cgi?' + urllib
.urlencode(dict_url
)
25 class QueryHistoryError(Exception):
31 data_to_insert
= {'uid':uid
, 'time_created':tm
,
32 'user_comment':comment
, 'url':HTTP_REFERER
}
34 db_obj
.insert('tko_query_history', data_to_insert
)
36 raise QueryHistoryError("Could not save query")
39 def delete_query(time_stamp
):
40 ## query is marked for delete by time stamp
42 data_to_delete
= {'time_created':time_stamp
}
44 db_obj
.delete('tko_query_history', data_to_delete
)
46 raise QueryHistoryError("Could not delete query")
50 if not 'delete' in dict_url
.keys():
52 print '<b>%s</b><br><br>' % "Your query has been saved"
53 print 'time: %s<br>' % tm
54 print 'comments: %s<br><br>' % comment
56 ## key 'delete' has arg value of time_stamp
57 ## which identifies the query to be deleted
58 time_stamp
= dict_url
['delete']
59 delete_query(time_stamp
)
60 print '<b>%s</b><br><br>' % "Your query has been deleted"
62 print '<a href="query_history.cgi">View saved queries</a> '
64 if not 'delete' in dict_url
.keys():
65 print '<a href="%s">Back to Autotest</a><br>' % HTTP_REFERER
67 print '<a href="compose_query.cgi">Autotest Results</a><br>'
71 print "Content-type: text/html\n"
72 print '<html><head><title>'
73 print '</title></head>'