--- 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)