diff -r ab20799fef27 -r c30e2402deca lib/webutils.py --- a/lib/webutils.py Tue Oct 07 11:10:52 2003 -0400 +++ b/lib/webutils.py Tue Oct 07 12:50:30 2003 -0400 @@ -44,6 +44,17 @@ 'unselected' : is_unselected}) return res +def sort_keywords(kw, pref): + global _sk_rev_fact + global _sk_sort + if pref['keywords_reverse']: + _sk_rev_fact = -1 + else: + _sk_rev_fact = 1 + _sk_sort = pref['keywords_sort'] + kw.sort(lambda l, r: _sk_rev_fact*cmp(l[_sk_sort], r[_sk_sort])) + return kw + def get_curl(): return urljoin( 'http://' + environ["HTTP_HOST"] + environ["REQUEST_URI"], 'add.py') @@ -55,15 +66,23 @@ 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) + pref = db.get_preferences() + process_index(bookmarks, keywords[1:], pref) -def process_index(bk, kw): +def get_template_processor(prefs): + tproc = TemplateProcessor() + tproc.set("remote_user", environ["REMOTE_USER"]) + tproc.set("kw_size", prefs['keywords_box']) + tproc.set("kw_sort", prefs['keywords_sort']) + tproc.set("kw_reverse", prefs['keywords_reverse']) + return tproc + +def process_index(bk, kw, pref): tmpl = TemplateManager().prepare("index.tmpl") - tproc = TemplateProcessor() - tproc.set("pagetitle", environ["REMOTE_USER"]+"'s XBELWeb") + tproc = get_template_processor(pref) bk.sort(lambda x,y: cmp(x['name'],y['name'])) tproc.set("Bookmarks", bk) - kw.sort(lambda x,y: -cmp(x['count'],y['count'])) + kw = sort_keywords(kw[1:], pref) tproc.set("Keywords", kw) tproc.set("curl", get_curl()) tproc.set("total", len(bk))