Mercurial > hg > MPIWGWeb
diff MPIWGFolder.py @ 10:c711fe75d0ac
order by weight form for MPIWGFolder. more cleanup.
author | casties |
---|---|
date | Tue, 26 Feb 2013 20:39:34 +0100 |
parents | bca61e893fcc |
children | ee79f6ba8d01 |
line wrap: on
line diff
--- a/MPIWGFolder.py Fri Feb 15 20:51:34 2013 +0100 +++ b/MPIWGFolder.py Tue Feb 26 20:39:34 2013 +0100 @@ -8,15 +8,17 @@ class MPIWGFolder(Folder): """special Folder object for MPIWG website """ - meta_type="MPIWGFolder" + meta_type = "MPIWGFolder" - manage_options=Folder.manage_options+( - {'label':'Change Weight','action':'changeWeightForm'}, - {'label':'Main Config','action':'changeForm'}, + manage_options = Folder.manage_options + ( + {'label':'Change Weight', 'action':'changeWeightForm'}, + {'label':'Rearrange Weights', 'action':'changeWeightsForm'}, + {'label':'Configure', 'action':'changeForm'}, ) changeWeightForm = PageTemplateFile('zpt/MPIWGFolderChangeWeight', globals()) changeForm = PageTemplateFile('zpt/MPIWGFolderConfig', globals()) + changeWeightsForm = PageTemplateFile('zpt/folder/manage_change_weights', globals()) def __init__(self, id, title=None, weight=0, canonicalName=None): self.id = str(id) @@ -31,16 +33,35 @@ else: self.canonicalName = canonicalName - def changeWeight(self,weight,RESPONSE=None): + def getNavItems(self): + """returns sorted list of sub-items""" + # get all nav-type items + items = self.objectItems(self.nav_meta_types) + # unpack into simple list and omit empty titles + items = [s[1] for s in items if s[1].title != ""] + # sort by weight + items.sort(key=lambda x:int(x.weight)) + return items + + def changeWeight(self, weight, RESPONSE=None): """change weight""" - self.weight=weight + self.weight = weight if RESPONSE is not None: RESPONSE.redirect('manage_main') - def deleteObject(self,id): - """ delete an object inside the MPIWGFolder """ - if self.hasObject(id): - self._delObject(id) + def changeWeightsInFolder(self, REQUEST=None): + """change all weights of a collection""" + ret = "" + form = REQUEST.form + resources = self.getNavItems() + for resource in resources: + try: + id = resource.getId() + ret += id + " " + form[id] + "\n" + resource.changeWeight(form[id]) + except Exception, e: + ret += "ERROR: %s\n"%e + return ret def changeMPIWGFolder(self, title=None, weight=None, canonicalName=None, RESPONSE=None): """change everything""" @@ -62,13 +83,13 @@ def manage_addMPIWGFolderForm(self): """Form for adding""" - pt=PageTemplateFile('zpt/AddMPIWGFolder', globals()).__of__(self) + pt = PageTemplateFile('zpt/AddMPIWGFolder', globals()).__of__(self) return pt() -def manage_addMPIWGFolder(self, id, title=None,weight=0,RESPONSE=None): +def manage_addMPIWGFolder(self, id, title=None, weight=0, RESPONSE=None): "Add a MPIWG Folder." - newObj=MPIWGFolder(id,title,weight) - self.Destination()._setObject(id,newObj) + newObj = MPIWGFolder(id, title, weight) + self.Destination()._setObject(id, newObj) if RESPONSE is not None: RESPONSE.redirect('manage_main')