--- ECHO_content/ECHO_Nav.py 2004/02/03 16:58:31 1.3 +++ ECHO_content/ECHO_Nav.py 2004/02/03 17:31:16 1.4 @@ -31,9 +31,9 @@ class ECHO_sqlElement(SimpleItem): ) def getWeight(self): - if has_attr('weight'): - return weight - + """get weight""" + if hasattr(self,'weight'): + return self.weight else: return 0 @@ -95,10 +95,23 @@ class ECHO_pageTemplate(ZopePageTemplate ) def changeECHO_pageTemplateWeightForm(self): - """change""" - pt=PageTemplateFile('Products/ECHO_content/ChangeECHO_pageTemplateWeight.zpt').__of__(self) - return pt() + """change""" + pt=PageTemplateFile('Products/ECHO_content/ChangeECHO_pageTemplateWeight.zpt').__of__(self) + return pt() + + def changeECHO_pageTemplateWeight(self,weight,RESPONSE=None): + """change""" + self.weight=weight + if RESPONSE is not None: + RESPONSE.redirect('manage_main') + + def getWeight(self): + """get weight""" + if hasattr(self,'weight'): + return self.weight + else: + return 0 @@ -210,7 +223,7 @@ class ECHO_navigation(Folder): #objtemp = compile(temp,'','single') #obj=eval(objtemp) - print obj + #print obj #print obj.__dict__.keys() @@ -238,14 +251,15 @@ class ECHO_navigation(Folder): temp=hash for x in start: temp=temp[x][0] - - for x in temp.keys(): - if temp[x][1].meta_type=="ECHO_sqlElement": - for z in temp[x][1].getNavList(): - listNav.append((z[0],z[1])) - else: - listNav.append((temp[x][1].title,createPath(self.absolute_url(),temp[x][1].absolute_url()))) - print self.absolute_url(),"::",temp[x][1].absolute_url() + + for x in self.tempSorted(temp): + if not temp[x][1].title == "": + if temp[x][1].meta_type=="ECHO_sqlElement": + for z in temp[x][1].getNavList(): + listNav.append((z[0],z[1])) + else: + listNav.append((temp[x][1].title,createPath(self.absolute_url(),temp[x][1].absolute_url()))) + #print listNav @@ -256,6 +270,25 @@ class ECHO_navigation(Folder): return listNav + def tempSorted(self,hash): + ls=[] + for x in hash.keys(): + #print hash[x][1] + if hasattr(hash[x][1],'weight'): + weight=hash[x][1].weight + #print weight + else: + weight=0 + + ls.append((x,weight)) + + ls.sort(sortWeight) + + return [x[0] for x in ls] + + + + def isSelectedPath(self,item): """test is path is already selected""" found=re.search("\?(.*)",item[1]) @@ -326,6 +359,7 @@ class ECHO_navigation(Folder): try: keys=self.barFromHash(self.createNavHash(0)) + except: keys="" @@ -407,5 +441,8 @@ def createPath(url1,url2): del temp2[0] return url1+"/"+string.join(temp2,"/") - + +def sortWeight(x,y): + #print x[1],y[1] + return cmp(x[1],y[1])