[svn r1585] Restrict keywords count to selection.
--- a/ChangeLog Wed Oct 08 17:51:09 2003 -0400
+++ b/ChangeLog Fri Oct 10 11:38:20 2003 -0400
@@ -1,3 +1,9 @@
+xbelweb (0.1-4) unstable; urgency=low
+
+ * Restrict keywords count to selection.
+
+ -- Fabien Ninoles <fabien@tzone.org> Fri, 10 Oct 2003 11:18:47 -0400
+
xbelweb (0.1-2) unstable; urgency=low
* Add user preferences (kw sorting and select box size).
--- a/TODO Wed Oct 08 17:51:09 2003 -0400
+++ b/TODO Fri Oct 10 11:38:20 2003 -0400
@@ -1,6 +1,5 @@
* Used SQL sequence instead of the db_sequence table.
* Add CSS.
-* Add limit query page
* Add Search capabilities.
* Add default (dynamic?) tree expansion.
* Add XBel Export.
--- a/index.py Wed Oct 08 17:51:09 2003 -0400
+++ b/index.py Fri Oct 10 11:38:20 2003 -0400
@@ -33,4 +33,4 @@
if len(bookmarks) > 0:
bookmarks = db.get_bookmarks(map(lambda x: x[0], bookmarks))
bookmarks = map(lambda bk: bk.dict(), bookmarks)
- process_index(bookmarks, keywords, db.get_preferences())
+ process_index(bookmarks, keywords[1:], db.get_preferences())
--- a/lib/my_db.py Wed Oct 08 17:51:09 2003 -0400
+++ b/lib/my_db.py Fri Oct 10 11:38:20 2003 -0400
@@ -175,7 +175,7 @@
AND (
""" % (self.userid, self.userid)
for id in bk_ids:
- qry = qry + "bk.bookmark = %d OR " % (id,)
+ qry += "bk.bookmark = %d OR " % (id,)
qry = qry[:-3] + ") ORDER BY k.id;"
self.crs.execute(qry)
return self.crs.fetchall()
@@ -217,14 +217,19 @@
ORDER BY k.id;""" % (self.userid,))
res = self.crs.fetchall()
return res
- def get_keywords_count(self):
+ def get_keywords_count(self, bks = []):
"""Return a list of doublets [id, count].
Does with a count of zero are ignored."""
- self.crs.execute("""SELECT bk.keyword, COUNT(bk.keyword)
+ qry = """SELECT bk.keyword, COUNT(bk.keyword)
FROM bookmarks_keywords bk
- WHERE bk.userid = %d
- GROUP BY bk.keyword
- ORDER BY bk.keyword;""" % (self.userid,))
+ WHERE bk.userid = %d""" % (self.userid,)
+ if len(bks) > 0:
+ qry += " AND ( bk.bookmark = %d" % bks[0]
+ for bk in bks[1:]:
+ qry += " OR bk.bookmark = %d" % bk
+ qry += " )"
+ qry += " GROUP BY bk.keyword ORDER BY bk.keyword;"
+ self.crs.execute(qry)
res = self.crs.fetchall()
if not res:
res = [[0,0]]
--- a/lib/webutils.py Wed Oct 08 17:51:09 2003 -0400
+++ b/lib/webutils.py Fri Oct 10 11:38:20 2003 -0400
@@ -26,7 +26,7 @@
allkw = map(lambda x,y: [x, y], ids, names)
else:
allkw = db.get_all_keywords()
- (kw, cnt) = map(list,apply(zip, db.get_keywords_count()))
+ (kw, cnt) = map(list,apply(zip, db.get_keywords_count(bk)))
res = []
for key in allkw:
is_selected = key[0] in sel
@@ -82,7 +82,7 @@
tproc = get_template_processor(pref)
bk.sort(lambda x,y: cmp(x['name'],y['name']))
tproc.set("Bookmarks", bk)
- kw = sort_keywords(kw[1:], pref)
+ kw = sort_keywords(kw, pref)
tproc.set("Keywords", kw)
tproc.set("curl", get_curl())
tproc.set("total", len(bk))