Jason, Ty, Itamar, and others,
Ty: It looks like recent Zope releases do pass beforeDelete all the way down.
Oh, that's good news :-) Just the acquisition part to worry about then...
Pointer is sort of like the ZMirror mentioned, but I really don't think it's what you want. It was more of an expirement than somthing intended to be useful (it requires a change to Zope to install, for example).
No, it's not that I what. But it's a prototype useful for learning from.
Jason: Actually I'd was more thinking along the lines of the referenced object acting just like the object that it's linked to. Meta-type too.
Me too. A reference to a folder would act similar to the pointer product thou.
<dtml-in "objectValues(['MyApples'])"> will get you the references to any apples in that folder too. It allows you to have an object in two places(being a physical distinction which matters in Zope) without duplicating the filespace and work to create a second object.
I don't quite get that? Sorry.
Itamar: How about a product with only two methods in the module - manage_addMirror and manage_addMirrorForm. the form lets you choose an object somehow (by URL?) and manage_addMirror simply adds this object? Something like:
I really like a object browser, like a file browser (explorer, finder, ...) in a regular OS. Not only for this Mirror-Reference Product but general.
def manage_addMirror(self, url, REQUEST=None): """Add a Mirror """ ob=REQUEST.resolve_url(url) id=self._setObject(id, ob) if REQUEST is not None: try: u=self.DestinationURL() except: u=REQUEST['URL1'] REQUEST.RESPONSE.redirect(u+'/manage_main') return ''
What happens to the acquisition of this object? What happens if the object that this object point at gets deleted or moved? (Moved shouldn't be a problem?) I feel strongly for a reference count or a bi-directional reference to solve the problem with reference integrity. But that would probably need a base class for referable objects to derive from. //Johan