Source code for connector.components.listener
# Copyright 2013-2017 Camptocamp SA
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html)
"""
Listeners
=========
Listeners are Components notified when events happen.
Documentation in :mod:`odoo.addons.component_event.components.event`
The base listener for the connectors add a method
:meth:`ConnectorListener.no_connector_export` which can be used with
:func:`odoo.addons.component_event.skip_if`.
"""
from odoo.addons.component.core import AbstractComponent
[docs]class ConnectorListener(AbstractComponent):
    """ Base Backend Adapter for the connectors """
    _name = "base.connector.listener"
    _inherit = ["base.connector", "base.event.listener"]
[docs]    def no_connector_export(self, record):
        """ Return if the 'connector_no_export' has been set in context
        To be used with :func:`odoo.addons.component_event.skip_if`
        on Events::
            from odoo.addons.component.core import Component
            from odoo.addons.component_event import skip_if
            class MyEventListener(Component):
                _name = 'my.event.listener'
                _inherit = 'base.connector.event.listener'
                _apply_on = ['magento.res.partner']
                @skip_if(lambda: self, record, *args, **kwargs:
                         self.no_connector_export(record))
                def on_record_write(self, record, fields=None):
                    record.with_delay().export_record()
        """
        return record.env.context.get("no_connector_export") or record.env.context.get(
            "connector_no_export"
        )