|
|
| version 1.1.2.7, 2008/09/08 08:40:05 | version 1.1.2.12, 2012/01/09 13:14:46 |
|---|---|
| Line 8 import logging | Line 8 import logging |
| from OFS.Folder import Folder | from OFS.Folder import Folder |
| from AccessControl import ClassSecurityInfo | from AccessControl import ClassSecurityInfo |
| from MPIWGHelper import * | from MPIWGHelper import * |
| from ZODB import FileStorage, DB | |
| import transaction | |
| # dummy definitions for backwards compatibility | |
| import MPIWGFeature | |
| def getBreadcrumbs(self): | class MPIWGFeature(MPIWGFeature.MPIWGFeature): |
| """return list of breadcrumbs from here to the root""" | """deprecated! use class in MPIWGFeature.py""" |
| crumbs = [(self.title, self.absolute_url(), self)] | |
| parent = self.aq_parent | |
| if hasattr(parent, 'getBreadcrumbs'): | |
| if self.title: | |
| return parent.getBreadcrumbs() + crumbs | |
| else: | |
| # if there's no title, skip this level | |
| return parent.getBreadcrumbs() | |
| return crumbs | |
| import MPIWGFolder | |
| def getSection(self): | class MPIWGFolder(MPIWGFolder.MPIWGFolder): |
| """returns the current section name""" | """deprecated! use class in MPIWGFolder.py""" |
| p = self | |
| sec = None | |
| # descend parents to the root (and remember the last id) | |
| while p is not None and p.meta_type != 'MPIWGRoot': | |
| sec = p.getId() | |
| p = p.aq_parent | |
| return sec | |
| def getSubSection(self): | |
| """returns the current subsection name""" | |
| p = self | |
| sec = None | |
| subsec = None | |
| # descend parents to the root (and remember the last id) | |
| while p is not None and p.meta_type != 'MPIWGRoot': | |
| subsec = sec | |
| sec = p.getId() | |
| p = p.aq_parent | |
| return subsec | |
| class MPIWGTemplate(ZopePageTemplate): | class MPIWGTemplate(ZopePageTemplate): |
| Line 91 class MPIWGTemplate(ZopePageTemplate): | Line 66 class MPIWGTemplate(ZopePageTemplate): |
| getSection = getSection | getSection = getSection |
| getSubSection = getSubSection | getSubSection = getSubSection |
| def harvest_page(self): | def harvest_page(self,mode="normal"): |
| """harvest main""" | """harvest main""" |
| # Ensure that a 'userdb' key is present | |
| # in the root | |
| templates = self.en.getHarvestCache() | |
| #templates = getattr(self,'getHarvestCache',self.en.getHarvestCache)() | |
| try: | try: |
| return self.pt_render() | rendered = self.pt_render() |
| templates[self.absolute_url()]=rendered | |
| logging.debug("harvest:"+self.absolute_url()) | |
| transaction.commit() | |
| return rendered | |
| except: | except: |
| logging.error("cannot harvest: %s"%self.absolute_url()) | logging.error("cannot harvest: %s"%self.absolute_url()) |
| def manage_addMPIWGTemplateForm(self): | def manage_addMPIWGTemplateForm(self): |
| """Form for adding""" | """Form for adding""" |
| pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGTemplate.zpt')).__of__(self) | pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGTemplate.zpt')).__of__(self) |
| Line 148 def manage_addMPIWGTemplate(self, MPIWGT | Line 138 def manage_addMPIWGTemplate(self, MPIWGT |
| REQUEST.RESPONSE.redirect(u+'/manage_main') | REQUEST.RESPONSE.redirect(u+'/manage_main') |
| return '' | return '' |
| class MPIWGFolder(Folder): | |
| """special Folder object for MPIWG website """ | |
| meta_type="MPIWGFolder" | |
| manage_options=Folder.manage_options+( | |
| {'label':'Change Weight','action':'changeWeightForm'}, | |
| {'label':'Main Config','action':'changeForm'}, | |
| ) | |
| changeWeightForm = PageTemplateFile('zpt/MPIWGFolderChangeWeight', globals()) | |
| changeForm = PageTemplateFile('zpt/MPIWGFolderConfig', 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 changeWeight(self,weight,RESPONSE=None): | |
| """change weight""" | |
| self.weight=weight | |
| if RESPONSE is not None: | |
| RESPONSE.redirect('manage_main') | |
| 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 = getBreadcrumbs | |
| getSection = getSection | |
| getSubSection = getSubSection | |
| def manage_addMPIWGFolderForm(self): | |
| """Form for adding""" | |
| pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGFolder.zpt')).__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') | |
| class MPIWGFeature(Folder): | |
| """special object for feature texts on the MPIWG website """ | |
| meta_type="MPIWGFeature" | |
| manage_options=Folder.manage_options+( | |
| {'label':'Change Weight','action':'changeWeightForm'}, | |
| {'label':'Main Config','action':'changeForm'}, | |
| ) | |
| changeWeightForm = PageTemplateFile('zpt/MPIWGFeatureChangeWeight', globals()) | |
| changeForm = PageTemplateFile('zpt/MPIWGFeatureConfig', globals()) | |
| def __init__(self, id, title=None, weight=0): | |
| self.id = str(id) | |
| self.weight = weight | |
| if title is None: | |
| self.title = id | |
| else: | |
| self.title = title | |
| # add language folder and sample templates | |
| self.manage_addFolder('en') | |
| folder = getattr(self, 'en') | |
| introid = 'intro.pt' | |
| folder._setObject(introid, ZopePageTemplate(introid)) | |
| intro = getattr(folder,introid) | |
| intro.pt_edit(open(os.path.join(package_home(globals()),'zpt/MPIWGFeature_template_intro.zpt')).read(),'text/html') | |
| mainid = 'main.pt' | |
| folder._setObject(mainid, ZopePageTemplate(mainid)) | |
| main = getattr(folder,mainid) | |
| main.pt_edit(open(os.path.join(package_home(globals()),'zpt/MPIWGFeature_template_main.zpt')).read(),'text/html') | |
| def index_html(self): | |
| """default index page""" | |
| return self.getMain() | |
| def getFullTitle(self): | |
| """returns the full title (from main.pt)""" | |
| # get Language from MPIWGRoot | |
| lang = self.getLang() | |
| dir = getattr(self, lang, self.en) | |
| pt = getattr(dir, 'main.pt') | |
| t = pt.title | |
| if not t: | |
| t = self.title | |
| return t | |
| def getIntro(self, **args): | |
| """returns the intro as PageTemplate""" | |
| # get Language from MPIWGRoot | |
| lang = self.getLang() | |
| dir = getattr(self, lang, self.en) | |
| pt = getattr(dir, 'intro.pt') | |
| return pt(**args) | |
| def getMain(self, **args): | |
| """returns the main part as PageTemplate""" | |
| # get Language from MPIWGRoot | |
| lang = self.getLang() | |
| dir = getattr(self, lang, self.en) | |
| pt = getattr(dir, 'main.pt') | |
| return pt(**args) | |
| def getFrontpageImg(self): | |
| """returns the image object for the frontpage""" | |
| img = getattr(self, 'img-frontpage.jpg') | |
| return img | |
| def getFrontpageImgUrl(self): | |
| """returns the URL of the image object for the frontpage""" | |
| img = getattr(self, 'img-frontpage.jpg') | |
| return img.absolute_url() | |
| def getFrontpageThumb(self): | |
| """returns the image object for the frontpage thumbnail""" | |
| img = getattr(self, 'img-frontthumb.jpg') | |
| return img | |
| def getFrontpageThumbUrl(self): | |
| """returns the URL of the image object for the frontpage thumbnail""" | |
| img = getattr(self, 'img-frontthumb.jpg') | |
| return img.absolute_url() | |
| def getThumbImg(self): | |
| """returns the image object for the sidebar thumbnail""" | |
| img = getattr(self, 'img-thumb.jpg') | |
| return img | |
| def getThumbImgUrl(self): | |
| """returns the URL of the image object for the sidebar thumbnail""" | |
| img = getattr(self, 'img-thumb.jpg') | |
| return img.absolute_url() | |
| def changeWeight(self,weight,RESPONSE=None): | |
| """change weight""" | |
| self.weight=weight | |
| if RESPONSE is not None: | |
| RESPONSE.redirect('manage_main') | |
| def changeMPIWGFeature(self, title=None, weight=None, RESPONSE=None): | |
| """change everything""" | |
| if title is not None: | |
| self.title = title | |
| if weight is not None: | |
| self.weight = weight | |
| if RESPONSE is not None: | |
| RESPONSE.redirect('manage_main') | |
| def getBreadcrumbs(self): | |
| """return list of breadcrumbs from here to the root""" | |
| crumbs = [(self.getFullTitle(), self.absolute_url(), self)] | |
| parent = self.aq_parent | |
| if hasattr(parent, 'getBreadcrumbs'): | |
| if self.title: | |
| return parent.getBreadcrumbs() + crumbs | |
| else: | |
| # if there's no title, skip this level | |
| return parent.getBreadcrumbs() | |
| return crumbs | |
| getSection = getSection | |
| getSubSection = getSubSection | |
| def manage_addMPIWGFeatureForm(self): | |
| """Form for adding""" | |
| pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGFeature.zpt')).__of__(self) | |
| return pt() | |
| def manage_addMPIWGFeature(self, id, title=None,weight=0,RESPONSE=None): | |
| "Add a MPIWG Feature object" | |
| newObj=MPIWGFeature(id,title,weight) | |
| self.Destination()._setObject(id,newObj) | |
| if RESPONSE is not None: | |
| RESPONSE.redirect('manage_main') | |