odoo/ext/3rd-party-addons/component_event
Ahmed Aly 5ab62cd904 sst02 mit connector 2017-11-28 16:27:00 +01:00
..
components sst02 mit connector 2017-11-28 16:27:00 +01:00
models sst02 mit connector 2017-11-28 16:27:00 +01:00
tests sst02 mit connector 2017-11-28 16:27:00 +01:00
README.rst sst02 mit connector 2017-11-28 16:27:00 +01:00
__init__.py sst02 mit connector 2017-11-28 16:27:00 +01:00
__manifest__.py sst02 mit connector 2017-11-28 16:27:00 +01:00
core.py sst02 mit connector 2017-11-28 16:27:00 +01:00

README.rst

.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
   :target: http://www.gnu.org/licenses/agpl
   :alt: License: AGPL-3

===================
Components - Events
===================

This module implements an event system (`Observer pattern`_) and is a
base block for the Connector Framework. It can be used without
using the full Connector though. It is built upon the ``component`` module.

Documentation: http://odoo-connector.com/

.. _Observer pattern: https://en.wikipedia.org/wiki/Observer_pattern

Installation
============

* Install ``component_event``

Configuration
=============

The module does nothing by itself and has no configuration.

Usage
=====

As a developer, you have access to a events system. You can find the
documentation in the code or on http://odoo-connector.com

In a nutshell, you can create trigger events::

  class Base(models.AbstractModel):
      _inherit = 'base'

      @api.model
      def create(self, vals):
          record = super(Base, self).create(vals)
          self._event('on_record_create').notify(record, fields=vals.keys())
          return record

And subscribe listeners to the events::

  from odoo.addons.component.core import Component
  from odoo.addons.component_event import skip_if

  class MagentoListener(Component):
      _name = 'magento.event.listener'
      _inherit = 'base.connector.listener'

      @skip_if(lambda self, record, **kwargs: self.no_connector_export(record))
      def on_record_create(self, record, fields=None):
          """ Called when a record is created """
          record.with_delay().export_record(fields=fields)


This module triggers 3 events:

* ``on_record_create(record, fields=None)``
* ``on_record_write(record, fields=None)``
* ``on_record_unlink(record)``


Known issues / Roadmap
======================

Bug Tracker
===========

Bugs are tracked on `GitHub Issues
<https://github.com/OCA/connector/issues>`_. In case of trouble, please
check there if your issue has already been reported. If you spotted it first,
help us smash it by providing detailed and welcomed feedback.

Credits
=======

Images
------

* Odoo Community Association: `Icon <https://github.com/OCA/maintainer-tools/blob/master/template/module/static/description/icon.svg>`_.

Contributors
------------

* Guewen Baconnier <guewen.baconnier@camptocamp.com>

Do not contact contributors directly about support or help with technical issues.

Maintainer
----------

.. image:: https://odoo-community.org/logo.png
   :alt: Odoo Community Association
   :target: https://odoo-community.org

This module is maintained by the OCA.

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

To contribute to this module, please visit https://odoo-community.org.