comparison MPIWGTemplate.py @ 0:bca61e893fcc

first checkin of MPIWGWeb r2 branch from CVS into mercurial
author casties
date Thu, 10 Jan 2013 17:52:13 +0100
parents
children 2ad8aa9d306c
comparison
equal deleted inserted replaced
-1:000000000000 0:bca61e893fcc
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 rendered = self.pt_render()
81 templates[self.absolute_url()]=rendered
82 logging.debug("harvest:"+self.absolute_url())
83 transaction.commit()
84 return rendered
85 except:
86 logging.error("cannot harvest: %s"%self.absolute_url())
87
88
89
90
91
92
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 ''
140