lib/webutils.py
branchxbelweb
changeset 38 c30e2402deca
parent 31 cee64de4e7e0
child 41 7b7cd0e74ee3
--- 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))