[Zope3-dev] Missing ObjectContentModifiedEvent

Uwe Oestermeier u.oestermeier at iwm-kmrc.de
Tue May 3 11:47:31 EDT 2005


Garrett Smith wrote:

>What is the difference between 'content' that gets modified and the
>object that gets modified.

In my understanding the difference stems from the filesystem 
metaphor behind Zope. The "content" of a Zope object corresponds 
to the content of a file, while other attributes are more like descriptive 
metadata (e.g. modification time).
The distinction however is not clear cut because content objects
can be much more complex than simple files and metadata can also be stored
in annotations.

In my use case, however, it makes sense to draw such a distinction 
because I'm using the filesystem to store versions. 
Content in this sense is simply that what can be edited by opening and
writing files.
Since Zope3 supports WebDAV and FTP something similar is probably needed
for 
other systems too. 

But I could also live with ObjectModifiedEvents only.  
I've to check all aspects of an object anyway, because
the non-content parts of an object are versionable too. Currently I loop
over
all versionable attributes (which are provided by special adapters) and
try to detect all differences between new and old versions of an object.

A more radical approach would be to specify in each ObjectModifiedEvent
which aspects of an object changed. By aspect I mean the schema and the
modified
field within the schema:

	class IPerson(Interface) :
		age = Attribute("The age of the person")

	class Person(object) :
		implements(IPerson)

	person = Person()
	person.age = 42
	zope.event.notify( ObjectModifiedEvent(person, aspect=IPerson["age"]))

File content then could be handled as a special case :
	
	file.data = "42"
	zope.event.notify( ObjectModifiedEvent(person, aspect=IFile["data"]))

With this extension the ObjectModifiedEvents would be more informative and
a loop over all versionable
attributes in my application would become unnecessary.  This would also
make updates of
 catalogs more efficient.

Regards
Uwe Oestermeier

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.zope.org/pipermail/zope3-dev/attachments/20050503/6dd9833a/attachment.htm


More information about the Zope3-dev mailing list