107 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
.. 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.
 | 
						|
 |