add_confirm.py
branchxbelweb
changeset 17 14bec94bbe89
child 21 345ee7421989
--- /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:])
+