Annotation of MPIWGWeb/MPIWGTemplate.py, revision 1.1.2.3

1.1.2.1   dwinter     1: from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
1.1.2.2   dwinter     2: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
1.1.2.1   dwinter     3: from Globals import package_home
                      4: import string
                      5: import re
                      6: import os
                      7: import logging
                      8: from OFS.Folder import Folder
                      9: from AccessControl import ClassSecurityInfo
                     10: from MPIWGHelper import *
                     11: 
1.1.2.3 ! casties    12: 
        !            13: def getBreadcrumbs(self):
        !            14:     """return list of breadcrumbs from here to the root"""
        !            15:     crumbs = [(self.title, self.absolute_url(), self)]
        !            16:     parent = self.aq_parent
        !            17:     if hasattr(parent, 'getBreadcrumbs'):
        !            18:         if self.title:
        !            19:             return parent.getBreadcrumbs() + crumbs
        !            20:         else:
        !            21:             # if there's no title, skip this level
        !            22:             return parent.getBreadcrumbs()
        !            23:         
        !            24:     return crumbs
        !            25: 
        !            26: 
        !            27: def getSection(self):
        !            28:     """returns the current section name"""
        !            29:     p = self
        !            30:     sec = None
        !            31:     # descend parents to the root (and remember the last id)
        !            32:     while p is not None and p.meta_type != 'MPIWGRoot':
        !            33:         sec = p.getId()
        !            34:         p = p.aq_parent
        !            35:     
        !            36:     return sec
        !            37: 
        !            38: 
1.1.2.1   dwinter    39: class MPIWGTemplate(ZopePageTemplate):
                     40:     """Create a layout Template for different purposes"""
                     41: 
                     42:     meta_type="MPIWGTemplate"
                     43: 
                     44:     manage_options=ZopePageTemplate.manage_options+(
                     45:         {'label':'Change Weight','action':'changeWeightForm'},
                     46:         )
                     47: 
                     48:     def changeWeightForm(self):
                     49:         """change weight form"""
                     50:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','MPIWGTemplateChangeWeight.zpt')).__of__(self)
                     51:         return pt()
                     52: 
                     53:     def changeWeight(self,weight,RESPONSE=None):
                     54:         """change weight"""
                     55:         self.weight=weight
                     56:         if RESPONSE is not None:
                     57:             RESPONSE.redirect('manage')
                     58: 
                     59:         
1.1.2.3 ! casties    60:     def __init__(self, id, text=None, content_type="text/html",MPIWGType=None):
1.1.2.1   dwinter    61:         self.id = str(id)
                     62:         self.ZBindings_edit(self._default_bindings)
                     63:         if text is None:
                     64:             self._default_content_fn = os.path.join(package_home(globals()),
                     65:                                                'zpt/MPIWG_%s_template_standard.zpt'%MPIWGType)
                     66:             text = open(self._default_content_fn).read()
                     67:         self.pt_edit(text, content_type)
                     68: 
                     69:     
                     70:     def isActiveItem(self):
                     71:         """teste ob ausgewaehlt"""
                     72:         if self.absolute_url()==self.REQUEST['URL']:
                     73:             return "aktiv"
                     74:         else:
                     75:             return ""
1.1.2.3 ! casties    76:     
        !            77:     getBreadcrumbs = getBreadcrumbs
        !            78:     
        !            79:     getSection = getSection
        !            80: 
