diff -r c078d8a04d76 -r 6784c4350b41 lib/actions/add.py --- a/lib/actions/add.py Wed Dec 31 01:53:22 2008 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,114 +0,0 @@ -from templates import Template -from bkmark import Bookmark -from webutils import load_index -from templates import Template -from keywords import add_unique_keywords -import os - -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 = set(map(db.get_keyword, kw)) - return list(kw.union(get_new_kw_from_form(form))) - -def edit(db, prefs, form, id): - name = url = "" - if form.has_key("ctitle"): - name = form["ctitle"].value - if form.has_key("curl"): - url = form["curl"].value - kw = db.get_all_keywords()[1:] - kw.sort(lambda l,r: cmp(l[1],r[1])) - kw = map(lambda elem: { - 'id' : elem[0], - 'keyword' : elem[1], - 'checked' : 0 }, kw) - print_edit(id, kw, name, url, prefs) - -def confirm(step, bk, kw, prefs): - tmpl = Template("add_confirm.tmpl", prefs) - confirmation = "Unknown!" - if (step == 'delete'): - confirmation = "Delete" - elif (step == 'update'): - confirmation = "Update" - tmpl.set("confirmation", confirmation) - tmpl.set("step", step) - tmpl.set("id", bk.id) - tmpl.set("name", bk.name) - tmpl.set("url", bk.url) - tmpl.set("Keywords", map(lambda x: {'keyword': x }, kw)) - tmpl.set("desc", bk.desc) - print tmpl.process() - -def print_edit(id, keywords, title, url, prefs): - tmpl = Template("add_bk.tmpl", prefs) - tmpl.set('ctitle', title) - tmpl.set('curl', url) - tmpl.set('desc', '') - tmpl.set('bkid', id) - tmpl.set('Keywords', keywords) - print tmpl.process() - -def update_bookmark(db, form): - bk = get_bk_from_form(form) - id = bk.id - if (bk.id == -1): - id = db.add_bookmark(bk) - else: - db.update_bookmark(bk) - kw = add_unique_keywords(db, get_unique_keywords(form, db)) - db.update_keywords(id, kw.values()) - -def do_it(action, db, prefs, form): - if form.has_key('id'): - id = int(form['id'].value) - else: - id = -1; - if form.has_key('step'): - step = form['step'].value - else: - step = 'edit' - if step == 'edit': - edit(db, prefs, form, id) - elif step == 'confirm': - update_bookmark(db, form) - load_index(db, prefs, form, "result", "Bookmark update") - elif step == 'cancel' or (action == 'delete' and id == -1): - load_index(db, prefs, form, "err", "Operation cancel") - else: - if step == '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])) - kw = kw[1:] - confirm(step, bk, kw, prefs)