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 |