On Jul 11, 2005, at 9:15 PM, Alec Munro wrote:

Sorry for the vague subject, but I wasn't sure how to summarize this.
It's not exactly a Zope question, but perhaps Zope has some tricks to
make it easier.

In a couple of situations, I want to have a collection of objects, and
allow users to select from those objects, and personalize them. The
way I was thinking about this was that I would have a second class of
objects that contained the additional properties as well as a property
containing the personalized object. This seems to be similar to the
way adapters operate. However, generally an adapter is created when
used, and discarded, correct? What is the recommended way to go about

Assuming this is for authenticated users, you might want to look at zope/app/principalannotation.

As you said, Zope 3 does currently take the tack of transient adapters, although there is a common way to effectively have persistent adapters. The Zope 3 transient adapters can store their information persistently in annotations or other similar structures: object annotations, principal annotations, session data, or elsewhere. Thus you effectively get persistent adapters, with the data compartmentalized, and sometimes discarded, on the basis of how you store it. You can even store instances themselves in these annotations, and have the registered adapters just functions that look up the instances, creating them if necessary.

As I said, it sounds like you might want the principal annotations flavor of this approach.


Zope3-users mailing list

Reply via email to