]> CRI, Mines Paris - PSL - MosaicDocument.git/blobdiff - Products/MosaicDocument/skins/make_nav_tree.py
eggification
[MosaicDocument.git] / Products / MosaicDocument / skins / make_nav_tree.py
diff --git a/Products/MosaicDocument/skins/make_nav_tree.py b/Products/MosaicDocument/skins/make_nav_tree.py
new file mode 100755 (executable)
index 0000000..39b3e92
--- /dev/null
@@ -0,0 +1,30 @@
+##parameters=rootObject, filtered_meta_types=[], userid=''
+
+req = context.REQUEST
+resp = req.RESPONSE
+collapse_all = False
+if req.form.get('collapse_all', '') == rootObject.id or req.get('just_login', False) :
+       collapse_all = True
+
+from Products.CMFCore.permissions import View
+
+def getSubObjects(object) :
+       if getattr(object, 'isPortalContent', False) :
+               return []
+       childs = list(object.listNearestFolderContents(contentFilter={'portal_type':filtered_meta_types}, userid=userid))
+       childs.sort(lambda x, y : cmp(x.title_or_id().lower(), y.title_or_id().lower()))
+       return childs
+
+
+
+from ZTUtils import SimpleTreeMaker
+stateName = rootObject.id + userid + '_tree'
+cookieName = stateName + '-state'
+stm = SimpleTreeMaker(stateName)
+stm.setChildAccess(function=getSubObjects)
+
+tree, rows = stm.cookieTree(rootObject)
+cookieValue = resp.cookies[cookieName]['value']
+resp.setCookie(cookieName, cookieValue, path = '/')
+
+return {'tree' : tree, 'rows' : rows}
\ No newline at end of file