A lot of fix again, for folder view, bookmark editing and removal
and some error handling.
--- 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:
--- 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)
--- 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
--- 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 @@
<fieldset class="bookmark">
<input type="hidden" name="id" value="<TMPL_VAR bkid>"/>
<label>Nom: <input type="text" name="name"
- value="<TMPL_VAR ctitle>"/></label><br/>
+ value="<TMPL_VAR name>"/></label><br/>
<label>URL: <input type="text" name="url"
- value="<TMPL_VAR curl>"/></label><br/>
+ value="<TMPL_VAR url>"/></label><br/>
<label for="desc">Description: </label><br/>
<textarea name="desc" rows="5" cols="40"><TMPL_VAR desc></textarea>
</fieldset>
--- 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 @@
<fieldset>
<legend>Bookmark</legend>
<input type="hidden" name="action" value="bookmark"/>
+ <input type="hidden" name="execute" value="<TMPL_VAR step>"/>
<input type="hidden" name="id" value="<TMPL_VAR id>"/>
<input type="hidden" name="name" value="<TMPL_VAR name>"/>
<input type="hidden" name="url" value="<TMPL_VAR url>"/>
--- 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 @@
<input type="hidden" name="action" value="folder"/>
<input type="hidden" name="view" value="folder"/>
<input type="hidden" name="folder" value="<TMPL_VAR folder>"/>
- <select name="sel" size="1">
+ <select name="selection" size="1">
<TMPL_LOOP Keywords>
- <option name="selection" value="<TMPL_VAR id>"
+ <option value="<TMPL_VAR id>"
><TMPL_VAR keyword> (<TMPL_VAR removed>/<TMPL_VAR count>)</option>
</TMPL_LOOP></select>
<button name="step" value="add">Add</button>
--- 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 @@
<TMPL_LOOP Bookmarks>
<dt>
<a href="<TMPL_VAR url>"><TMPL_VAR name></a>
- <a href="?action=edit&id=<TMPL_VAR id>">edit</a>
+ <a href="?action=bookmark&step=edit&id=<TMPL_VAR id>">edit</a>
</dt>
<dd><p><TMPL_VAR desc></p></dd>
</TMPL_LOOP>