--- MPIWGWeb/Attic/MPIWGRoot.py 2008/09/08 08:40:05 1.1.2.18 +++ MPIWGWeb/Attic/MPIWGRoot.py 2008/09/12 15:10:49 1.1.2.19 @@ -343,36 +343,20 @@ class MPIWGRoot(ZSQLExtendFolder): return subret def subNav(self,obj): - """return subnav elemente""" - #if obj.meta_type in ['MPIWGTemplate','MPIWGLink']: - # id=obj.aq_parent.getId() - #else: - - #id=obj.getId() - - - #suche die zweite ebene - - if not obj.aq_parent.getId() in ['de','en']: - obj=obj.aq_parent - - while not self.ZopeFind(self,obj_ids=[obj.getId()]): - obj=obj.aq_parent - - - if hasattr(self,obj.getId()): - - subs=self.ZopeFind(getattr(self,obj.getId()),obj_metatypes=self.nav_meta_types) - subret=[] - - for x in subs: - if not(x[1].title==""): - subret.append(x) - subret.sort(sortWeight) - return subret - else: - return None - + """return sub-navigation elements i.e. below sections""" + # get section -> parent should be MPIWGRoot + p = obj + sec = None + # descend parents to the root (and remember the last id) + while p is not None and p.meta_type != 'MPIWGRoot': + sec = p + p = p.aq_parent + + subsecs = sec.objectItems(self.nav_meta_types) + subsecs = [s for s in subsecs if s[1].title != ""] + subsecs.sort(sortWeight) + return subsecs + def isType(self,object,meta_type): """teste ob ein object vom meta_type ist.""" return (object.meta_type==meta_type)