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: os.chmod(self.templatePath+"/"+self.aq_parent.getId(),0755)
19: path=self.templatePath+"/"+self.aq_parent.getId()+"/"+filename
20: fh=file(path,"w")
21:
22: fh.write(text)
23: fh.close()
24: os.chmod(path,0664)
25: return path
26:
27: def getPath(self,filename):
28: """get path"""
29: return self.templatePath+"/"+self.aq_parent.getId()+"/"+filename
30:
31: class OSAS_thumbTemplate(ZopePageTemplate):
32: """pageTemplate Objekt"""
33: meta_type="OSAS_thumbTemplate"
34:
35: _default_content_fn = os.path.join(package_home(globals()),
36: 'zpt/OSAS_thumbTemplateDefault.zpt')
37:
38: manage_options=ZopePageTemplate.manage_options+(
39: {'label':'Copy to Filesystem','action':'copyContent'},
40: )
41:
42: def getPath(self):
43: """get path"""
44: return getPath(self,'thumbtemplate.templ')
45:
46: ## def changeECHO_pageTemplateWeightForm(self):
47: ## """change"""
48: ## pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_pageTemplateWeight.zpt').__of__(self)
49: ## return pt()
50:
51: ## def changeECHO_pageTemplateWeight(self,weight,content_type,RESPONSE=None):
52: ## """change"""
53: ## self.weight=weight
54: ## self.content_type=content_type
55:
56: ## if RESPONSE is not None:
57: ## RESPONSE.redirect('manage_main')
58:
59:
60: def copyContent(self):
61: """copycontent to path"""
62:
63: return "copied to:"+copyContent(self,'thumbtemplate.templ')
64:
65:
66: def manage_addOSAS_thumbTemplateForm(self):
67: """Form for adding"""
68: pt=PageTemplateFile('Products/ECHO_content/zpt/AddOSAS_thumbTemplate.zpt').__of__(self)
69: return pt()
70:
71:
72:
73:
74: def manage_addOSAS_thumbTemplate(self, id,title=None, text=None,
75: REQUEST=None, submit=None):
76: "Add a Page Template with optional file content."
77:
78:
79: id = str(id)
80: if REQUEST is None:
81: self._setObject(id, OSAS_thumbTemplate(id, text))
82: ob = getattr(self, id)
83:
84: if title:
85: ob.pt_setTitle(title)
86: return ob
87: else:
88: file = REQUEST.form.get('file')
89: headers = getattr(file, 'headers', None)
90: if headers is None or not file.filename:
91: zpt = OSAS_thumbTemplate(id)
92: else:
93: zpt = OSAS_thumbTemplate(id, file, headers.get('content_type'))
94:
95: self._setObject(id, zpt)
96: ob = getattr(self, id)
97:
98:
99: try:
100: u = self.DestinationURL()
101: except AttributeError:
102: u = REQUEST['URL1']
103:
104: if submit == " Add and Edit ":
105: u = "%s/%s" % (u, quote(id))
106: REQUEST.RESPONSE.redirect(u+'/manage_main')
107: return ''
108:
109: class OSAS_digiLibTemplate(ZopePageTemplate):
110: """pageTemplate Objekt"""
111: meta_type="OSAS_digiLibTemplate"
112:
113: _default_content_fn = os.path.join(package_home(globals()),
114: 'zpt/OSAS_digiLibTemplateDefault.zpt')
115:
116: manage_options=ZopePageTemplate.manage_options+(
117: {'label':'Copy to Filesystem','action':'copyContent'},
118: )
119:
120: def getPath(self):
121: """get path"""
122: return getPath(self,'digilibtemplate.templ')
123:
124: ## def changeECHO_pageTemplateWeightForm(self):
125: ## """change"""
126: ## pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_pageTemplateWeight.zpt').__of__(self)
127: ## return pt()
128:
129: ## def changeECHO_pageTemplateWeight(self,weight,content_type,RESPONSE=None):
130: ## """change"""
131: ## self.weight=weight
132: ## self.content_type=content_type
133:
134: ## if RESPONSE is not None:
135: ## RESPONSE.redirect('manage_main')
136:
137:
138: def copyContent(self):
139: """copycontent to path"""
140:
141: return "copied to:"+copyContent(self,'digilibtemplate.templ')
142:
143:
144: def manage_addOSAS_digiLibTemplateForm(self):
145: """Form for adding"""
146: pt=PageTemplateFile('Products/ECHO_content/zpt/AddOSAS_digiLibTemplate.zpt').__of__(self)
147: return pt()
148:
149:
150:
151:
152: def manage_addOSAS_digiLibTemplate(self, id,title=None, text=None,
153: REQUEST=None, submit=None):
154: "Add a Page Template with optional file content."
155:
156:
157: id = str(id)
158: if REQUEST is None:
159: self._setObject(id, OSAS_digiLibTemplate(id, text))
160: ob = getattr(self, id)
161:
162: if title:
163: ob.pt_setTitle(title)
164: return ob
165: else:
166: file = REQUEST.form.get('file')
167: headers = getattr(file, 'headers', None)
168: if headers is None or not file.filename:
169: zpt = OSAS_digiLibTemplate(id)
170: else:
171: zpt = OSAS_digiLibTemplate(id, file, headers.get('content_type'))
172:
173: self._setObject(id, zpt)
174: ob = getattr(self, id)
175:
176:
177: try:
178: u = self.DestinationURL()
179: except AttributeError:
180: u = REQUEST['URL1']
181:
182: if submit == " Add and Edit ":
183: u = "%s/%s" % (u, quote(id))
184: REQUEST.RESPONSE.redirect(u+'/manage_main')
185: return ''
186:
187: class OSAS_topTemplate(ZopePageTemplate):
188: """pageTemplate Objekt"""
189: meta_type="OSAS_topTemplate"
190:
191: _default_content_fn = os.path.join(package_home(globals()),
192: 'zpt/OSAS_topTemplateDefault.zpt')
193: manage_options=ZopePageTemplate.manage_options+(
194: {'label':'Copy to Filesystem','action':'copyContent'},
195: )
196:
197: def getPath(self):
198: """get path"""
199: return getPath(self,'toptemplate.templ')
200:
201: ## def changeECHO_pageTemplateWeightForm(self):
202: ## """change"""
203: ## pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_pageTemplateWeight.zpt').__of__(self)
204: ## return pt()
205:
206: ## def changeECHO_pageTemplateWeight(self,weight,content_type,RESPONSE=None):
207: ## """change"""
208: ## self.weight=weight
209: ## self.content_type=content_type
210:
211: ## if RESPONSE is not None:
212: ## RESPONSE.redirect('manage_main')
213:
214: def copyContent(self):
215: """copycontent to path"""
216: return "copied to:"+copyContent(self,'toptemplate.templ')
217:
218:
219: def manage_addOSAS_topTemplateForm(self):
220: """Form for adding"""
221: pt=PageTemplateFile('Products/ECHO_content/zpt/AddOSAS_topTemplate.zpt').__of__(self)
222: return pt()
223:
224:
225:
226:
227: def manage_addOSAS_topTemplate(self, id,title=None, text=None,
228: REQUEST=None, submit=None):
229: "Add a Page Template with optional file content."
230:
231:
232: id = str(id)
233: if REQUEST is None:
234: self._setObject(id, OSAS_topTemplate(id, text))
235: ob = getattr(self, id)
236:
237: if title:
238: ob.pt_setTitle(title)
239: return ob
240: else:
241: file = REQUEST.form.get('file')
242: headers = getattr(file, 'headers', None)
243: if headers is None or not file.filename:
244: zpt = OSAS_topTemplate(id)
245: else:
246: zpt = OSAS_topTemplate(id, file, headers.get('content_type'))
247:
248: self._setObject(id, zpt)
249: ob = getattr(self, id)
250:
251:
252: try:
253: u = self.DestinationURL()
254: except AttributeError:
255: u = REQUEST['URL1']
256:
257: if submit == " Add and Edit ":
258: u = "%s/%s" % (u, quote(id))
259: REQUEST.RESPONSE.redirect(u+'/manage_main')
260: return ''
261:
262:
263: class OSAS_project(Folder):
264: """Main project"""
265:
266: meta_type="OSAS_project"
267:
268: def __init__(self,id, title, startpage, xsl, templatePath):
269: """init"""
270: self.id=id
271: self.title=title
272: self.startpage=startpage
273: self.xsl=xsl
274: self.templatePath=templatePath
275: self._setObject('digiLibTemplate',OSAS_digiLibTemplate(id='digiLibTemplate'))
276: self._setObject('thumbTemplate',OSAS_thumbTemplate(id='thumbTemplate'))
277: self._setObject('topTemplate',OSAS_topTemplate(id='topTemplate'))
278:
279:
280: manage_options = Folder.manage_options+(
281: {'label':'Main Config','action':'configOSAS_projectForm'},
282: {'label':'Copy all Files','action':'copyAllFiles'},
283: )
284:
285: def copyAllFiles(self):
286: """copy all"""
287: fis=self.ZopeFind(self)
288: ret=""
289: for fi in fis:
290: if hasattr(fi[1],'copyContent'):
291: ret=ret+fi[1].copyContent()+"</br>"
292: return ret
293:
294: def getField(self,name):
295: """get Field"""
296: try:
297: return(getattr(self,name))
298: except:
299: return ""
300: def configOSAS_projectForm(self):
301: """config"""
302: pt=PageTemplateFile('Products/OSA_system/zpt/changeOSAS_project.zpt').__of__(self)
303: return pt()
304:
305: def configOSAS_project(self,title, startpage, xsl, templatePath,RESPONSE=None):
306: """config"""
307: self.title=title
308: self.startpage=startpage
309: self.xsl=xsl
310: self.templatePath=templatePath
311:
312:
313:
314: if RESPONSE is not None:
315: RESPONSE.redirect('manage_main')
316:
317:
318:
319:
320:
321: def manage_addOSAS_projectForm(self):
322: """interface for adding the OSAS_root"""
323: pt=PageTemplateFile('Products/OSA_system/zpt/addOSAS_project.zpt').__of__(self)
324: return pt()
325:
326: def manage_addOSAS_project(self,id,title, startpage, xsl,templatePath,RESPONSE=None):
327: """add the OSAS_root"""
328: newObj=OSAS_project(id,title, startpage, xsl,templatePath)
329: self._setObject(id,newObj)
330: if RESPONSE is not None:
331: RESPONSE.redirect('manage_main')
332:
333:
334:
335:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>