add_confirm.py
branchxbelweb
changeset 17 14bec94bbe89
child 21 345ee7421989
equal deleted inserted replaced
16:07adce9ccccb 17:14bec94bbe89
       
     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 from htmltmpl import TemplateManager, TemplateProcessor
       
    17 import my_db
       
    18 import time
       
    19 from bkmark import Bookmark
       
    20 from index import load_index
       
    21 from utils import unique
       
    22 
       
    23 def get_bk_from_form(form):
       
    24 	bk = Bookmark()
       
    25 	bk.id = int(form['id'].value)
       
    26 	bk.url = form['url'].value
       
    27 	if form.has_key('name'):
       
    28 		bk.name = form['name'].value
       
    29 	if form.has_key('desc'):
       
    30 		bk.desc = form['desc'].value
       
    31 	return bk
       
    32 
       
    33 def get_kw_from_form(form):
       
    34 	kw = form.getvalue("kw")
       
    35 	if not isinstance(kw, type([])):
       
    36 		if kw:
       
    37 			kw = [kw]
       
    38 		else:
       
    39 			kw = []
       
    40 	kw = map(int, kw)
       
    41 	return kw
       
    42 
       
    43 def get_new_kw_from_form(form, sep =','):
       
    44 	if form.has_key('newkw'):
       
    45 		kw= map(lambda e: e.strip(),
       
    46 			form['newkw'].value.split(','))
       
    47 		return filter(lambda x: x != '', kw)
       
    48 	else:
       
    49 		return []
       
    50 
       
    51 def get_unique_keywords(form, db):
       
    52       kw = get_kw_from_form(form)
       
    53       kw = map(db.get_keyword, kw)
       
    54       kw = kw + get_new_kw_from_form(form)
       
    55       return unique(kw)
       
    56 
       
    57 def main(action, bk, kw):
       
    58     tmpl = TemplateManager().prepare("add_confirm.tmpl")
       
    59     tproc = TemplateProcessor()
       
    60     tproc.set("confirm_delete", action == 'delete')
       
    61     tproc.set("confirm_update", action == 'update')
       
    62     tproc.set("action", action)
       
    63     tproc.set("id", bk.id)
       
    64     tproc.set("name", bk.name)
       
    65     tproc.set("url", bk.url)
       
    66     tproc.set("Keywords", map(lambda x: {'keyword': x }, kw))
       
    67     print tproc.process(tmpl)
       
    68 
       
    69 if (__name__ == "__main__"):
       
    70     form = cgi.FieldStorage()
       
    71     db = my_db.connect()
       
    72     id = int(form['id'].value)
       
    73     action = form['action'].value
       
    74     if action == 'cancel' or (action == 'delete' and id == -1):
       
    75         load_index(db)
       
    76     else:
       
    77 	if action == 'update':
       
    78 	  bk = get_bk_from_form(form)
       
    79 	  kw = get_unique_keywords(form, db)
       
    80 	else:
       
    81 	  bk = db.get_bookmarks([id])[0]
       
    82 	  (ids, kw) = apply(zip,db.get_keywords(id))
       
    83 	main(action, bk, kw[1:])
       
    84