def getRootPath(context, currentFolderOnly, topLevel, root): """Helper function to calculate the real root path """ context = aq_inner(context) if currentFolderOnly: folderish = getattr(aq_base(context), 'isPrincipiaFolderish', False) and not INonStructuralFolder.providedBy(context) parent = aq_parent(context) is_default_page = False browser_default = IBrowserDefault(parent, None) if browser_default is not None: is_default_page = (browser_default.getDefaultPage() == context.getId()) if not folderish: return '/'.join(parent.getPhysicalPath()) else: return '/'.join(context.getPhysicalPath()) rootPath = getNavigationRoot(context, relativeRoot=root) # Adjust for topLevel if topLevel > 0: contextPath = '/'.join(context.getPhysicalPath()) if not contextPath.startswith(rootPath): return None contextSubPathElements = contextPath[len(rootPath)+1:] if contextSubPathElements: contextSubPathElements = contextSubPathElements.split('/') if len(contextSubPathElements) < topLevel: return None rootPath = rootPath + '/' + '/'.join(contextSubPathElements[:topLevel]) else: return None return rootPath
def _is_default_page(container, context): is_default_page = False browser_default = IBrowserDefault(container, None) if browser_default is not None: is_default_page = browser_default.getDefaultPage() == context.getId() return is_default_page
def getRootPath(context, currentFolderOnly, topLevel, root_path): """Helper function to calculate the real root path""" context = aq_inner(context) if currentFolderOnly: folderish = getattr( aq_base(context), "isPrincipiaFolderish", False) and not INonStructuralFolder.providedBy(context) parent = aq_parent(context) is_default_page = False browser_default = IBrowserDefault(parent, None) if browser_default is not None: is_default_page = browser_default.getDefaultPage( ) == context.getId() if not folderish or is_default_page: return "/".join(parent.getPhysicalPath()) else: return "/".join(context.getPhysicalPath()) # root = uuidToObject(root) root = get_root(context, root_path) if root is not None: rootPath = "/".join(root.getPhysicalPath()) else: rootPath = getNavigationRoot(context) # Adjust for topLevel if topLevel > 0: contextPath = "/".join(context.getPhysicalPath()) if not contextPath.startswith(rootPath): return contextSubPathElements = contextPath[len(rootPath) + 1:] if contextSubPathElements: contextSubPathElements = contextSubPathElements.split("/") if len(contextSubPathElements) < topLevel: return rootPath = rootPath + "/" + "/".join( contextSubPathElements[:topLevel]) else: return return rootPath