Mercurial > hg > MPIWGWeb
view MPIWGFolder.py @ 161:2b5adc7f5445
english and german footer
author | casties |
---|---|
date | Thu, 06 Jun 2013 19:11:45 +0200 |
parents | ee79f6ba8d01 |
children |
line wrap: on
line source
from Products.PageTemplates.PageTemplateFile import PageTemplateFile import logging from OFS.Folder import Folder import MPIWGHelper class MPIWGFolder(Folder): """special Folder object for MPIWG website """ meta_type = "MPIWGFolder" manage_options = Folder.manage_options + ( {'label':'Change Weight', 'action':'changeWeightForm'}, {'label':'Rearrange Weights', 'action':'changeWeightsForm'}, {'label':'Configure', 'action':'changeForm'}, ) changeWeightForm = PageTemplateFile('zpt/folder/manage_change_weight', globals()) changeForm = PageTemplateFile('zpt/folder/manage_config', globals()) changeWeightsForm = PageTemplateFile('zpt/folder/manage_change_weights', globals()) def __init__(self, id, title=None, weight=0, canonicalName=None): self.id = str(id) self.weight = weight if title is None: self.title = id else: self.title = title if canonicalName is None: self.canonicalName = self.id else: self.canonicalName = canonicalName 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 if RESPONSE is not None: RESPONSE.redirect('manage_main') 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""" if title is not None: self.title = title if weight is not None: self.weight = weight if canonicalName is not None: self.canonicalName = canonicalName if RESPONSE is not None: RESPONSE.redirect('manage_main') getBreadcrumbs = MPIWGHelper.getBreadcrumbs getSection = MPIWGHelper.getSection getSubSection = MPIWGHelper.getSubSection def manage_addMPIWGFolderForm(self): """Form for adding""" pt = PageTemplateFile('zpt/folder/manage_add_MPIWGFolder', globals()).__of__(self) return pt() 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) if RESPONSE is not None: RESPONSE.redirect('manage_main')