Hi Folks, I am struggeling with the following problem. I want people to create there own contributions to a thing what we named knowledgebase. If somebody wants to share his knowledge he press the "Add new Contribution" link. Then he will be asked to fill out a form. He can enter keywords, headlines, texts, images and files as attachments. A DTML Methode creates a new folder with a unique Id. Within this folder I want to store all text elements in a DTML Document, the images and the attachments. Here is the code I wrote (a form delivers all the desired variables): <dtml-var standard_html_header> <dtml-call "REQUEST.set('ts', ZopeTime())"> <dtml-call "REQUEST.set('autoId', _.str(_.int(ts)))"> <dtml-call expr="manage_addFolder(autoId, title=firstHeadline )"> <dtml-let content="' '" newfolder="_.getitem(autoId)" doc="'document'"> <dtml-call "newfolder.manage_addDTMLDocument(doc, title=firstHeadline )"> <dtml-let document="newfolder.getitem(doc)"> <dtml-call expr="document.manage_addProperty ('author',AUTHENTICATED_USER.getUserName(),'string')"> <dtml-call expr="document.manage_addProperty('creationDate',ts, 'string')"> <dtml-call expr="document.manage_addProperty('visible','1', 'boolean')"> <dtml-call expr="document.manage_addProperty ('validUntil',validUntil,'string')"> <dtml-call expr="document.manage_addProperty ('knowledgeCategory',knowledgeCategory,'string')"> <dtml-call expr="document.manage_addProperty ('keywords',keywords,'string')"> <dtml-call expr="document.manage_addProperty ('accessRights',accessRights,'string')"> </dtml-let> <dtml-if imageOne> <dtml-call "newfolder.manage_addImage(id='image_1', file=imageOne)"> </dtml-if> <dtml-if imageTwo> <dtml-call "newfolder.manage_addImage(id='image_2', file=imageTwo)"> </dtml-if> <dtml-if imageThree> <dtml-call "newfolder.manage_addImage(id='image_3', file=imageThree)"> </dtml-if> </dtml-let> <h1>Your contribution with the title <dtml-var "bindContent(autoId, AUTHENTICATED_USER.getUserName(), ts, firstHeadline, firstParagraph, imageOne, secondHeadline, secondParagraph, imageTwo, thirdHeadline, thirdParagraph, imageThree)"> was added to the system!</h1> <p><a href="<dtml-var URL1>">Return</a> to the folder listing.</p> <dtml-var standard_html_footer> ********************* The problem is that it creates the folder, creates the DTML Document 'document' and the images 1-3 but it does not adds any properties to the DTML Document "doc" because of an error called Zope has encountered an error while publishing this resource. Error Type: AttributeError Error Value: getitem What have I done wrong? Then I tried to write that as a script, but I don't know to access the doc from the context: """ addDocument Python Script Parameter: newfolder """ for object in context.newfolder.objectValues('DTML Document'): if object.getId == 'document': doc=getattr(newfolder, 'document') doc.manage_addProperty('author',AUTHENTICATED_USER.getUserName (),'string') doc.manage_addProperty('creationDate',ts,'string') doc.manage_addProperty('validUntil',validUntil,'string') doc.manage_addProperty('visible','1','boolean') doc.manage_addProperty ('knowledgeCategory',knowledgeCategory,'string') doc.manage_addProperty('keywords',keywords,'string') doc.manage_addProperty('accessRights',accessRights,'string') ****** or ***** for object in context.objectValues('Folder'): folder = object.getId() if folder == newfolder: for docObject in context.folder.objectValues('DTML Document'): if docObject.getId() == 'document': doc=getattr(newfolder, 'document') doc.manage_addProperty('author',AUTHENTICATED_USER.getUserName (),'string') doc.manage_addProperty('creationDate',ts,'string') doc.manage_addProperty('validUntil',validUntil,'string') doc.manage_addProperty('visible','1','boolean') doc.manage_addProperty ('knowledgeCategory',knowledgeCategory,'string') doc.manage_addProperty('keywords',keywords,'string') doc.manage_addProperty('accessRights',accessRights,'string') print 'I added the properties!' return printed Regards and thank you very much Andreas
participants (1)
-
andreas.kahnert@de.abb.com