diff -r 07adce9ccccb -r 14bec94bbe89 add_confirm.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/add_confirm.py Fri Sep 26 11:04:15 2003 -0400 @@ -0,0 +1,84 @@ +#!/usr/bin/python + +import sys +import traceback + +if __name__ == "__main__": + sys.path.insert(0, "/home/fabien/lib/python") + sys.path.insert(0, "./lib") + sys.stderr = sys.stdout + + print "Content-type: text/html; charset=iso-8859-1;" + print + +# import cgitb; cgitb.enable() +import cgi +from htmltmpl import TemplateManager, TemplateProcessor +import my_db +import time +from bkmark import Bookmark +from index import load_index +from utils import unique + +def get_bk_from_form(form): + bk = Bookmark() + bk.id = int(form['id'].value) + bk.url = form['url'].value + if form.has_key('name'): + bk.name = form['name'].value + if form.has_key('desc'): + bk.desc = form['desc'].value + return bk + +def get_kw_from_form(form): + kw = form.getvalue("kw") + if not isinstance(kw, type([])): + if kw: + kw = [kw] + else: + kw = [] + kw = map(int, kw) + return kw + +def get_new_kw_from_form(form, sep =','): + if form.has_key('newkw'): + kw= map(lambda e: e.strip(), + form['newkw'].value.split(',')) + return filter(lambda x: x != '', kw) + else: + return [] + +def get_unique_keywords(form, db): + kw = get_kw_from_form(form) + kw = map(db.get_keyword, kw) + kw = kw + get_new_kw_from_form(form) + return unique(kw) + +def main(action, bk, kw): + tmpl = TemplateManager().prepare("add_confirm.tmpl") + tproc = TemplateProcessor() + tproc.set("confirm_delete", action == 'delete') + tproc.set("confirm_update", action == 'update') + tproc.set("action", action) + tproc.set("id", bk.id) + tproc.set("name", bk.name) + tproc.set("url", bk.url) + tproc.set("Keywords", map(lambda x: {'keyword': x }, kw)) + print tproc.process(tmpl) + +if (__name__ == "__main__"): + form = cgi.FieldStorage() + db = my_db.connect() + id = int(form['id'].value) + action = form['action'].value + if action == 'cancel' or (action == 'delete' and id == -1): + load_index(db) + else: + if action == 'update': + bk = get_bk_from_form(form) + kw = get_unique_keywords(form, db) + else: + bk = db.get_bookmarks([id])[0] + (ids, kw) = apply(zip,db.get_keywords(id)) + main(action, bk, kw[1:]) +