Annotation of MPIWGWeb/MPIWGTemplate.py, revision 1.1.2.9

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

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