add_confirm.py
changeset 57 31271426f879
parent 56 6b31934e5b2e
child 58 004a32370ba5
equal deleted inserted replaced
56:6b31934e5b2e 57:31271426f879
     1 #!/usr/bin/python
       
     2 
       
     3 import sys
       
     4 import traceback
       
     5 
       
     6 if __name__ == "__main__":
       
     7 	sys.path.insert(0, "/home/fabien/lib/python")
       
     8 	sys.path.insert(0, "./lib")
       
     9 	sys.stderr = sys.stdout
       
    10 
       
    11 	print "Content-type: text/html; charset=iso-8859-1;"
       
    12 	print
       
    13 
       
    14 # import cgitb; cgitb.enable()
       
    15 import cgi
       
    16 import my_db
       
    17 import time
       
    18 from bkmark import Bookmark
       
    19 from webutils import load_index
       
    20 from templates import Template
       
    21 from utils import unique
       
    22 import os
       
    23 
       
    24 def get_bk_from_form(form):
       
    25 	bk = Bookmark()
       
    26 	bk.id = int(form['id'].value)
       
    27 	bk.url = form['url'].value
       
    28 	if form.has_key('name'):
       
    29 		bk.name = form['name'].value
       
    30 	if form.has_key('desc'):
       
    31 		bk.desc = form['desc'].value
       
    32 	return bk
       
    33 
       
    34 def get_kw_from_form(form):
       
    35 	kw = form.getvalue("kw")
       
    36 	if not isinstance(kw, type([])):
       
    37 		if kw:
       
    38 			kw = [kw]
       
    39 		else:
       
    40 			kw = []
       
    41 	kw = map(int, kw)
       
    42 	return kw
       
    43 
       
    44 def get_new_kw_from_form(form, sep =','):
       
    45 	if form.has_key('newkw'):
       
    46 		kw= map(lambda e: e.strip(),
       
    47 			form['newkw'].value.split(','))
       
    48 		return filter(lambda x: x != '', kw)
       
    49 	else:
       
    50 		return []
       
    51 
       
    52 def get_unique_keywords(form, db):
       
    53       kw = get_kw_from_form(form)
       
    54       kw = map(db.get_keyword, kw)
       
    55       kw = kw + get_new_kw_from_form(form)
       
    56       kw = unique(kw) 
       
    57       return kw
       
    58 
       
    59 def main(action, bk, kw, prefs):
       
    60     tmpl = Template("add_confirm.tmpl", prefs)
       
    61     tmpl.set("confirm_delete", action == 'delete')
       
    62     tmpl.set("confirm_update", action == 'update')
       
    63     tmpl.set("action", action)
       
    64     tmpl.set("id", bk.id)
       
    65     tmpl.set("name", bk.name)
       
    66     tmpl.set("url", bk.url)
       
    67     tmpl.set("Keywords", map(lambda x: {'keyword': x }, kw))
       
    68     print tmpl.process()
       
    69 
       
    70 if (__name__ == "__main__"):
       
    71     form = cgi.FieldStorage()
       
    72     db = my_db.connect(os.environ["REMOTE_USER"])
       
    73     prefs = db.get_preferences()
       
    74     id = int(form['id'].value)
       
    75     action = form['action'].value
       
    76     if action == 'cancel' or (action == 'delete' and id == -1):
       
    77         load_index(db, prefs)
       
    78     else:
       
    79 	if action == 'update':
       
    80 	  bk = get_bk_from_form(form)
       
    81 	  kw = get_unique_keywords(form, db)
       
    82 	else:
       
    83 	  bk = db.get_bookmarks([id])[0]
       
    84 	  (ids, kw) = apply(zip,db.get_keywords([id]))
       
    85 	  kw = kw[1:]
       
    86 	main(action, bk, kw, prefs)
       
    87