# HG changeset patch # User fabien@tzone.org # Date 1230758782 18000 # Node ID 4f6b7b48322f101bd8e5ffe40ab3968ba67e0361 # Parent 6784c4350b4170ee337f9b359cb198c386a00723 A lot of fix again, for folder view, bookmark editing and removal and some error handling. diff -r 6784c4350b41 -r 4f6b7b48322f lib/actions/bookmark.py --- a/lib/actions/bookmark.py Wed Dec 31 15:41:32 2008 -0500 +++ b/lib/actions/bookmark.py Wed Dec 31 16:26:22 2008 -0500 @@ -40,17 +40,24 @@ 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 + bk = Bookmark() + selected_kws = [] + if (id != -1): + bks = db.get_bookmarks([id]) + if len(bks) > 0: + bk = bks[0] + (selected_kws, kwnames) = apply(zip,db.get_keywords([id])) + if form.has_key("name"): + bk.name = form["name"].value + if form.has_key("url"): + bk.url = form["url"].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) + 'checked' : elem[0] in selected_kws }, kw) + print_edit(prefs, bk, kw) def confirm(step, bk, kw, prefs): tmpl = Template("add_confirm.tmpl", prefs) @@ -68,24 +75,29 @@ tmpl.set("desc", bk.desc) print tmpl.process() -def print_edit(id, keywords, title, url, prefs): +def print_edit(prefs, bk, keywords): tmpl = Template("add_bk.tmpl", prefs) - tmpl.set('ctitle', title) - tmpl.set('curl', url) - tmpl.set('desc', '') - tmpl.set('bkid', id) + tmpl.set('name', bk.name) + tmpl.set('url', bk.url) + tmpl.set('desc', bk.desc) + tmpl.set('bkid', bk.id) tmpl.set('Keywords', keywords) print tmpl.process() -def update_bookmark(db, form): +def execute(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()) + execution = form['execute'].value + if execution == 'delete': + if id != -1: + db.remove_bookmark(id) + elif execution == 'update': + 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'): @@ -99,8 +111,8 @@ if step == 'edit': edit(db, prefs, form, id) elif step == 'confirm': - update_bookmark(db, form) - load_index(db, prefs, form, "result", "Bookmark update") + execute(db, form) + load_index(db, prefs, form, "result", "Bookmark " + form['execute'].value) elif step == 'cancel' or (action == 'delete' and id == -1): load_index(db, prefs, form, "err", "Operation cancel") else: diff -r 6784c4350b41 -r 4f6b7b48322f lib/actions/folder.py --- a/lib/actions/folder.py Wed Dec 31 15:41:32 2008 -0500 +++ b/lib/actions/folder.py Wed Dec 31 16:26:22 2008 -0500 @@ -4,7 +4,7 @@ def add_folder(db, form): keyword = int(form['selection'].value) parent = 0 - if (form.has_key('folder'): + if form.has_key('folder'): parent = int(form['folder'].value) db.add_folder(keyword, parent) diff -r 6784c4350b41 -r 4f6b7b48322f lib/my_db.py --- a/lib/my_db.py Wed Dec 31 15:41:32 2008 -0500 +++ b/lib/my_db.py Wed Dec 31 16:26:22 2008 -0500 @@ -277,6 +277,8 @@ return res def map_keywords(self, kws): """Return a dictionnary of keywords and their ids.""" + if len(kws) == 0: + return {} qry = """SELECT k.id, k.name FROM keywords k WHERE k.userid = %d """ % self.userid diff -r 6784c4350b41 -r 4f6b7b48322f templates/add_bk.tmpl --- a/templates/add_bk.tmpl Wed Dec 31 15:41:32 2008 -0500 +++ b/templates/add_bk.tmpl Wed Dec 31 16:26:22 2008 -0500 @@ -7,9 +7,9 @@

+ value=""/>

+ value=""/>

diff -r 6784c4350b41 -r 4f6b7b48322f templates/add_confirm.tmpl --- a/templates/add_confirm.tmpl Wed Dec 31 15:41:32 2008 -0500 +++ b/templates/add_confirm.tmpl Wed Dec 31 16:26:22 2008 -0500 @@ -7,6 +7,7 @@
Bookmark + diff -r 6784c4350b41 -r 4f6b7b48322f templates/folders.tmpl --- a/templates/folders.tmpl Wed Dec 31 15:41:32 2008 -0500 +++ b/templates/folders.tmpl Wed Dec 31 16:26:22 2008 -0500 @@ -34,9 +34,9 @@ - - diff -r 6784c4350b41 -r 4f6b7b48322f templates/inc/bkmarks.tmpl --- a/templates/inc/bkmarks.tmpl Wed Dec 31 15:41:32 2008 -0500 +++ b/templates/inc/bkmarks.tmpl Wed Dec 31 16:26:22 2008 -0500 @@ -2,7 +2,7 @@
- edit + edit