# HG changeset patch # User fabien # Date 1065800300 14400 # Node ID 7b7cd0e74ee3eb1b559c449ffb6ee743922d4a36 # Parent b62ebedcb8ac790533be4e6f2fcc0a5dd80020e3 [svn r1585] Restrict keywords count to selection. diff -r b62ebedcb8ac -r 7b7cd0e74ee3 ChangeLog --- 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 Fri, 10 Oct 2003 11:18:47 -0400 + xbelweb (0.1-2) unstable; urgency=low * Add user preferences (kw sorting and select box size). diff -r b62ebedcb8ac -r 7b7cd0e74ee3 TODO --- 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. diff -r b62ebedcb8ac -r 7b7cd0e74ee3 index.py --- 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()) diff -r b62ebedcb8ac -r 7b7cd0e74ee3 lib/my_db.py --- 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]] diff -r b62ebedcb8ac -r 7b7cd0e74ee3 lib/webutils.py --- 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))