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>