File:  [Repository] / MPIWGWeb / Attic / MPIWGTemplate.py
Revision 1.1.2.13: download - view: text, annotated - select for diffs - revision graph
Fri Jan 13 10:01:28 2012 UTC (12 years, 5 months ago) by dwinter
Branches: r2
update ohne 4suite

    1: from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
    2: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
    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: from ZODB import FileStorage, DB
   12: import transaction
   13: 
   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: 
   25: 
   26: 
   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:         
   48:     def __init__(self, id, text=None, content_type="text/html",MPIWGType=None):
   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 ""
   64:     
   65:     getBreadcrumbs = getBreadcrumbs
   66:     getSection = getSection
   67:     getSubSection = getSubSection
   68:     
   69:     def harvest_page(self,mode="normal"):
   70:         """harvest main"""
   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)()
   79:         try:
   80:            
   81:             rendered = self.pt_render()
   82:             templates[self.absolute_url()]=rendered
   83:             logging.debug("harvest:"+self.absolute_url())
   84:             transaction.commit()
   85:             return rendered
   86:         except:
   87:             logging.error("cannot harvest: %s"%self.absolute_url())
   88:         
   89:         
   90:        
   91:         
   92:         
   93:                      
   94: def manage_addMPIWGTemplateForm(self):
   95:     """Form for adding"""
   96:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/AddMPIWGTemplate.zpt')).__of__(self)
   97:     return pt()
   98: 
   99: 
  100: 
  101: def manage_addMPIWGTemplate(self, MPIWGType,id, text="",title=None,weight=0,REQUEST=None):
  102:     "Add a Page Template with optional file content."
  103:     if type(MPIWGType)==StringType:
  104:         MPIWGTypes=[MPIWGType]
  105:     else:
  106:         MPIWGTypes=MPIWGType
  107:         
  108:     for singleType in MPIWGTypes:
  109: 
  110: 
  111:         if REQUEST is None:
  112:             self._setObject(id, MPIWGTemplate(id, text,EchoType=singleType))
  113:             ob = getattr(self, id)
  114:             
  115:             if title:
  116:                 ob.pt_setTitle(title)
  117:             return ob
  118:         else:
  119:             file = REQUEST.form.get('file')
  120:             headers = getattr(file, 'headers', None)
  121:             if headers is None or not file.filename:
  122:                 zpt = MPIWGTemplate(id,MPIWGType=singleType)
  123:             else:
  124:                 zpt = MPIWGTemplate(id, file, headers.get('content_type'))
  125: 
  126:             self._setObject(id, zpt)
  127:             ob = getattr(self, id)
  128:             if title:
  129:                 ob.pt_setTitle(title)
  130: 
  131:             try:
  132:                 u = self.DestinationURL()
  133:             except AttributeError:
  134:                 u = REQUEST['URL1']
  135: 
  136:     ob = getattr(self, id)
  137:     ob.weight=weight
  138:     
  139:     REQUEST.RESPONSE.redirect(u+'/manage_main')
  140:     return ''
  141:     

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