lib/folders.py
branchxbelweb
changeset 51 7015d65beb3d
parent 49 57932e991854
child 52 fe0d02f344cb
equal deleted inserted replaced
50:5275135955c0 51:7015d65beb3d
    38     		folder = int(form['folder'].value)
    38     		folder = int(form['folder'].value)
    39    	if form.has_key('action'):
    39    	if form.has_key('action'):
    40 		do_folder_action(db, form, folder)
    40 		do_folder_action(db, form, folder)
    41     parents = db.get_folder_parents_and_self(folder)
    41     parents = db.get_folder_parents_and_self(folder)
    42     children = db.get_subfolders(folder)
    42     children = db.get_subfolders(folder)
    43     parents.reverse()
       
    44     selection = map(lambda e: e['keyword'], parents)
    43     selection = map(lambda e: e['keyword'], parents)
    45     exclusion = map(lambda e: e['keyword'], children)
    44     exclusion = map(lambda e: e['keyword'], children)
    46     bookmarks = db.select_bookmarks(selection, exclusion)
    45     parents.reverse()
       
    46     folder = parents.pop()
       
    47     bookmarks = db.select_bookmarks(selection)
    47     selected_keywords = set_selection(db,
    48     selected_keywords = set_selection(db,
    48 		map(lambda e: e[0], bookmarks),
    49 		map(lambda e: e[0], bookmarks),
    49 		selection, exclusion)
    50 		selection)
    50     keywords = []
    51     keywords = []
       
    52     folders_keywords = selection +exclusion
    51     for keyword in selected_keywords:
    53     for keyword in selected_keywords:
    52     	if not keyword['id'] in exclusion:
    54     	if keyword['id'] not in folders_keywords:
    53 		keywords.append(keyword)
    55 		keywords.append(keyword)
    54     for child in children:
    56     for child in children:
    55     	child['count'] = len(db.select_bookmarks(selection + [child['keyword']]))
    57     	child['count'] = len(db.select_bookmarks(selection + [child['keyword']]))
       
    58     bookmarks = db.select_bookmarks(selection, exclusion)
    56     if len(bookmarks) <> 0:
    59     if len(bookmarks) <> 0:
    57    	bookmarks = db.get_bookmarks(map(lambda bk: bk[0], bookmarks))
    60    	bookmarks = db.get_bookmarks(map(lambda bk: bk[0], bookmarks))
    58     	bookmarks = map(lambda bk: bk.dict(), bookmarks)
    61     	bookmarks = map(lambda bk: bk.dict(), bookmarks)
    59     output(prefs, parents.pop(), parents, children, bookmarks, keywords)
    62     output(prefs, folder, parents, children, bookmarks, keywords)