Official Grok Documentation version Unknown

Events

Grok provides convenient access to a set of often-used events from Zope 3. Those events include object and containment events. All events are available as interface and implemented class.

Subscription: Event interfaces

All events interfaces inherit from the base interface of IObjectEvent.

class zope.component.interfaces.IObjectEvent
object
The subject of the event taking place.

IApplicationInitializedEvent

A Grok Application has been created with success and is now ready to be used.

This event can be used to trigger the creation of contents or other tasks that require the application to be fully operational : utilities installed and indexes created in the catalog.

class grok.IApplicationInitializedEvent

Interface to subscribe to application initialization.

object
The application that has just been initialized.

IObjectModifiedEvent

An object has been modified. This is a general event that encompasses any change to a persistent object, such as adding, moving, copying, and removing of objects.

class grok.IObjectModifiedEvent

Interface to subscribe to for object modifications.

object
The subject of the event.
descriptions
A list of descriptions of the modifications.

IContainerModifiedEvent

The container has been modified. Container modifications is specific to addition, removal or reordering of sub-objects. Inherits from grok.IObjectModifiedEvent.

class grok.IContainerModifiedEvent

Interface to subscribe to for container object modifications.

object
The subject of the event.
descriptions
A list of descriptions of the modifications.

IObjectMovedEvent

An object has been moved.

class grok.IObjectMovedEvent

Interface to subscribe to for when an object is moved.

object
The subject of the event.
oldParent
The container stored in before moving.
oldName
The name before moving.
newParent
The container stored in after moving.
newName
The name after moving.

IObjectAddedEvent

An object has been added to a container.

class grok.IObjectAddedEvent

Interface to subscribe to for when an object is added to the database.

Inherits from the grok.IObjectMovedEvent interface.

object
The subject of the event.
oldParent
The container stored in before moving.
oldName
The name before moving.
newParent
The container stored in after moving.
newName
The name after moving.

IObjectCopiedEvent

An object has been copied.

class grok.IObjectCopiedEvent

Interface to subscribe to for when an object is cloned.

Inherits from grok.IObjectCreatedEvent interface.

object
The subject of the event.
original
The original object from which the copy was made.

IObjectCreatedEvent

An object has been created. This event is intended to happen before an object has been made persistent, that is it’s location attributes (__name__ and __parent__) will usually be None.

class grok.IObjectCreatedEvent

Interface to subscribe to for when an object is created.

object
The subject of the event.

IObjectRemovedEvent

An object has been removed from a container.

class grok.IObjectRemovedEvent

Interface to subscribe to for object deletions.

Inherits from grok.IObjectMovedEvent.

object
The subject of the event.
oldParent
The container stored in before removal.
oldName
The name of the removed object.

IBeforeTraverseEvent

The publisher is about to traverse into the object.

class grok.IBeforeTraverseEvent

Interface to subscribe to for object traversal.

object
The object being traversed throguh.
request
The current request.

Notification: Event implementations

Event objects are notifications that are sent when need to “fire off” an event.

All of these event objects share the same minimal implementation of an event. This class is defined at zope.component.interfaces.ObjectEvent and looks like this:

from zope import interface

class ObjectEvent(object):
    interface.implements(IObjectEvent)

    def __init__(self, object):
        self.object = object

ApplicationInitializedEvent

Event object to send after an application has been created.

class grok.ApplicationInitializedEvent

Default event implementation of the grok.IApplicationInitializedEvent interface.

object
The application that has just been initialized.

ObjectModifiedEvent

Event object to send as a notification when an object is modified.

class grok.ObjectModifiedEvent(object, *descriptions)

Default event implementation of the grok.IObjectMovedEvent interface.

object
The subject of the event.
descriptions
A list of descriptions of the modifications.

Example 1: Send an object modification event with a modified attribute named “field”.

import grok
import zope.event
import zope.lifecycleevent.Attributes
from zope.interface import Interface

class ISample(Interface) :
    field = Attribute("A test field")

class Sample(object) :
    grok.implements(ISample)

obj = Sample()
obj.field = 42
zope.event.notify(
    grok.ObjectModifiedEvent(obj,
    zope.lifecycleevent.Attributes(ISample, "field"))
)

ContainerModifiedEvent

Event object to send as a notification when a container object modified.

class grok.ContainerModifiedEvent(object, *descriptions)

Default event implementation of the grok.IContainerModifiedEvent interface.

object
The subject of the event.
descriptions
A list of descriptions of the modifications.

ObjectMovedEvent

Event object to send as a notification of when an object is moved.

class grok.ObjectMovedEvent(object, oldParent, oldName, newParent, newName)

Default event implementation of the grok.IObjectMovedEvent interface.

object
The subject of the event.
oldParent
The container stored in before moving.
oldName
The name before moving.
newParent
The container stored in after moving.
newName
The name after moving.

ObjectAddedEvent

Event object to send as a notification of when an object is added.

class grok.ObjectAddedEvent(object, newParent, newName)

Default event implementation of the grok.IObjectAddedEvent interface.

object
The subject of the event.
newParent
The container stored in after moving.
newName
The name after moving.

ObjectCopiedEvent

Event object to send as a notification of when an object is copied.

class grok.ObjectCopiedEvent(object, original)

Default event implementation of the grok.IObjectCopiedEvent interface.

Initialize this event with the new copy and the original object as positional arguments.

object
The subject of the event.
original
The original object from which the copy was made.

ObjectCreatedEvent

Event object to send as a notification of when an object is created.

class grok.ObjectCreatedEvent(object)

Default event implementation of the grok.IObjectCreatedEvent interface.

Initialize this event with the object created.

object
The subject of the event.

grok.ObjectRemovedEvent

Event object to send as a notification of when an object is removed.

grok.ObjectRemovedEvent*(object, oldParent, oldName)

Default event implementation of the grok.IObjectRemovedEvent interface.

object
The subject of the event.
oldParent
The container stored in before removal.
oldName
The name of the removed object.