--- MPIWGWeb/Attic/MPIWGRoot.py 2008/09/07 17:13:32 1.1.2.17 +++ MPIWGWeb/Attic/MPIWGRoot.py 2008/10/23 10:02:09 1.1.2.21 @@ -60,8 +60,10 @@ class MPIWGRoot(ZSQLExtendFolder): 'WEB_project_description':'WEB_project_description', 'WEB_related_pub':'WEB_related_pub'} + # (is this used?) folders=['MPIWGProject','Folder','ECHO_Navigation'] - + # language of this instance + lang = 'en' # types of objects that show up in navigation nav_meta_types = ['MPIWGTemplate','MPIWGLink','MPIWGFolder'] @@ -226,6 +228,9 @@ class MPIWGRoot(ZSQLExtendFolder): else: return array[idx] + def getLang(self): + """returns the default language""" + return self.lang def browserCheck(self): """check the browsers request to find out the browser type""" @@ -338,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) @@ -404,6 +393,10 @@ class MPIWGRoot(ZSQLExtendFolder): return [f[1] for f in features] + def getMPIWGRoot(self): + """returns the MPIWG root""" + return self + def MPIWGrootURL(self): """returns the URL to the root""" return self.absolute_url() @@ -591,12 +584,14 @@ class MPIWGRoot(ZSQLExtendFolder): pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeMPIWGRootForm')).__of__(self) return pt() - def changeMPIWGRoot(self,title,disciplineList,themesList,connection_id,RESPONSE=None): + def changeMPIWGRoot(self,title,disciplineList,themesList,connection_id,lang=None,RESPONSE=None): """change""" self.title=title self.connection_id=connection_id self.disciplineList=disciplineList self.themesList=themesList + if lang is not None: + self.lang = lang if RESPONSE is not None: RESPONSE.redirect('manage_main') @@ -605,7 +600,7 @@ class MPIWGRoot(ZSQLExtendFolder): def getContexts(self,childs=None,parents=None,depth=None,date=None,onlyActive=True): """childs alle childs, alle parents""" ret=[] - + if parents: pnums=parents.split(".") while len(pnums) > 1: @@ -635,6 +630,7 @@ class MPIWGRoot(ZSQLExtendFolder): ret.append(project) #logging.debug("getContexts: childs=%s parents=%s depth=%s => %s"%(childs,parents,depth,repr(ret))) + return ret