1: # Methoden und Classen zum Hinzufuegen von Dokumenten
2:
3: import xml.dom.minidom
4: from Products.ECHO_content import ECHO_collection
5: import urllib
6: import OSAS_add
7: import string
8: from OFS.Folder import Folder
9: from AccessControl import ClassSecurityInfo
10: from Globals import InitializeClass
11: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
12: from Products.PageTemplates.PageTemplate import PageTemplate
13:
14: class OSAS_add_Document(Folder):
15: """Hinzufuegen eines Dokumentes zum Storage"""
16: security=ClassSecurityInfo()
17:
18: def __init__(self,id):
19: """initialize a new instance"""
20: self.id = id
21:
22:
23: meta_type='OSAS_add_Document'
24: manage_options = Folder.manage_options+(
25: {'label':'Main Config','action':'add_Document_config'},
26: )
27:
28:
29:
30: security.declarePublic('add_Document_config')
31: def add_Document_config(self):
32: """Main configuration"""
33: pt=PageTemplateFile('Products/OSA_system/ChangeOSAS_addDocument.zpt').__of__(self)
34: return pt()
35:
36: security.declarePublic('change_OSAS_add_Document')
37: def change_OSAS_add_Document(self,RESPONSE=None):
38: """Change"""
39: # self.RootFolderName=RootFolderName
40: if RESPONSE is not None:
41: RESPONSE.redirect('manage_main')
42:
43: security.declarePublic('index_html')
44: def index_html(self):
45: """stantard aufruf"""
46: return OSAS_add.add(self,no_upload=1)
47:
48:
49: security.declarePublic('add2')
50: def add2(self):
51: """ anlegen naechster schritt"""
52: return OSAS_add.add2(self)
53:
54: def add3(self):
55: """Foldername"""
56: return OSAS_add.add3(self)
57:
58: def add4(self):
59: """Applet"""
60: return OSAS_add.add4(self)
61:
62: def add5(self):
63: """Foldername"""
64: return OSAS_add.add5(self)
65:
66: def add6(self):
67: """write new index.meta file"""
68: return OSAS_add.add6(self)
69:
70:
71: def addImages(self,path):
72: """Hinzufügen eines neuen Imagesfolders"""
73: return OSAS_add.addImages(self,path)
74:
75: def addImages2(self):
76: """Upload des neuen Imagefolders"""
77: return OSAS_add.addImages2(self)
78:
79:
80: def manage_AddOSAS_add_DocumentForm(self):
81: """interface for adding the OSAS_add_Metadata"""
82: pt=PageTemplateFile('Products/OSA_system/AddOSAS_document.zpt').__of__(self)
83: return pt()
84:
85: def manage_AddOSAS_add_Document(self,id,RESPONSE=None):
86: """add the OSAS_root"""
87: newObj=OSAS_add_Document(id)
88: self.Destination()._setObject(id,newObj)
89: if RESPONSE is not None:
90: RESPONSE.redirect('manage_main')
91:
92:
93: InitializeClass(OSAS_add_Document)
94:
95:
96: class OSAS_add_Text(Folder):
97: """Hinzufuegen eines Text-Dokumentes zum Storage"""
98: security=ClassSecurityInfo()
99:
100: def __init__(self,id):
101: """initialize a new instance"""
102: self.id = id
103:
104:
105: meta_type='OSAS_add_Text'
106: manage_options = Folder.manage_options+(
107: {'label':'Main Config','action':'add_Text_config'},
108: )
109:
110:
111:
112: security.declarePublic('add_Text_config')
113: def add_Text_config(self):
114: """Main configuration"""
115: pt=PageTemplateFile('Products/OSA_system/ChangeOSAS_addText.zpt').__of__(self)
116: return pt()
117:
118: security.declarePublic('change_OSAS_add_Text')
119: def change_OSAS_add_Text(self,RESPONSE=None):
120: """Change"""
121: # self.RootFolderName=RootFolderName
122: if RESPONSE is not None:
123: RESPONSE.redirect('manage_main')
124:
125: def addText(self,path):
126: """Add a fulltext"""
127: return OSAS_add.addText(self,path)
128:
129: def addText2(self):
130: """Read the file and store it"""
131: return OSAS_add.addText2(self)
132: def manage_AddOSAS_add_TextForm(self):
133: """interface for adding the OSAS_add_Metadata"""
134: pt=PageTemplateFile('Products/OSA_system/AddOSAS_text.zpt').__of__(self)
135: return pt()
136:
137: def manage_AddOSAS_add_Text(self,id,RESPONSE=None):
138: """add the OSAS_root"""
139: newObj=OSAS_add_Text(id)
140: self.Destination()._setObject(id,newObj)
141: if RESPONSE is not None:
142: RESPONSE.redirect('manage_main')
143:
144:
145: InitializeClass(OSAS_add_Text)
146:
147: class OSAS_add_contextData(Folder):
148: """Einfuegen eines Documentes in eine Collection"""
149:
150: security=ClassSecurityInfo()
151:
152:
153: meta_type='OSAS_add_contextData'
154:
155: def __init__(self,id,collection):
156: self.id=id
157: self.collection=collection
158:
159: def getChilds(self,id,depth,items):
160: list=[]
161: for object in items:
162: if (depth==object[2])&(id==object[0]):
163: list.append(object)
164: return list
165:
166: def printChilds(self,startItem,depth,items,enddepth):
167:
168: def spaces(depth):
169: tmp=""
170: k=0
171: while k<2*depth:
172: k+=1
173: tmp=tmp+" "+" "
174: return tmp
175:
176: def retLink(object):
177: return "<input type='checkbox' name='collection' value='%s'>%s</input>"% (string.join(object.getPhysicalPath(),"."),object.title)
178:
179: depth+=1
180: childs=self.getChilds(startItem,depth,items)
181: tmp=""
182: for child in childs:
183: if depth < enddepth:
184: tmp=tmp+spaces(depth)
185:
186: tmp= tmp+retLink(child[1])+"<br>"+self.printChilds(child[1],depth,items,enddepth)+"<br>"
187: else:
188: tmp=tmp+spaces(2*depth)
189: tmp = tmp+retLink(child[1])+"<br>"
190:
191: return tmp
192:
193: def generateTree(self,depth=3):
194: """Erzeugt HTML-Tree der Collection"""
195:
196: exec("items=self.getPhysicalRoot()."+self.collection+".getCollectionTree()")
197: #print items[0][0]
198:
199: childs=self.printChilds(items[0][0],0,items,3)
200:
201: return childs
202:
203: def getPartners(self):
204: """Zeige Partnerliste"""
205: exec("items=self.getPhysicalRoot()."+self.collection+".partners.getPartners()")
206: return items
207: def addContextData(self,path):
208: """Hinzufügen zu einer Sammlung"""
209: try:
210: urllib.urlopen(self.REQUEST['SERVER_URL']+path+"/index.meta")
211: pt=PageTemplateFile('Products/OSA_system/contextDataMain.zpt').__of__(self)
212: return pt()
213: except:
214: return "index.meta file has to exist!"
215:
216:
217:
218: def addContextData2(self,path,collection,context,science,practice,source_type,period,label,description,content_type,responsible,credits):
219: """Hinzufuegen der Resource"""
220: splitted=path.split("/")
221:
222: id=splitted[len(splitted)-1]
223: title=splitted[len(splitted)-1]
224: metalink=self.REQUEST['SERVER_URL']+path+"/index.meta"
225: link="TOBEDONE"
226: """Hinzufügen der Ressource"""
227:
228:
229: exec("collection_object=self"+collection)
230:
231: ECHO_collection.manage_AddECHO_resource(collection_object,context,science,practice,source_type,period,id,title,label,description,content_type,responsible,link,metalink,credits,RESPONSE=None)
232:
233: getattr(collection_object,id).ECHO_getResourceMD()
234:
235: return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)
236:
237: manage_options = Folder.manage_options+(
238: {'label':'Main Config','action':'add_contextData_config'},
239: )
240:
241:
242: def add_contextData_config(self):
243: """Main configuration"""
244: pt=PageTemplateFile('Products/OSA_system/ChangeOSAS_add_contextData.zpt').__of__(self)
245: return pt()
246:
247:
248: def change_OSAS_add_contextData(self,collection,RESPONSE=None):
249: """Change"""
250: self.collection=collection
251: if RESPONSE is not None:
252: RESPONSE.redirect('manage_main')
253:
254: def manage_AddOSAS_add_contextDataForm(self):
255: """interface for adding the OSAS_add_Metadata"""
256: pt=PageTemplateFile('Products/OSA_system/AddOSAS_contextData.zpt').__of__(self)
257: return pt()
258:
259: def manage_AddOSAS_add_contextData(self,id,collection,RESPONSE=None):
260: """add the OSAS_root"""
261: newObj=OSAS_add_contextData(id,collection)
262: self.Destination()._setObject(id,newObj)
263: if RESPONSE is not None:
264: RESPONSE.redirect('manage_main')
265:
266:
267: InitializeClass(OSAS_add_contextData)
268:
269: class OSAS_add_Presentation(Folder):
270: """Hinzufügen der Presentationsinformationen"""
271: security=ClassSecurityInfo()
272:
273: def __init__(self,id):
274: """initialize a new instance"""
275: self.id = id
276:
277:
278: meta_type='OSAS_add_Presentation'
279: manage_options = Folder.manage_options+(
280: {'label':'Main Config','action':'add_Presentation_config'},
281: )
282:
283:
284:
285: security.declarePublic('add_Presentation_config')
286: def add_Presentation_config(self):
287: """Main configuration"""
288: pt=PageTemplateFile('Products/OSA_system/ChangeOSAS_addPresentation.zpt').__of__(self)
289: return pt()
290:
291: security.declarePublic('change_OSAS_add_Presentation')
292: def change_OSAS_add_Presentation(self,RESPONSE=None):
293: """Change"""
294: # self.RootFolderName=RootFolderName
295: if RESPONSE is not None:
296: RESPONSE.redirect('manage_main')
297:
298: def addPresentation(self,path):
299: """Hinzufügen der Presenationsinformation"""
300: return OSAS_add.addPresentation(self,path)
301:
302: def addPresentation2(self):
303: """Eingabe von Metadateninformationen"""
304: return OSAS_add.addPresentation2(self)
305:
306: def manage_AddOSAS_add_PresentationForm(self):
307: """interface for adding the OSAS_add_Metadata"""
308: pt=PageTemplateFile('Products/OSA_system/AddOSAS_presentation.zpt').__of__(self)
309: return pt()
310:
311: def manage_AddOSAS_add_Presentation(self,id,RESPONSE=None):
312: """add the OSAS_root"""
313: newObj=OSAS_add_Presentation(id)
314: self.Destination()._setObject(id,newObj)
315: if RESPONSE is not None:
316: RESPONSE.redirect('manage_main')
317:
318:
319: InitializeClass(OSAS_add_Presentation)
320:
321: class OSAS_combineTextImage(Folder):
322: """Hinzufügen der Combine Text und Image"""
323: security=ClassSecurityInfo()
324:
325: def __init__(self,id):
326: """initialize a new instance"""
327: self.id = id
328:
329:
330: meta_type='OSAS_combineTextImage'
331: manage_options = Folder.manage_options+(
332: {'label':'Main Config','action':'combineTextImage_config'},
333: )
334:
335:
336:
337: security.declarePublic('combineTextImage_config')
338: def combineTextImage_config(self):
339: """Main configuration"""
340: pt=PageTemplateFile('Products/OSA_system/ChangeOSAS_combineTextImage.zpt').__of__(self)
341: return pt()
342:
343: security.declarePublic('change_OSAS_combineTextImage')
344: def change_OSAS_combineTextImage(self,RESPONSE=None):
345: """Change"""
346: # self.RootFolderName=RootFolderName
347: if RESPONSE is not None:
348: RESPONSE.redirect('manage_main')
349:
350: security.declarePublic('combineTextImage')
351: def combineTextImage(self,path):
352: """Hinzufügen der Presenationsinformation"""
353: return OSAS_add.combineTextImage(self,path)
354:
355: def combineTextImage2(self,path):
356: """Eingabe von Metadateninformationen"""
357: OSAS_add.combineTextImage2(self,path) # Add images
358: splitted=path.split("/")
359: linkPath=splitted[len(splitted)-1]
360: linkViewerEnvironment="http://nausikaa2.mpiwg-berlin.mpg.de:86/cgi-bin/toc/toc.x.cgi?dir=%s&step=thumb" % linkPath
361: self.REQUEST.SESSION['linkViewerEnvironment']=linkViewerEnvironment
362:
363: writeToContext(path,linkViewerEnvironment,"ECHO standard environment")
364:
365: pt=PageTemplateFile('Products/OSA_system/AddOSAS_combineTextImageFinal.zpt').__of__(self)
366:
367: return pt()
368:
369:
370: def writeToContext(path,link,description):
371: """Created an additional entry to the index.meta file of path"""
372: dom=xml.dom.minidom.parse(path+"/index.meta")
373: node=dom.getElementsByTagName('resource')[0]
374:
375: subnode=dom.createElement('context')
376:
377: linknode=dom.createElement('link')
378: namelinknode=dom.createTextNode(link)
379: linknode.appendChild(namelinknode)
380: subnode.appendChild(linknode)
381:
382: linknode=dom.createElement('name')
383: namelinknode=dom.createTextNode(description)
384: linknode.appendChild(namelinknode)
385: subnode.appendChild(linknode)
386:
387: node.appendChild(subnode)
388:
389: writefile=file(path+"/index.meta","w")
390: #print path+"/index.meta"
391: writefile.write(dom.toxml().encode('utf-8'))
392: writefile.close()
393:
394: def manage_AddOSAS_combineTextImageForm(self):
395: """interface for adding the OSAS_add_Metadata"""
396: pt=PageTemplateFile('Products/OSA_system/AddOSAS_combineTextImage.zpt').__of__(self)
397: return pt()
398:
399: def manage_AddOSAS_combineTextImage(self,id,RESPONSE=None):
400: """add the OSAS_root"""
401: newObj=OSAS_combineTextImage(id)
402: self.Destination()._setObject(id,newObj)
403: if RESPONSE is not None:
404: RESPONSE.redirect('manage_main')
405:
406:
407: InitializeClass(OSAS_combineTextImage)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>