# HG changeset patch # User fabien # Date 1066453002 14400 # Node ID c81d480c3224c65eac3392c8f4d58e1640ad1b5e # Parent 87f94936990d92ea83ebca6ff7e2964529441198 [svn r1601] Add first try to get a folder's like view. diff -r 87f94936990d -r c81d480c3224 ChangeLog --- a/ChangeLog Fri Oct 17 15:05:17 2003 -0400 +++ b/ChangeLog Sat Oct 18 00:56:42 2003 -0400 @@ -1,6 +1,7 @@ xbelweb (0.1-5) unstable; urgency=low * Add display name to Preferences. + * Add folders view with Add. -- Fabien Ninoles Fri, 17 Oct 2003 15:04:26 -0400 diff -r 87f94936990d -r c81d480c3224 edit_prefs.py --- a/edit_prefs.py Fri Oct 17 15:05:17 2003 -0400 +++ b/edit_prefs.py Sat Oct 18 00:56:42 2003 -0400 @@ -23,8 +23,7 @@ prefs['keywords_box'] = int(form['kw_size'].value) if form.has_key('kw_sort'): prefs['keywords_sort'] = form['kw_sort'].value - if form.has_key('kw_reverse'): - prefs['keywords_reverse'] = form['kw_reverse'].value <> 0 + prefs['keywords_reverse'] = form.has_key('kw_reverse') if form.has_key('fullname'): prefs['fullname'] = form['fullname'].value db.set_preferences(prefs) 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) diff -r 87f94936990d -r c81d480c3224 folders.tmpl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/folders.tmpl Sat Oct 18 00:56:42 2003 -0400 @@ -0,0 +1,63 @@ + + + + +

's XBelWeb

+ +

+ :

+
+

Main Folder + ()

+
+ +
+
+ +