| #!/usr/bin/python2 |
| |
| import os, cgi, cgitb, time, urllib |
| import db, unique_cookie |
| |
| ## setting script globals |
| form = cgi.FieldStorage() |
| if 'label' in form.keys(): |
| comment = form['label'].value |
| else: |
| comment = '' |
| dict_url = {} |
| for key in form.keys(): |
| dict_url[key] = form[key].value |
| |
| tm = time.asctime() |
| uid = unique_cookie.unique_id('tko_history') |
| HTTP_REFERER = os.environ.get('HTTP_REFERER') |
| if HTTP_REFERER is None: |
| ## fall back strategy for proxy connection |
| ## substitute relative url |
| HTTP_REFERER = 'compose_query.cgi?' + urllib.urlencode(dict_url) |
| |
| |
| class QueryHistoryError(Exception): |
| pass |
| |
| |
| def log_query(): |
| db_obj = db.db() |
| data_to_insert = {'uid':uid, 'time_created':tm, |
| 'user_comment':comment, 'url':HTTP_REFERER } |
| try: |
| db_obj.insert('tko_query_history', data_to_insert) |
| except: |
| raise QueryHistoryError("Could not save query") |
| |
| |
| def delete_query(time_stamp): |
| ## query is marked for delete by time stamp |
| db_obj = db.db() |
| data_to_delete = {'time_created':time_stamp} |
| try: |
| db_obj.delete('tko_query_history', data_to_delete) |
| except Exception: |
| raise QueryHistoryError("Could not delete query") |
| |
| |
| def body(): |
| if not 'delete' in dict_url.keys(): |
| log_query() |
| print '<b>%s</b><br><br>' % "Your query has been saved" |
| print 'time: %s<br>' % tm |
| print 'comments: %s<br><br>' % comment |
| else: |
| ## key 'delete' has arg value of time_stamp |
| ## which identifies the query to be deleted |
| time_stamp = dict_url['delete'] |
| delete_query(time_stamp) |
| print '<b>%s</b><br><br>' % "Your query has been deleted" |
| |
| print '<a href="query_history.cgi">View saved queries</a> ' |
| print '<br><br>' |
| if not 'delete' in dict_url.keys(): |
| print '<a href="%s">Back to Autotest</a><br>' % HTTP_REFERER |
| else: |
| print '<a href="compose_query.cgi">Autotest Results</a><br>' |
| |
| |
| def main(): |
| print "Content-type: text/html\n" |
| print '<html><head><title>' |
| print '</title></head>' |
| print '<body>' |
| body() |
| print '</body>' |
| print '</html>' |
| |
| |
| main() |