Annotation of OSAS/OSA_system/OSAS_project.py, revision 1.2
1.1 dwinter 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())
1.2 ! dwinter 18: os.chmod(self.templatePath+"/"+self.aq_parent.getId(),0755)
1.1 dwinter 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_topTemplate(ZopePageTemplate):
110: """pageTemplate Objekt"""
111: meta_type="OSAS_topTemplate"
112:
113: _default_content_fn = os.path.join(package_home(globals()),
114: 'zpt/OSAS_topTemplateDefault.zpt')
115: manage_options=ZopePageTemplate.manage_options+(
116: {'label':'Copy to Filesystem','action':'copyContent'},
117: )
118:
119: def getPath(self):
120: """get path"""
121: return getPath(self,'toptemplate.templ')
122:
123: ## def changeECHO_pageTemplateWeightForm(self):
124: ## """change"""
125: ## pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_pageTemplateWeight.zpt').__of__(self)
126: ## return pt()
127:
128: ## def changeECHO_pageTemplateWeight(self,weight,content_type,RESPONSE=None):
129: ## """change"""
130: ## self.weight=weight
131: ## self.content_type=content_type
132:
133: ## if RESPONSE is not None:
134: ## RESPONSE.redirect('manage_main')
135:
136: def copyContent(self):
137: """copycontent to path"""
138: return "copied to:"+copyContent(self,'toptemplate.templ')
139:
140:
141: def manage_addOSAS_topTemplateForm(self):
142: """Form for adding"""
143: pt=PageTemplateFile('Products/ECHO_content/zpt/AddOSAS_topTemplate.zpt').__of__(self)
144: return pt()
145:
146:
147:
148:
149: def manage_addOSAS_topTemplate(self, id,title=None, text=None,
150: REQUEST=None, submit=None):
151: "Add a Page Template with optional file content."
152:
153:
154: id = str(id)
155: if REQUEST is None:
156: self._setObject(id, OSAS_topTemplate(id, text))
157: ob = getattr(self, id)
158:
159: if title:
160: ob.pt_setTitle(title)
161: return ob
162: else:
163: file = REQUEST.form.get('file')
164: headers = getattr(file, 'headers', None)
165: if headers is None or not file.filename:
166: zpt = OSAS_topTemplate(id)
167: else:
168: zpt = OSAS_topTemplate(id, file, headers.get('content_type'))
169:
170: self._setObject(id, zpt)
171: ob = getattr(self, id)
172:
173:
174: try:
175: u = self.DestinationURL()
176: except AttributeError:
177: u = REQUEST['URL1']
178:
179: if submit == " Add and Edit ":
180: u = "%s/%s" % (u, quote(id))
181: REQUEST.RESPONSE.redirect(u+'/manage_main')
182: return ''
183:
184:
185: class OSAS_project(Folder):
186: """Main project"""
187:
188: meta_type="OSAS_project"
189:
190: def __init__(self,id, title, startpage, xsl, templatePath):
191: """init"""
192: self.id=id
193: self.title=title
194: self.startpage=startpage
195: self.xsl=xsl
196: self.templatePath=templatePath
197: self._setObject('thumbTemplate',OSAS_thumbTemplate(id='thumbTemplate'))
198: self._setObject('topTemplate',OSAS_topTemplate(id='topTemplate'))
199:
200:
201: manage_options = Folder.manage_options+(
202: {'label':'Main Config','action':'configOSAS_projectForm'},
203: {'label':'Copy all Files','action':'copyAllFiles'},
204: )
205:
206: def copyAllFiles(self):
207: """copy all"""
208: fis=self.ZopeFind(self)
209: ret=""
210: for fi in fis:
211: if hasattr(fi[1],'copyContent'):
212: ret=ret+fi[1].copyContent()+"</br>"
213: return ret
214:
215: def configOSAS_projectForm(self):
216: """config"""
217: pt=PageTemplateFile('Products/OSA_system/zpt/changeOSAS_project.zpt').__of__(self)
218: return pt()
219:
220: def configOSAS_project(self,title, startpage, xsl, templatePath,RESPONSE=None):
221: """config"""
222: self.title=title
223: self.startpage=startpage
224: self.xsl=xsl
225: self.templatePath=templatePath
226: if RESPONSE is not None:
227: RESPONSE.redirect('manage_main')
228:
229:
230:
231:
232:
233: def manage_addOSAS_projectForm(self):
234: """interface for adding the OSAS_root"""
235: pt=PageTemplateFile('Products/OSA_system/zpt/addOSAS_project.zpt').__of__(self)
236: return pt()
237:
238: def manage_addOSAS_project(self,id,title, startpage, xsl,templatePath,RESPONSE=None):
239: """add the OSAS_root"""
240: newObj=OSAS_project(id,title, startpage, xsl,templatePath)
241: self._setObject(id,newObj)
242: if RESPONSE is not None:
243: RESPONSE.redirect('manage_main')
244:
245:
246:
247:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>