本文整理汇总了Python中tracim.lib.content.ContentApi.get_child_folders方法的典型用法代码示例。如果您正苦于以下问题:Python ContentApi.get_child_folders方法的具体用法?Python ContentApi.get_child_folders怎么用?Python ContentApi.get_child_folders使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tracim.lib.content.ContentApi
的用法示例。
在下文中一共展示了ContentApi.get_child_folders方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _build_sibling_list_of_tree_items
# 需要导入模块: from tracim.lib.content import ContentApi [as 别名]
# 或者: from tracim.lib.content.ContentApi import get_child_folders [as 别名]
def _build_sibling_list_of_tree_items(self,
workspace: Workspace,
content: Content,
children: [NodeTreeItem],
select_active_node = False,
allowed_content_types: list = [],
ignored_item_ids: list = []) -> (Content, [NodeTreeItem]):
api = ContentApi(tmpl_context.current_user)
tree_items = []
parent = content.parent if content else None
viewable_content_types = self._get_treeviewable_content_types_or_none()
child_contents = api.get_child_folders(parent, workspace, allowed_content_types, ignored_item_ids, viewable_content_types)
for child in child_contents:
children_to_add = children if child==content else []
if child==content and select_active_node:
# The item is the requested node, so we select it
is_selected = True
elif content not in child_contents and select_active_node and child==content:
# The item is not present in the list, so we select its parent node
is_selected = True
else:
is_selected = False
new_item = NodeTreeItem(child, children_to_add, is_selected)
tree_items.append(new_item)
# This allow to show contents and folders group by type
tree_items = ContentApi.sort_tree_items(tree_items)
return parent, tree_items
示例2: treeview_root
# 需要导入模块: from tracim.lib.content import ContentApi [as 别名]
# 或者: from tracim.lib.content.ContentApi import get_child_folders [as 别名]
def treeview_root(self, id='#',
current_id=None,
all_workspaces=True,
folder_allowed_content_types='',
ignore_id=None,
ignore_workspace_id=None):
all_workspaces = bool(int(all_workspaces))
# ignore_workspace_id is a string like 3,12,78,15
ignored_ids = [int(id) for id in ignore_workspace_id.split(',')] if ignore_workspace_id else None
if not current_id:
# Default case is to return list of workspaces
api = WorkspaceApi(tmpl_context.current_user)
workspaces = api.get_all_for_user(tmpl_context.current_user,
ignored_ids)
dictified_workspaces = Context(CTX.MENU_API).toDict(workspaces, 'd')
return dictified_workspaces
allowed_content_types = ContentType.allowed_types_from_str(folder_allowed_content_types)
ignored_item_ids = [int(ignore_id)] if ignore_id else []
# Now complex case: we must return a structured tree
# including the selected node, all parents (and their siblings)
workspace, content = convert_id_into_instances(current_id)
# The following step allow to select the parent folder when content itself is not visible in the treeview
if content and content.type!=ContentType.Folder and CFG.CST.TREEVIEW_ALL!=CFG.get_instance().WEBSITE_TREEVIEW_CONTENT:
content = content.parent if content.parent else None
# This is the init of the recursive-like build of the tree
content_parent = content
tree_items = []
# The first step allow to load child of selected item
# (for example, when you select a folder in the windows explorer,
# then the selected folder is expanded by default)
content_api = ContentApi(tmpl_context.current_user)
child_folders = content_api.get_child_folders(content_parent, workspace, allowed_content_types, ignored_item_ids)
if len(child_folders)>0:
first_child = child_folders[0]
content_parent, tree_items = self._build_sibling_list_of_tree_items(workspace, first_child, tree_items, False, allowed_content_types, ignored_item_ids)
content_parent, tree_items = self._build_sibling_list_of_tree_items(workspace, content_parent, tree_items, True, allowed_content_types, ignored_item_ids)
while content_parent:
# Do the same for the parent level
content_parent, tree_items = self._build_sibling_list_of_tree_items(workspace, content_parent, tree_items)
# Now, we have a tree_items list that is the root folders list,
# so we now have to put it as a child of a list of workspaces
should_select_workspace = not content
full_tree = self._build_sibling_list_of_workspaces(workspace, tree_items, should_select_workspace, all_workspaces)
return Context(CTX.MENU_API_BUILD_FROM_TREE_ITEM).toDict(full_tree, 'd')
示例3: get_all_fake
# 需要导入模块: from tracim.lib.content import ContentApi [as 别名]
# 或者: from tracim.lib.content.ContentApi import get_child_folders [as 别名]
def get_all_fake(self, context_workspace: Workspace, parent_id=None):
"""
fake methods are used in other controllers in order to simulate a client/server api.
the "client" controller method will include the result into its own fake_api object
which will be available in the templates
:param context_workspace: the workspace which would be taken from tmpl_context if we were in the normal behavior
:return:
"""
workspace = context_workspace
content_api = ContentApi(tmpl_context.current_user)
parent_folder = content_api.get_one(parent_id, ContentType.Folder)
folders = content_api.get_child_folders(parent_folder, workspace)
folders = Context(CTX.FOLDERS).toDict(folders)
return DictLikeClass(result = folders)