Annotation of MPIWGWeb/MPIWGTemplate.py, revision 1.1.2.11

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 *
1.1.2.11! dwinter    11: from ZODB import FileStorage, DB
1.1.2.1   dwinter    12: 
1.1.2.9   casties    13: # dummy definitions for backwards compatibility
                     14: import MPIWGFeature
                     15: 
                     16: class MPIWGFeature(MPIWGFeature.MPIWGFeature):
                     17:     """deprecated! use class in MPIWGFeature.py"""
                     18: 
                     19: import MPIWGFolder
                     20: 
                     21: class MPIWGFolder(MPIWGFolder.MPIWGFolder):
                     22:     """deprecated! use class in MPIWGFolder.py"""
                     23: 
1.1.2.3   casties    24: 
                     25: 
1.1.2.1   dwinter    26: class MPIWGTemplate(ZopePageTemplate):
                     27:     """Create a layout Template for different purposes"""
                     28: 
                     29:     meta_type="MPIWGTemplate"
                     30: 
                     31:     manage_options=ZopePageTemplate.manage_options+(
                     32:         {'label':'Change Weight','action':'changeWeightForm'},
                     33:         )
                     34: 
                     35:     def changeWeightForm(self):
                     36:         """change weight form"""
                     37:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','MPIWGTemplateChangeWeight.zpt')).__of__(self)
                     38:         return pt()
                     39: 
                     40:     def changeWeight(self,weight,RESPONSE=None):
                     41:         """change weight"""
                     42:         self.weight=weight
                     43:         if RESPONSE is not None:
                     44:             RESPONSE.redirect('manage')
                     45: 
                     46:         
1.1.2.3   casties    47:     def __init__(self, id, text=None, content_type="text/html",MPIWGType=None):
1.1.2.1   dwinter    48:         self.id = str(id)
                     49:         self.ZBindings_edit(self._default_bindings)
                     50:         if text is None:
                     51:             self._default_content_fn = os.path.join(package_home(globals()),
                     52:                                                'zpt/MPIWG_%s_template_standard.zpt'%MPIWGType)
                     53:             text = open(self._default_content_fn).read()
                     54:         self.pt_edit(text, content_type)
                     55: 
                     56:     
                     57:     def isActiveItem(self):
                     58:         """teste ob ausgewaehlt"""
                     59:         if self.absolute_url()==self.REQUEST['URL']:
                     60:             return "aktiv"
                     61:         else:
                     62:             return ""
1.1.2.3   casties    63:     
                     64:     getBreadcrumbs = getBreadcrumbs
                     65:     getSection = getSection
1.1.2.7   casties    66:     getSubSection = getSubSection
                     67:     
1.1.2.10  dwinter    68:     def harvest_page(self,mode="normal"):
1.1.2.4   dwinter    69:         """harvest main"""
1.1.2.11! dwinter    70:         
        !            71:        
        !            72: 
        !            73:         # Ensure that a 'userdb' key is present
        !            74:         # in the root
        !            75:        
        !            76:         templates = self.en.getHarvestCache()
        !            77:         #templates = getattr(self,'getHarvestCache',self.en.getHarvestCache)()
1.1.2.4   dwinter    78:         try:
1.1.2.11! dwinter    79:             rendered = self.pt_render()
        !            80:             templates[self.absolute_url()]=rendered
        !            81:             logging.debug("harvest:"+self.absolute_url())
        !            82:             return rendered
1.1.2.4   dwinter    83:         except:
                     84:             logging.error("cannot harvest: %s"%self.absolute_url())
1.1.2.1   dwinter    85:         
1.1.2.4   dwinter    86:         
1.1.2.11! dwinter    87:        
        !            88:         
        !            89:         
1.1.2.4   dwinter    90:                      
1.1.2.1   dwinter    91: def manage_addMPIWGTemplateForm(self):
                     92:     """Form for adding"""
                     93:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGTemplate.zpt')).__of__(self)
                     94:     return pt()
                     95: 
                     96: 
                     97: 
                     98: def manage_addMPIWGTemplate(self, MPIWGType,id, text="",title=None,weight=0,REQUEST=None):
                     99:     "Add a Page Template with optional file content."
                    100:     if type(MPIWGType)==StringType:
                    101:         MPIWGTypes=[MPIWGType]
                    102:     else:
                    103:         MPIWGTypes=MPIWGType
                    104:         
                    105:     for singleType in MPIWGTypes:
                    106: 
                    107: 
                    108:         if REQUEST is None:
                    109:             self._setObject(id, MPIWGTemplate(id, text,EchoType=singleType))
                    110:             ob = getattr(self, id)
                    111:             
                    112:             if title:
                    113:                 ob.pt_setTitle(title)
                    114:             return ob
                    115:         else:
                    116:             file = REQUEST.form.get('file')
                    117:             headers = getattr(file, 'headers', None)
                    118:             if headers is None or not file.filename:
                    119:                 zpt = MPIWGTemplate(id,MPIWGType=singleType)
                    120:             else:
                    121:                 zpt = MPIWGTemplate(id, file, headers.get('content_type'))
                    122: 
                    123:             self._setObject(id, zpt)
                    124:             ob = getattr(self, id)
                    125:             if title:
                    126:                 ob.pt_setTitle(title)
                    127: 
                    128:             try:
                    129:                 u = self.DestinationURL()
                    130:             except AttributeError:
                    131:                 u = REQUEST['URL1']
                    132: 
                    133:     ob = getattr(self, id)
                    134:     ob.weight=weight
                    135:     
                    136:     REQUEST.RESPONSE.redirect(u+'/manage_main')
                    137:     return ''
1.1.2.10  dwinter   138:     

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