diff -r 87f94936990d -r c81d480c3224 folders.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/folders.py Sat Oct 18 00:56:42 2003 -0400 @@ -0,0 +1,64 @@ +#!/usr/bin/python + +import sys +import traceback +if (__name__ == '__main__'): + sys.path.insert(0, "/home/fabien/lib/python") + sys.path.insert(0, "./lib") + sys.stderr = sys.stdout + + print "Content-type: text/html; charset=iso-8859-1;" + print + +# import cgitb; cgitb.enable() +import cgi +import my_db +from os import environ +from htmltmpl import TemplateManager +from webutils import get_template_processor, set_selection, sort_keywords + +def output(prefs, folder, parents, children, bookmarks, keywords): + tmpl = TemplateManager().prepare("folders.tmpl") + tproc = get_template_processor(prefs) + tproc.set('Parents', parents) + tproc.set('folder', folder['id']) + tproc.set('name', folder['name']) + tproc.set('total', len(bookmarks)) + bookmarks.sort(lambda l,r: cmp(l['name'],r['name'])) + tproc.set('Bookmarks', bookmarks) + tproc.set('Subfolders', children) + keywords = sort_keywords(keywords[1:], prefs) + tproc.set('Keywords', keywords) + print tproc.process(tmpl) + +if (__name__ == "__main__"): + form = cgi.FieldStorage() + db = my_db.connect(environ["REMOTE_USER"]) + if form.has_key('folder'): + folder = int(form['folder'].value) + else: + folder = 0 + if form.has_key('action'): + if form['action'].value == 'add': + if form.has_key('sel'): + keyword = int(form['sel'].value) + db.add_folder(keyword, folder) + print "Folder successfully add." + parents = db.get_folder_parents_and_self(folder) + children = db.get_subfolders(folder) + parents.reverse() + selection = map(lambda e: e['keyword'], parents) + exclusion = map(lambda e: e['keyword'], children) + bookmarks = db.select_bookmarks(selection, exclusion) + selected_keywords = set_selection(db, + map(lambda e: e[0], bookmarks), + selection, exclusion) + keywords = [] + for keyword in selected_keywords: + if not keyword['id'] in exclusion: + keywords.append(keyword) + for child in children: + child['count'] = len(db.select_bookmarks(selection + [child['keyword']])) + bookmarks = db.get_bookmarks(map(lambda bk: bk[0], bookmarks)) + bookmarks = map(lambda bk: bk.dict(), bookmarks) + output(db.get_preferences(), parents.pop(), parents, children, bookmarks, keywords)