diff -r 07adce9ccccb -r 14bec94bbe89 add_result.py --- 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)