Annotation of MPIWGWeb/MPIWGTemplate.py, revision 1.1.2.14

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

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