--- /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:])
+