I'm reading the zope book, 2.6. And I've worked through the ZopeZoo tutorial in chapter 11. I want to make it possible to delete entries in the GuestBook via its web interface. It uses a python script to create the file with the line: context.manage_addProduct['OFSP'].manage_addFile(id, title="", file=comments) I assume I could write something like: context.manage_deleteProduct['OFSP'].manage_removeFile(id) or maybe: context.manage_addProduct['OFSP'].manage_deleteFile(id) but I can't figure out where context.* is documented.
--On 25. August 2007 07:35:06 -0400 zozer@cercy.net wrote:
I'm reading the zope book, 2.6. And I've worked through the ZopeZoo tutorial in chapter 11. I want to make it possible to delete entries in the GuestBook via its web interface. It uses a python script to create the file with the line: context.manage_addProduct['OFSP'].manage_addFile(id, title="", file=comments)
I assume I could write something like:
context.manage_deleteProduct['OFSP'].manage_removeFile(id)
folder.manage_delObjects(id) -aj
I had to go to the zope cookbook today to get this script so I thought I'd paste it here for you as well. It may help you. It is from this url: http://zopelabs.com/cookbook/1037768468 hth Tim ##### to copy something from a folder copy_info = some_folder.manage_copyObjects(('object_foo', 'object_bar', 'object_baz') ) # The argument to manage_copyObjects is a tuple of object IDs which must exist # in the folder where you call the method. # The returned result is clipboard data, suitable for putting in a cookie. # but we don't need cookies if we're copying and pasting in one # script. ## If you WANT the clipboard in a cookie, maybe because you're # going to paste it later in some other script, you need to # pass in a REQUEST like so: copy_info = some_folder.manage_copyObjects(('object_foo', 'object_bar', 'object_baz'), REQUEST ) # The cookie is set in REQUEST.RESPONSE. #### To cut stuff from a folder copy_info = some_folder.manage_cutObjects(('object_foo', 'object_bar', 'object_baz') ) # ... it's just like manage_copyObjects #### To delete things completely - no cut, no paste, just gone some_folder.manage_delObjects(('object_foo', 'object_bar') ) #### To paste the result of a cut or copy into a folder some_other_folder.manage_pasteObjects(copy_info) ########## A complete copy / paste example # get the source and destination parent folders dest_base = context.restrictedTraverse('/foo/bar/baz') src_base = context.restrictedTraverse('/fool/bear/booze') folds = src_base.objectItems('Folder') # where the objects to copy live for src_id, src_obj in folds: # prepare the destination try: # we might have run the script already, or the destination # might just exist already. dest = getattr(dest_base, src_id) print 'folder exists already', except AttributeError: # make sure the destination is there. dest_base.manage_addProduct['OFSP'].manage_addFolder(src_id, '') dest = getattr(dest, s_id) print dest.absolute_url() # now the real work, actually quite easy try: copy_info = src_obj.manage_copyObjects(('stylesheet_properties',)) print " copied...", d.manage_pasteObjects(copy_info) print "pasted!" except: print "...couldn't paste it there." return printed On 8/25/07, zozer@cercy.net <zozer@cercy.net> wrote:
I'm reading the zope book, 2.6. And I've worked through the ZopeZoo tutorial in chapter 11. I want to make it possible to delete entries in the GuestBook via its web interface. It uses a python script to create the file with the line: context.manage_addProduct['OFSP'].manage_addFile(id, title="", file=comments)
I assume I could write something like:
context.manage_deleteProduct['OFSP'].manage_removeFile(id)
or maybe:
context.manage_addProduct['OFSP'].manage_deleteFile(id)
but I can't figure out where context.* is documented.
_______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )
On Sat, Aug 25, 2007 at 07:35:06AM -0400, zozer@cercy.net wrote:
but I can't figure out where context.* is documented.
It depends what kind of object context is. To find out, you may find this product useful: http://plone.org/products/docfindertab Here is a good start reference for Zope 2 APIs... it was never "finished" or updated for zope later than 2.7, but it's a lot better than nothing: http://www.plope.com/Books/2_7Edition/AppendixB.stx -- Paul Winkler http://www.slinkp.com
On Sat, Aug 25, 2007 at 07:35:06AM -0400, zozer@cercy.net wrote:
but I can't figure out where context.* is documented.
It depends what kind of object context is. To find out, you may find this product useful: http://plone.org/products/docfindertab
Here is a good start reference for Zope 2 APIs... it was never "finished" or updated for zope later than 2.7, but it's a lot better than nothing: http://www.plope.com/Books/2_7Edition/AppendixB.stx
--
Paul Winkler http://www.slinkp.com
Thanks for the links, I'll try installing docfindertab soon as I can. I'm trying to read a property of a file and the description of it on the plope site is too terse for me to understand. Here is my code: doc=getattr(context, filename) getname=doc.manage_getProperty('user_name') filename is a parameter passed to the python script, it the name of the file I'm wanting a property of. I've tried several ways of specifying the property and none of them work. The property is called user_name, its a string. Above I'm using quotes to make it a string passing it by value, I've also done it by assigning a variable the property name, etc. I also tried it with the optional 2nd argument with different variables like: getname=doc.manage_getProperty('user_name',d=None) I've tried not assigning it to a variable, all kinds of minor syntax changes, but nothing I do works, it gives the same error: Error Type: AttributeError Error Value: manage_getProperty
--On 28. August 2007 09:36:18 -0400 zozer@cercy.net wrote:
I've tried not assigning it to a variable, all kinds of minor syntax changes, but nothing I do works, it gives the same error: Error Type: AttributeError Error Value: manage_getProperty
You're doing trial-and-error programming. Instead of inventing names: better look at the documentation (even it is somewhat old). "The Zope Book 2.7 edition" (Google!) tells you in the "Advanced Scripting" chapter about properties and how to use them (hint: getProperty()). -aj
participants (4)
-
Andreas Jung -
Paul Winkler -
Tim Nash -
zozer@cercy.net