diff -r d3c1de4d929e -r 2781ac85b807 lib/webutils.py --- a/lib/webutils.py Fri Oct 24 14:19:30 2003 -0400 +++ b/lib/webutils.py Fri Oct 24 17:04:29 2003 -0400 @@ -1,90 +1,22 @@ #!/usr/bin/python - -import cgi -import my_db -from htmltmpl import TemplateManager, TemplateProcessor from os import environ from urlparse import urljoin - -def get_keywords(form, name): - kws = form.getvalue(name) - if not isinstance(kws, type([])): - if kws: - kws = [kws] - else: - kws = [] - return map(int, kws) - -def set_selection(db, bk, sel, exc = []): - if len(bk) > 0: - ids, names = map(list,apply(zip,db.get_keywords(bk))) - for key in exc: - if key not in ids: - ids.append(key) - names.append(db.get_keyword(key)) - 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(bk))) - res = [] - for key in allkw: - is_selected = key[0] in sel - is_excluded = key[0] in exc - is_unselected = not (is_selected or is_excluded) - if key[0] in kw: - kcnt = cnt[kw.index(key[0])] - else: - kcnt = 0 - res.append({'id':key[0], - 'keyword': key[1], - 'count' : kcnt, - 'selected' : is_selected, - 'excluded' : is_excluded, - '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 +from dynamic import do_dynamic +from folders import do_folders def get_curl(): return urljoin( 'http://' + environ["HTTP_HOST"] + environ["REQUEST_URI"], 'add.py') -def load_index(db): - keywords = set_selection(db, [], [], []) - exc = map(lambda e: int(e['id']), keywords[1:]) - bookmarks = db.select_bookmarks([0], exc) - total = keywords[0]['count'] - if len(bookmarks)>0: - bookmarks = db.get_bookmarks(map(lambda x: x[0], bookmarks)) - bookmarks = map(lambda bk: bk.dict(), bookmarks) - pref = db.get_preferences() - process_index(bookmarks, keywords[1:], pref) - -def get_template_processor(prefs): - tproc = TemplateProcessor() - tproc.set("remote_user", prefs["fullname"]) - 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 = get_template_processor(pref) - bk.sort(lambda x,y: cmp(x['name'],y['name'])) - tproc.set("Bookmarks", bk) - kw = sort_keywords(kw, pref) - tproc.set("Keywords", kw) - tproc.set("curl", get_curl()) - tproc.set("total", len(bk)) - print tproc.process(tmpl) - +def load_index(db, prefs, form = None): + if form: + if form.has_key('view'): + if form['view'].value == 'folder': + do_folders(db, prefs, form) + else: + do_dynamic(db, prefs, form) + return + if prefs['default_view'] == 0: + do_dynamic(db, prefs, form) + else: + do_folders(db, prefs, form)