def _group_tree_branch(root_group, highlight_group_name=None, type='group'): '''Returns a branch of the group tree hierarchy, rooted in the given group. :param root_group_id: group object at the top of the part of the tree :param highlight_group_name: group name that is to be flagged 'highlighted' :returns: the top GroupTreeNode of the tree ''' nodes = {} # group_id: GroupTreeNode() root_node = nodes[root_group.id] = GroupTreeNode( {'id': root_group.id, 'name': root_group.name, 'title': root_group.title}) if root_group.name == highlight_group_name: nodes[root_group.id].highlight() highlight_group_name = None for group_id, group_name, group_title, parent_id in \ root_group.get_children_group_hierarchy(type=type): node = GroupTreeNode({'id': group_id, 'name': group_name, 'title': group_title}) nodes[parent_id].add_child_node(node) if highlight_group_name and group_name == highlight_group_name: node.highlight() nodes[group_id] = node return root_node
def _group_tree_branch(root_group, highlight_group_name=None, children=[]): '''Returns a branch of the group tree hierarchy, rooted in the given group. :param root_group_id: group object at the top of the part of the tree :param highlight_group_name: group name that is to be flagged 'highlighted' :returns: the top GroupTreeNode of the tree ''' nodes = {} # group_id: GroupTreeNode() root_node = nodes[root_group.id] = GroupTreeNode( {'id': root_group.id, 'name': root_group.name, 'title': root_group.title, 'dataset_count': root_group.subtree_dataset_count}) root_node.update(root_group.custom_extras) if root_group.name == highlight_group_name: nodes[root_group.id].highlight() highlight_group_name = None for group_id, group_name, group_title, parent_id, dataset_count, extras in children: node = GroupTreeNode({'id': group_id, 'name': group_name, 'title': group_title, 'dataset_count': dataset_count}) if extras: node.update(extras) nodes[parent_id].add_child_node(node) if highlight_group_name and group_name == highlight_group_name: node.highlight() nodes[group_id] = node return root_node
def _group_tree_branch(root_group, highlight_group_name=None, type="group"): """Returns a branch of the group tree hierarchy, rooted in the given group. :param root_group_id: group object at the top of the part of the tree :param highlight_group_name: group name that is to be flagged 'highlighted' :returns: the top GroupTreeNode of the tree """ nodes = {} # group_id: GroupTreeNode() root_node = nodes[root_group.id] = GroupTreeNode({ "id": root_group.id, "name": root_group.name, "title": root_group.title, }) if root_group.name == highlight_group_name: nodes[root_group.id].highlight() highlight_group_name = None for ( group_id, group_name, group_title, parent_id, ) in root_group.get_children_group_hierarchy(type=type): node = GroupTreeNode({ "id": group_id, "name": group_name, "title": group_title }) nodes[parent_id].add_child_node(node) if highlight_group_name and group_name == highlight_group_name: node.highlight() nodes[group_id] = node return root_node
def _group_tree_branch(root_group, highlight_group_name=None, type='group', group_counts=None): '''Returns a branch of the group tree hierarchy, rooted in the given group. :param root_group_id: group object at the top of the part of the tree :param highlight_group_name: group name that is to be flagged 'highlighted' :returns: the top GroupTreeNode of the tree ''' nodes = {} # group_id: GroupTreeNode() root_node = nodes[root_group.id] = GroupTreeNode( {'id': root_group.id, 'name': root_group.name, 'title': root_group.title}) if root_group.name == highlight_group_name: nodes[root_group.id].highlight() highlight_group_name = None for group_id, group_name, group_title, parent_id in \ root_group.get_children_group_hierarchy(type=type): node = GroupTreeNode({'id': group_id, 'name': group_name, 'title': group_title}) if not group_counts or group_id in group_counts: nodes[parent_id].add_child_node(node) if highlight_group_name and group_name == highlight_group_name: node.highlight() nodes[group_id] = node return root_node
def _group_tree_branch(root_group, pkg_count, highlight_group_name=None, type='group'): '''Returns a branch of the group tree hierarchy, rooted in the given group. :param root_group_id: group object at the top of the part of the tree :param highlight_group_name: group name that is to be flagged 'highlighted' :returns: the top GroupTreeNode of the tree ''' import pprint nodes = {} # group_id: GroupTreeNode() #Calculate package count for root orgs root_count = pkg_count.get(root_group.name, 0) for group_id, group_name, group_title, parent_id in root_group.get_children_group_hierarchy(type=type): root_count += pkg_count.get(group_name, 0) root_node = nodes[root_group.id] = GroupTreeNode( {'id': root_group.id, 'pkg_num': str(root_count), 'name': root_group.name, 'title': root_group.title, 'is_top_org' : True}) if root_group.name == highlight_group_name: nodes[root_group.id].highlight() highlight_group_name = None for group_id, group_name, group_title, parent_id in \ root_group.get_children_group_hierarchy(type=type): pkg_num = pkg_count.get(group_name, 0) node = GroupTreeNode({'id': group_id, 'pkg_num': str(pkg_num), 'name': group_name, 'title': group_title, 'is_top_org' : False}) nodes[parent_id].add_child_node(node) if highlight_group_name and group_name == highlight_group_name: node.highlight() nodes[group_id] = node return root_node