diff MPIWGFeature.py @ 0:bca61e893fcc

first checkin of MPIWGWeb r2 branch from CVS into mercurial
author casties
date Thu, 10 Jan 2013 17:52:13 +0100
parents
children 1a895905f7ca
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/MPIWGFeature.py	Thu Jan 10 17:52:13 2013 +0100
@@ -0,0 +1,151 @@
+from Products.PageTemplates.PageTemplateFile import PageTemplateFile
+from Globals import package_home
+import string
+import re
+import os
+import logging
+from OFS.Folder import Folder
+from AccessControl import ClassSecurityInfo
+from MPIWGHelper import *
+
+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')
+