1: """ Begin March,17 2004, Class OSAS_project contains all layout information for the viewenvironment"""
2:
3: from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
4: from Acquisition import Implicit
5: from OFS.Folder import Folder
6: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
7: from urllib import quote
8: from Products.PageTemplates.PageTemplate import PageTemplate
9: import os
10: from Globals import package_home
11:
12:
13: def copyContent(self,filename):
14: """copycontent to path"""
15: text= self.document_src()
16: if not os.path.exists(self.templatePath+"/"+self.aq_parent.getId()):
17: os.mkdir(self.templatePath+"/"+self.aq_parent.getId())
18: path=self.templatePath+"/"+self.aq_parent.getId()+"/"+filename
19: fh=file(path,"w")
20:
21: fh.write(text)
22: fh.close()
23: os.chmod(path,0664)
24: return path
25:
26: def getPath(self,filename):
27: """get path"""
28: return self.templatePath+"/"+self.aq_parent.getId()+"/"+filename
29:
30: class OSAS_thumbTemplate(ZopePageTemplate):
31: """pageTemplate Objekt"""
32: meta_type="OSAS_thumbTemplate"
33:
34: _default_content_fn = os.path.join(package_home(globals()),
35: 'zpt/OSAS_thumbTemplateDefault.zpt')
36:
37: manage_options=ZopePageTemplate.manage_options+(
38: {'label':'Copy to Filesystem','action':'copyContent'},
39: )
40:
41: def getPath(self):
42: """get path"""
43: return getPath(self,'thumbtemplate.templ')
44:
45: ## def changeECHO_pageTemplateWeightForm(self):
46: ## """change"""
47: ## pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_pageTemplateWeight.zpt').__of__(self)
48: ## return pt()
49:
50: ## def changeECHO_pageTemplateWeight(self,weight,content_type,RESPONSE=None):
51: ## """change"""
52: ## self.weight=weight
53: ## self.content_type=content_type
54:
55: ## if RESPONSE is not None:
56: ## RESPONSE.redirect('manage_main')
57:
58:
59: def copyContent(self):
60: """copycontent to path"""
61:
62: return "copied to:"+copyContent(self,'thumbtemplate.templ')
63:
64:
65: def manage_addOSAS_thumbTemplateForm(self):
66: """Form for adding"""
67: pt=PageTemplateFile('Products/ECHO_content/zpt/AddOSAS_thumbTemplate.zpt').__of__(self)
68: return pt()
69:
70:
71:
72:
73: def manage_addOSAS_thumbTemplate(self, id,title=None, text=None,
74: REQUEST=None, submit=None):
75: "Add a Page Template with optional file content."
76:
77:
78: id = str(id)
79: if REQUEST is None:
80: self._setObject(id, OSAS_thumbTemplate(id, text))
81: ob = getattr(self, id)
82:
83: if title:
84: ob.pt_setTitle(title)
85: return ob
86: else:
87: file = REQUEST.form.get('file')
88: headers = getattr(file, 'headers', None)
89: if headers is None or not file.filename:
90: zpt = OSAS_thumbTemplate(id)
91: else:
92: zpt = OSAS_thumbTemplate(id, file, headers.get('content_type'))
93:
94: self._setObject(id, zpt)
95: ob = getattr(self, id)
96:
97:
98: try:
99: u = self.DestinationURL()
100: except AttributeError:
101: u = REQUEST['URL1']
102:
103: if submit == " Add and Edit ":
104: u = "%s/%s" % (u, quote(id))
105: REQUEST.RESPONSE.redirect(u+'/manage_main')
106: return ''
107:
108: class OSAS_topTemplate(ZopePageTemplate):
109: """pageTemplate Objekt"""
110: meta_type="OSAS_topTemplate"
111:
112: _default_content_fn = os.path.join(package_home(globals()),
113: 'zpt/OSAS_topTemplateDefault.zpt')
114: manage_options=ZopePageTemplate.manage_options+(
115: {'label':'Copy to Filesystem','action':'copyContent'},
116: )
117:
118: def getPath(self):
119: """get path"""
120: return getPath(self,'toptemplate.templ')
121:
122: ## def changeECHO_pageTemplateWeightForm(self):
123: ## """change"""
124: ## pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_pageTemplateWeight.zpt').__of__(self)
125: ## return pt()
126:
127: ## def changeECHO_pageTemplateWeight(self,weight,content_type,RESPONSE=None):
128: ## """change"""
129: ## self.weight=weight
130: ## self.content_type=content_type
131:
132: ## if RESPONSE is not None:
133: ## RESPONSE.redirect('manage_main')
134:
135: def copyContent(self):
136: """copycontent to path"""
137: return "copied to:"+copyContent(self,'toptemplate.templ')
138:
139:
140: def manage_addOSAS_topTemplateForm(self):
141: """Form for adding"""
142: pt=PageTemplateFile('Products/ECHO_content/zpt/AddOSAS_topTemplate.zpt').__of__(self)
143: return pt()
144:
145:
146:
147:
148: def manage_addOSAS_topTemplate(self, id,title=None, text=None,
149: REQUEST=None, submit=None):
150: "Add a Page Template with optional file content."
151:
152:
153: id = str(id)
154: if REQUEST is None:
155: self._setObject(id, OSAS_topTemplate(id, text))
156: ob = getattr(self, id)
157:
158: if title:
159: ob.pt_setTitle(title)
160: return ob
161: else:
162: file = REQUEST.form.get('file')
163: headers = getattr(file, 'headers', None)
164: if headers is None or not file.filename:
165: zpt = OSAS_topTemplate(id)
166: else:
167: zpt = OSAS_topTemplate(id, file, headers.get('content_type'))
168:
169: self._setObject(id, zpt)
170: ob = getattr(self, id)
171:
172:
173: try:
174: u = self.DestinationURL()
175: except AttributeError:
176: u = REQUEST['URL1']
177:
178: if submit == " Add and Edit ":
179: u = "%s/%s" % (u, quote(id))
180: REQUEST.RESPONSE.redirect(u+'/manage_main')
181: return ''
182:
183:
184: class OSAS_project(Folder):
185: """Main project"""
186:
187: meta_type="OSAS_project"
188:
189: def __init__(self,id, title, startpage, xsl, templatePath):
190: """init"""
191: self.id=id
192: self.title=title
193: self.startpage=startpage
194: self.xsl=xsl
195: self.templatePath=templatePath
196: self._setObject('thumbTemplate',OSAS_thumbTemplate(id='thumbTemplate'))
197: self._setObject('topTemplate',OSAS_topTemplate(id='topTemplate'))
198:
199:
200: manage_options = Folder.manage_options+(
201: {'label':'Main Config','action':'configOSAS_projectForm'},
202: {'label':'Copy all Files','action':'copyAllFiles'},
203: )
204:
205: def copyAllFiles(self):
206: """copy all"""
207: fis=self.ZopeFind(self)
208: ret=""
209: for fi in fis:
210: if hasattr(fi[1],'copyContent'):
211: ret=ret+fi[1].copyContent()+"</br>"
212: return ret
213:
214: def configOSAS_projectForm(self):
215: """config"""
216: pt=PageTemplateFile('Products/OSA_system/zpt/changeOSAS_project.zpt').__of__(self)
217: return pt()
218:
219: def configOSAS_project(self,title, startpage, xsl, templatePath,RESPONSE=None):
220: """config"""
221: self.title=title
222: self.startpage=startpage
223: self.xsl=xsl
224: self.templatePath=templatePath
225: if RESPONSE is not None:
226: RESPONSE.redirect('manage_main')
227:
228:
229:
230:
231:
232: def manage_addOSAS_projectForm(self):
233: """interface for adding the OSAS_root"""
234: pt=PageTemplateFile('Products/OSA_system/zpt/addOSAS_project.zpt').__of__(self)
235: return pt()
236:
237: def manage_addOSAS_project(self,id,title, startpage, xsl,templatePath,RESPONSE=None):
238: """add the OSAS_root"""
239: newObj=OSAS_project(id,title, startpage, xsl,templatePath)
240: self._setObject(id,newObj)
241: if RESPONSE is not None:
242: RESPONSE.redirect('manage_main')
243:
244:
245:
246:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>