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