Annotation of OSAS/OSA_system/OSAS_addfiles.py, revision 1.13
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:
214: return "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.9 dwinter 220: self.REQUEST.SESSION['links']=links
221: pt=PageTemplateFile('Products/OSA_system/contextDataMain.zpt').__of__(self)
222: return pt()
1.5 dwinter 223:
224:
1.12 dwinter 225: def addContextData2(self,path,collection,context,science,practice,source_type,period,link,label,description,content_type,responsible,credits,weight):
1.5 dwinter 226: """Hinzufuegen der Resource"""
227: splitted=path.split("/")
1.13 ! dwinter 228: #print "BLU"
1.5 dwinter 229: id=splitted[len(splitted)-1]
230: title=splitted[len(splitted)-1]
1.6 dwinter 231: metalink=self.REQUEST['SERVER_URL']+path+"/index.meta"
1.13 ! dwinter 232:
1.9 dwinter 233: #link=TOBEDONE"
1.5 dwinter 234: """Hinzufügen der Ressource"""
1.3 dwinter 235:
1.5 dwinter 236:
237: exec("collection_object=self"+collection)
238:
1.12 dwinter 239: 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 240: #print "HI5"
! 241: try:
! 242: getattr(collection_object,id).ECHO_getResourceMD()
! 243: except:
! 244: """nothing"""
1.12 dwinter 245: #return "BLUByy"
1.5 dwinter 246: return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)
247:
1.3 dwinter 248: manage_options = Folder.manage_options+(
249: {'label':'Main Config','action':'add_contextData_config'},
250: )
251:
252:
253: def add_contextData_config(self):
254: """Main configuration"""
1.8 dwinter 255: pt=PageTemplateFile('Products/OSA_system/ChangeOSAS_add_contextData.zpt').__of__(self)
1.3 dwinter 256: return pt()
257:
258:
259: def change_OSAS_add_contextData(self,collection,RESPONSE=None):
260: """Change"""
261: self.collection=collection
262: if RESPONSE is not None:
263: RESPONSE.redirect('manage_main')
264:
265: def manage_AddOSAS_add_contextDataForm(self):
266: """interface for adding the OSAS_add_Metadata"""
1.8 dwinter 267: pt=PageTemplateFile('Products/OSA_system/AddOSAS_contextData.zpt').__of__(self)
1.3 dwinter 268: return pt()
269:
270: def manage_AddOSAS_add_contextData(self,id,collection,RESPONSE=None):
271: """add the OSAS_root"""
272: newObj=OSAS_add_contextData(id,collection)
273: self.Destination()._setObject(id,newObj)
274: if RESPONSE is not None:
275: RESPONSE.redirect('manage_main')
276:
277:
278: InitializeClass(OSAS_add_contextData)
1.2 dwinter 279:
280: class OSAS_add_Presentation(Folder):
281: """Hinzufügen der Presentationsinformationen"""
282: security=ClassSecurityInfo()
283:
284: def __init__(self,id):
285: """initialize a new instance"""
286: self.id = id
287:
288:
289: meta_type='OSAS_add_Presentation'
290: manage_options = Folder.manage_options+(
291: {'label':'Main Config','action':'add_Presentation_config'},
292: )
293:
294:
295:
296: security.declarePublic('add_Presentation_config')
297: def add_Presentation_config(self):
298: """Main configuration"""
1.8 dwinter 299: pt=PageTemplateFile('Products/OSA_system/ChangeOSAS_addPresentation.zpt').__of__(self)
1.2 dwinter 300: return pt()
301:
302: security.declarePublic('change_OSAS_add_Presentation')
303: def change_OSAS_add_Presentation(self,RESPONSE=None):
304: """Change"""
305: # self.RootFolderName=RootFolderName
306: if RESPONSE is not None:
307: RESPONSE.redirect('manage_main')
308:
309: def addPresentation(self,path):
310: """Hinzufügen der Presenationsinformation"""
311: return OSAS_add.addPresentation(self,path)
312:
313: def addPresentation2(self):
314: """Eingabe von Metadateninformationen"""
315: return OSAS_add.addPresentation2(self)
316:
317: def manage_AddOSAS_add_PresentationForm(self):
318: """interface for adding the OSAS_add_Metadata"""
1.8 dwinter 319: pt=PageTemplateFile('Products/OSA_system/AddOSAS_presentation.zpt').__of__(self)
1.2 dwinter 320: return pt()
321:
322: def manage_AddOSAS_add_Presentation(self,id,RESPONSE=None):
323: """add the OSAS_root"""
324: newObj=OSAS_add_Presentation(id)
325: self.Destination()._setObject(id,newObj)
326: if RESPONSE is not None:
327: RESPONSE.redirect('manage_main')
328:
329:
330: InitializeClass(OSAS_add_Presentation)
331:
332: class OSAS_combineTextImage(Folder):
333: """Hinzufügen der Combine Text und Image"""
334: security=ClassSecurityInfo()
335:
336: def __init__(self,id):
337: """initialize a new instance"""
338: self.id = id
339:
340:
341: meta_type='OSAS_combineTextImage'
342: manage_options = Folder.manage_options+(
343: {'label':'Main Config','action':'combineTextImage_config'},
344: )
345:
346:
347:
348: security.declarePublic('combineTextImage_config')
349: def combineTextImage_config(self):
350: """Main configuration"""
1.8 dwinter 351: pt=PageTemplateFile('Products/OSA_system/ChangeOSAS_combineTextImage.zpt').__of__(self)
1.2 dwinter 352: return pt()
353:
354: security.declarePublic('change_OSAS_combineTextImage')
355: def change_OSAS_combineTextImage(self,RESPONSE=None):
356: """Change"""
357: # self.RootFolderName=RootFolderName
358: if RESPONSE is not None:
359: RESPONSE.redirect('manage_main')
360:
361: security.declarePublic('combineTextImage')
362: def combineTextImage(self,path):
363: """Hinzufügen der Presenationsinformation"""
364: return OSAS_add.combineTextImage(self,path)
365:
366: def combineTextImage2(self,path):
367: """Eingabe von Metadateninformationen"""
1.7 dwinter 368: OSAS_add.combineTextImage2(self,path) # Add images
369: splitted=path.split("/")
370: linkPath=splitted[len(splitted)-1]
371: linkViewerEnvironment="http://nausikaa2.mpiwg-berlin.mpg.de:86/cgi-bin/toc/toc.x.cgi?dir=%s&step=thumb" % linkPath
372: self.REQUEST.SESSION['linkViewerEnvironment']=linkViewerEnvironment
373:
374: writeToContext(path,linkViewerEnvironment,"ECHO standard environment")
375:
1.8 dwinter 376: pt=PageTemplateFile('Products/OSA_system/AddOSAS_combineTextImageFinal.zpt').__of__(self)
1.7 dwinter 377:
378: return pt()
379:
380:
381: def writeToContext(path,link,description):
382: """Created an additional entry to the index.meta file of path"""
383: dom=xml.dom.minidom.parse(path+"/index.meta")
384: node=dom.getElementsByTagName('resource')[0]
385:
386: subnode=dom.createElement('context')
387:
388: linknode=dom.createElement('link')
389: namelinknode=dom.createTextNode(link)
390: linknode.appendChild(namelinknode)
391: subnode.appendChild(linknode)
392:
393: linknode=dom.createElement('name')
394: namelinknode=dom.createTextNode(description)
395: linknode.appendChild(namelinknode)
396: subnode.appendChild(linknode)
397:
398: node.appendChild(subnode)
399:
400: writefile=file(path+"/index.meta","w")
401: #print path+"/index.meta"
402: writefile.write(dom.toxml().encode('utf-8'))
403: writefile.close()
1.2 dwinter 404:
405: def manage_AddOSAS_combineTextImageForm(self):
406: """interface for adding the OSAS_add_Metadata"""
1.8 dwinter 407: pt=PageTemplateFile('Products/OSA_system/AddOSAS_combineTextImage.zpt').__of__(self)
1.2 dwinter 408: return pt()
409:
410: def manage_AddOSAS_combineTextImage(self,id,RESPONSE=None):
411: """add the OSAS_root"""
412: newObj=OSAS_combineTextImage(id)
413: self.Destination()._setObject(id,newObj)
414: if RESPONSE is not None:
415: RESPONSE.redirect('manage_main')
416:
417:
418: InitializeClass(OSAS_combineTextImage)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>