lib/webutils.py
branchxbelweb
changeset 38 c30e2402deca
parent 31 cee64de4e7e0
child 41 7b7cd0e74ee3
equal deleted inserted replaced
37:ab20799fef27 38:c30e2402deca
    42 			'selected' : is_selected,
    42 			'selected' : is_selected,
    43 			'excluded' : is_excluded,
    43 			'excluded' : is_excluded,
    44 			'unselected' : is_unselected})
    44 			'unselected' : is_unselected})
    45 	return res
    45 	return res
    46 
    46 
       
    47 def sort_keywords(kw, pref):
       
    48 	global _sk_rev_fact
       
    49 	global _sk_sort
       
    50 	if pref['keywords_reverse']:
       
    51 		_sk_rev_fact = -1
       
    52 	else:
       
    53 		_sk_rev_fact = 1
       
    54 	_sk_sort = pref['keywords_sort'] 
       
    55 	kw.sort(lambda l, r: _sk_rev_fact*cmp(l[_sk_sort], r[_sk_sort]))
       
    56 	return kw
       
    57 
    47 def get_curl():
    58 def get_curl():
    48 	return urljoin( 'http://' + environ["HTTP_HOST"] + environ["REQUEST_URI"], 'add.py')
    59 	return urljoin( 'http://' + environ["HTTP_HOST"] + environ["REQUEST_URI"], 'add.py')
    49 
    60 
    50 def load_index(db):
    61 def load_index(db):
    51     	keywords = set_selection(db, [], [], [])
    62     	keywords = set_selection(db, [], [], [])
    53    	bookmarks = db.select_bookmarks([0], exc)
    64    	bookmarks = db.select_bookmarks([0], exc)
    54     	total = keywords[0]['count']
    65     	total = keywords[0]['count']
    55 	if len(bookmarks)>0:
    66 	if len(bookmarks)>0:
    56     		bookmarks = db.get_bookmarks(map(lambda x: x[0], bookmarks))
    67     		bookmarks = db.get_bookmarks(map(lambda x: x[0], bookmarks))
    57     	bookmarks = map(lambda bk: bk.dict(), bookmarks)
    68     	bookmarks = map(lambda bk: bk.dict(), bookmarks)
    58     	process_index(bookmarks, keywords)
    69 	pref = db.get_preferences()
       
    70     	process_index(bookmarks, keywords[1:], pref)
    59 
    71 
    60 def process_index(bk, kw):
    72 def get_template_processor(prefs):
       
    73     tproc = TemplateProcessor()
       
    74     tproc.set("remote_user", environ["REMOTE_USER"])
       
    75     tproc.set("kw_size", prefs['keywords_box'])
       
    76     tproc.set("kw_sort", prefs['keywords_sort'])
       
    77     tproc.set("kw_reverse", prefs['keywords_reverse'])
       
    78     return tproc
       
    79 
       
    80 def process_index(bk, kw, pref):
    61     tmpl = TemplateManager().prepare("index.tmpl")
    81     tmpl = TemplateManager().prepare("index.tmpl")
    62     tproc = TemplateProcessor()
    82     tproc = get_template_processor(pref)
    63     tproc.set("pagetitle", environ["REMOTE_USER"]+"'s XBELWeb")
       
    64     bk.sort(lambda x,y: cmp(x['name'],y['name']))
    83     bk.sort(lambda x,y: cmp(x['name'],y['name']))
    65     tproc.set("Bookmarks", bk)
    84     tproc.set("Bookmarks", bk)
    66     kw.sort(lambda x,y: -cmp(x['count'],y['count']))
    85     kw = sort_keywords(kw[1:], pref)
    67     tproc.set("Keywords", kw)
    86     tproc.set("Keywords", kw)
    68     tproc.set("curl", get_curl())
    87     tproc.set("curl", get_curl())
    69     tproc.set("total", len(bk))
    88     tproc.set("total", len(bk))
    70     print tproc.process(tmpl)
    89     print tproc.process(tmpl)
    71 
    90