add_result.py
branchxbelweb
changeset 17 14bec94bbe89
parent 13 7357230539d2
child 21 345ee7421989
--- a/add_result.py	Fri Sep 26 11:03:02 2003 -0400
+++ b/add_result.py	Fri Sep 26 11:04:15 2003 -0400
@@ -12,36 +12,23 @@
 # import cgitb; cgitb.enable()
 import cgi
 from htmltmpl import TemplateManager, TemplateProcessor
+import time
+from utils import unique
 import my_db
-import time
-from bkmark import Bookmark
-
-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
+from add_confirm import get_bk_from_form, get_new_kw_from_form
+from index import load_index
 
-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):
-	if form.has_key('newkw'):
-		return map(lambda e: e.strip(),
-			form['newkw'].value.split(','))
+def add_new_keywords(db, newkw):
+    kw = [0] # Default keyword, so that every bookmarks appears in
+             # the bookmarks_keywords db.
+    (ids, kws, cnt) = map(list,apply(zip, db.get_all_keywords()))
+    for elem in unique(newkw):
+    	if elem in kws:
+		kw.append(ids[kws.index(elem)])
 	else:
-		return []
+		id = db.add_keyword(elem)
+		kw.append(id)
+    return kw
 
 def main(bk, kw):
     tmpl = TemplateManager().prepare("add_result.tmpl")
@@ -56,21 +43,21 @@
 if (__name__ == "__main__"):
     form = cgi.FieldStorage()
     db = my_db.connect()
-    bk = get_bk_from_form(form)
-    kw = get_kw_from_form(form)
-    newkw = get_new_kw_from_form(form)
-    (ids, kws, cnt) = map(list,apply(zip, db.get_all_keywords()))
-    for elem in newkw:
-    	if elem in kws:
-		kw.append(ids[kws.index(elem)])
-	else:
-		id = db.add_keyword(elem)
-		kw.append(id)
-    if bk.id == -1:
+    action = form['action'].value
+    if action == 'cancel':
+      load_index(db)
+    elif action == 'delete':
+      db.remove_bookmark(int(form['id'].value))
+      load_index(db)
+    else:
+      bk = get_bk_from_form(form)
+      newkw = get_new_kw_from_form(form)
+      kw = add_new_keywords(db, newkw)
+      if bk.id == -1:
 	id = db.add_bookmark(bk)
-    else:
-    	db.update_bookmark(bk)
+      else:
+	db.update_bookmark(bk)
 	id = bk.id
-    db.update_keywords(id, kw)
-    kw = map(lambda e: { 'keyword': e[1] }, db.get_keywords(id)[1:])
-    main(bk, kw)
+      db.update_keywords(id, kw)
+      kw = map(lambda e: { 'keyword': e[1] }, db.get_keywords(id)[1:])
+      main(bk, kw)