Source code for nti.schema.subscribers

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
Event handlers.
"""

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

from zope.component import adapter
from zope.component import handle

from nti.schema.interfaces import IBeforeSchemaFieldAssignedEvent

__docformat__ = "restructuredtext en"


[docs]@adapter(IBeforeSchemaFieldAssignedEvent) def before_object_assigned_event_dispatcher(event): """ Listens for :mod:`zope.schema` fields to fire :class:`~nti.schema.interfaces.IBeforeSchemaFieldAssignedEvent`, and re-dispatches these events based on the value being assigned, the object being assigned to, and of course the event (note that :class:`~zope.schema.interfaces.IBeforeObjectAssignedEvent` is a sub-interface of :class:`~nti.schema.interfaces.IBeforeSchemaFieldAssignedEvent`). This is analogous to :func:`zope.component.event.objectEventNotify` """ handle(event.object, event.context, event)