Mercurial > hg > MPIWGWeb
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 |