No, I get the same error.
OK, good.
class SaleOrder( Products.ZCatalog.CatalogAwareness.CatalogAware, Persistent, Acquisition.Implicit, AccessControl.Role.RoleManager, OFS.ObjectManager.ObjectManager, OFS.SimpleItem.Item, ):
SimpleItem already inherits from Persistent, Acquisition.Implicit, and AccessControl.Role.RoleManager, so you should be able to scratch them, and lessen the definition to
class SaleOrder( Products.ZCatalog.CatalogAwareness.CatalogAware, OFS.ObjectManager.ObjectManager, OFS.SimpleItem.Item, ):
# MY NOTE: changed meta_type to 'Folder' so as to enable 'paste' meta_type = 'Folder' # meta_type = 'SaleOrder'
Ah. Most likely a rights problem, then.
My understanding of OFS.CopySupport.manage_pasteObjects() is that it chokes on the call to 'self._verifyObjectPaste(ob)' (line 216 on my source): the user I run manage_pasteObjects() as does not have permission to paste. Well, I must say that Zope totally lost me with its permissions and roles: a big big bug in my code is that part of my code should be available to public (user anonymous), but I just can't get rid of the authentication dialog (for reasons I totally don't understand, calls to "security.declarePublic('my_public_stuff')" seem utterly ineffective). I am guessing similar black magic happening here.
Nah, it's better to set up it as protected to a certain right. security.declarePublic('View', 'my_public_stuff') will set your function so that everybody that has "View" rights can call the function. Then you need to set up anonymous so it has "View" rights, but thats default.