1.1.2.1   dwinter    81:         
                     82: def manage_addMPIWGTemplateForm(self):
                     83:     """Form for adding"""
                     84:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGTemplate.zpt')).__of__(self)
                     85:     return pt()
                     86: 
                     87: 
                     88: 
                     89: def manage_addMPIWGTemplate(self, MPIWGType,id, text="",title=None,weight=0,REQUEST=None):
                     90:     "Add a Page Template with optional file content."
                     91:     if type(MPIWGType)==StringType:
                     92:         MPIWGTypes=[MPIWGType]
                     93:     else:
                     94:         MPIWGTypes=MPIWGType
                     95:         
                     96:     for singleType in MPIWGTypes:
                     97: 
                     98: 
                     99:         if REQUEST is None:
                    100:             self._setObject(id, MPIWGTemplate(id, text,EchoType=singleType))
                    101:             ob = getattr(self, id)
                    102:             
                    103:             if title:
                    104:                 ob.pt_setTitle(title)
                    105:             return ob
                    106:         else:
                    107:             file = REQUEST.form.get('file')
                    108:             headers = getattr(file, 'headers', None)
                    109:             if headers is None or not file.filename:
                    110:                 zpt = MPIWGTemplate(id,MPIWGType=singleType)
                    111:             else:
                    112:                 zpt = MPIWGTemplate(id, file, headers.get('content_type'))
                    113: 
                    114:             self._setObject(id, zpt)
                    115:             ob = getattr(self, id)
                    116:             if title:
                    117:                 ob.pt_setTitle(title)
                    118: 
                    119:             try:
                    120:                 u = self.DestinationURL()
                    121:             except AttributeError:
                    122:                 u = REQUEST['URL1']
                    123: 
                    124:     ob = getattr(self, id)
                    125:     ob.weight=weight
                    126:     
                    127:     REQUEST.RESPONSE.redirect(u+'/manage_main')
                    128:     return ''
                    129: 
1.1.2.3 ! casties   130: 
        !           131: 
        !           132: class MPIWGFolder(Folder):
        !           133:     """special Folder object for MPIWG website """
        !           134: 
        !           135:     meta_type="MPIWGFolder"
        !           136: 
        !           137:     manage_options=Folder.manage_options+(
        !           138:         {'label':'Change Weight','action':'changeWeightForm'},
        !           139:         {'label':'Main Config','action':'changeForm'},
        !           140:         )
        !           141: 
        !           142:     changeWeightForm = PageTemplateFile('zpt/MPIWGFolderChangeWeight', globals())
        !           143:     changeForm = PageTemplateFile('zpt/MPIWGFolderConfig', globals())
        !           144: 
        !           145:     def __init__(self, id, title=None, weight=0, canonicalName=None):
        !           146:         self.id = str(id)
        !           147:         self.weight = weight
        !           148:         if title is None:
        !           149:             self.title = id
        !           150:         else:
        !           151:             self.title = title
        !           152:             
        !           153:         if canonicalName is None:
        !           154:             self.canonicalName = self.id
        !           155:         else:
        !           156:             self.canonicalName = canonicalName
        !           157: 
        !           158:     def changeWeight(self,weight,RESPONSE=None):
        !           159:         """change weight"""
        !           160:         self.weight=weight
        !           161:         if RESPONSE is not None:
        !           162:             RESPONSE.redirect('manage_main')
        !           163: 
        !           164:     def changeMPIWGFolder(self, title=None, weight=None, canonicalName=None, RESPONSE=None):
        !           165:         """change everything"""
        !           166:         if title is not None:
        !           167:             self.title = title
        !           168:         if weight is not None:
        !           169:             self.weight = weight
        !           170:         if canonicalName is not None:
        !           171:             self.canonicalName = canonicalName
        !           172:         if RESPONSE is not None:
        !           173:             RESPONSE.redirect('manage_main')
        !           174:        
        !           175:     getBreadcrumbs = getBreadcrumbs
        !           176:     
        !           177:     getSection = getSection
        !           178:     
        !           179: 
        !           180: def manage_addMPIWGFolderForm(self):
        !           181:     """Form for adding"""
        !           182:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGFolder.zpt')).__of__(self)
        !           183:     return pt()
        !           184: 
        !           185: def manage_addMPIWGFolder(self, id, title=None,weight=0,RESPONSE=None):
        !           186:     "Add a MPIWG Folder."
        !           187:     newObj=MPIWGFolder(id,title,weight)
        !           188:     self.Destination()._setObject(id,newObj)
        !           189:     if RESPONSE is not None:
        !           190:         RESPONSE.redirect('manage_main')
        !           191: 
1.1.2.1   dwinter   192:     

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>