[Zope] Bad Zope hack (was: [Zope] A subclass from PortalMember of Membership Product and ObjectManager won't list contained objects) Membership Product and ObjectManager won't list contained objects)

Dieter Maurer dieter@handshake.de
Wed, 3 Jan 2001 11:08:12 +0100 (CET)


Dirksen writes:
 > My site is installed with the Membership system. I want to store some photos in each
 > member. So I create a new member ZClass, subclassing PortalMember and ObjectManager, and
 > set the 'manage_main' as the main view. Under the instance of this new member ZClass, I
 > can add images, but I can't find them! 'objectItems' always return None. Yet the image
 > file is there. I can edit their properties as in
 > '/test/acl_users/jay/photo1/manage_main', but '/test/acl_users/jay/manage_main' just
 > won't show a thing!
I fear this is an acquisition weakness or a bug in how it is used:

  I some cases, one does not want that a name is acquired.

  It would be nice, if there were some declaration telling
  the acquisition machinery about this fact.
  I do not know, whether there is such a mechanism.
  If it is, then some Zope developpers did not know about
  it.

  To prevent acquisition, many Zope objects provide
  new definitions for the unwanted attributes.
  For example, "SimpleItem.Item" defines "objectValues"
  (and friends) to prevent them from being acquired
  from the containing folder.

  This hack does not play well with inheritance, however!

  If in your case, "PortalMember" provides empty
  "object*" methods, the correct "ObjectManager"
  methods will not be found.
  You may try to switch the inheritance order.

  However, I fear, the problem is already in "ZObject",
  the order of which can not be changed.


Hope, that in some future time, this hack disappears.


Dieter