Changelog
---------

.. Future (?)
.. ~~~~~~~~~~
.. 
.. * 

Future (?)
~~~~~~~~~~

* Fix backend_to_m2o to extract id of the binding (https://github.com/OCA/connector/pull/194)
* Remove cancellation of jobs / active flag on jobs, now jobs are only set to
  Done when NothingToDoJob is raised.

9.0.1.0.2 (2016-03-03)
~~~~~~~~~~~~~~~~~~~~~~

* Fix: adapt to upstream api change to obtain db connection (https://github.com/OCA/connector/pull/179)

9.0.1.0.1 (2016-03-03)
~~~~~~~~~~~~~~~~~~~~~~

* Enabled the JobRunner by default, with a default channels configuration of root:1
* Removed the old workers
* Removed the broken dbfilter support (https://github.com/OCA/connector/issues/58)
* Cleaned the methods that have been deprecated in version 3.x


8.0.3.3.0 (2016-02-29)
~~~~~~~~~~~~~~~~~~~~~~

* Allow to define seconds when raising a RetryableJobError (https://github.com/OCA/connector/pull/124)
* Allow to ignore the retry counter when raising a RetryableJobError (https://github.com/OCA/connector/pull/124)
* Add 'mock_job_delay_to_direct' to ease tests on jobs (https://github.com/OCA/connector/pull/123)
* Add helper function to acquire Posgres advisory locks (https://github.com/OCA/connector/pull/138, https://github.com/OCA/connector/pull/139)
* Improvement of 'is_module_installed' which now uses the registry instead of db + cache (https://github.com/OCA/connector/pull/130)
* Security: Prevent to unpickle globals which are not jobs or whitelisted types (https://github.com/OCA/connector/pull/170)
* Fix: Manage non-ascii Postgres errors (https://github.com/OCA/connector/pull/167)
* Fix: ignore dbfilter containing %d or %h (https://github.com/OCA/connector/pull/166)
* Fix: correctly obtain the list of database with odoo is started with --no-database-list (https://github.com/OCA/connector/pull/164)
* Fix: Set job back to 'pending' in case of exception (https://github.com/OCA/connector/pull/150, https://github.com/OCA/connector/pull/151, https://github.com/OCA/connector/pull/152, https://github.com/OCA/connector/pull/155)
* Fix: Clear environment caches and recomputations upon failures (https://github.com/OCA/connector/pull/131)
* Fix: when a job fails, inactive users are no longer added to its followers (https://github.com/OCA/connector/pull/137)
* Fix: Set job to failed after non-retryable OperationalError (https://github.com/OCA/connector/pull/132)
* Fix: wrong model in connector_base_product's views (https://github.com/OCA/connector/pull/119)
* Various documentation improvements


3.2.0 (2015-09-10)
~~~~~~~~~~~~~~~~~~

* method 'install_in_connector' is now deprecated (https://github.com/OCA/connector/pull/74)
* Add a retry pattern for jobs (https://github.com/OCA/connector/pull/75, https://github.com/OCA/connector/pull/92)
* Use custom connector environments and instantiate them with needed attributes (https://github.com/OCA/connector/pull/108)
* A new default implementation for the binder (https://github.com/OCA/connector/pull/76)
* Translations are now automatically synchronized from Transifex
* Mapper: add modifier to follow m2o relations with dot notation (https://github.com/OCA/connector/pull/94)
* Mapper: add 'changed_by_fields' which indicates which source fields will output data (https://github.com/OCA/connector/pull/73)
* Allow to assign a default channel on @job functions (https://github.com/OCA/connector/pull/71)
* Fix: connector-runner: manages retryable errors (https://github.com/OCA/connector/pull/87)
* Fix: connector-runner: logging error when a capacity is None (https://github.com/OCA/connector/pull/98)
* Fix: connector-runner: shows a wrong job result on retried jobs (https://github.com/OCA/connector/pull/101)
* Fix: add an index on queue_job.worker_id (https://github.com/OCA/connector/pull/89)
* Fix: Tests: common.DB is gone in 8.0 stable (https://github.com/OCA/connector/pull/79)
* Fix: connector-runner: graceful stop mechanism (https://github.com/OCA/connector/pull/69)
* Fix: connector-runner: Wrong arguments position in a log message (https://github.com/OCA/connector/pull/67)


3.1.0 (2015-05-15)
~~~~~~~~~~~~~~~~~~

* New jobs runner (details on https://github.com/OCA/connector/pull/52)
* French documentation (https://github.com/OCA/connector/pull/57)
* Add ConnectorSession.from_env() (https://github.com/OCA/connector/pull/66)
* Fix: missing indexes on jobs (https://github.com/OCA/connector/pull/65)


3.0.0 (2015-04-01)
~~~~~~~~~~~~~~~~~~

/!\ Backwards incompatible changes inside.

* Add ``openerp.api.Environment`` in ``Session``
  It is accessible in ``self.env`` in ``Session`` and all
  ``ConnectorUnit`` instances.
  Also in ``ConnectorUnit``, ``model`` returns the current (new api!) model:

  .. code-block:: python

      # On the current model
      self.model.search([])
      self.model.browse(ids)
      # on another model
      self.env['res.users'].search([])
      self.env['res.users'].browse(ids)

* Deprecate the CRUD methods in ``Session``

  .. code-block:: python

      # NO
      self.session.search('res.partner', [])
      self.session.browse('res.partner', ids)

      # YES
      self.env['res.partner'].search([])
      self.env['res.partner'].browse(ids)

* ``Environment.set_lang()`` is removed. It was modifying the context
  in place which is not possible with the new frozendict context. It
  should be done with:

  .. code-block:: python

      with self.session.change_context(lang=lang_code):
          ...

* Add an argument on the Binders methods to return a browse record

  .. code-block:: python

      binder.to_openerp(magento_id, browse=True)

* Shorten ``ConnectorUnit.get_binder_for_model`` to
  ``ConnectorUnit.binder_for``
* Shorten ``ConnectorUnit.get_connector_unit_for_model`` to
  ``ConnectorUnit.unit_for``
* Renamed ``Environment`` to ``ConnectorEnvironment`` to avoid
  confusion with ``openerp.api.Environment``
* Renamed the class attribute ``ConnectorUnit.model_name`` to
  ``ConnectorUnit.for_model_name``.
* Added ``_base_binder``, ``_base_mapper``, ``_base_backend_adapter`` in
  the synchronizers (Importer, Exporter) so it is no longer required to
  override the ``binder``, ``mapper``, ``backend_adapter`` property
  methods
* ``Session.change_context()`` now supports the same
  argument/keyword arguments semantics than
  ``openerp.model.BaseModel.with_context()``.
* Renamed ``ExportSynchronizer`` to ``Exporter``
* Renamed ``ImportSynchronizer`` to ``Importer``
* Renamed ``DeleteSynchronizer`` to ``Deleter``
* ``Session.commit`` do not commit when tests are running
* Cleaned the methods that have been deprecated in version 2.x


2.2.0 (2014-05-26)
~~~~~~~~~~~~~~~~~~

* Job arguments can now contain unicode strings (thanks to Stéphane Bidoul) lp:1288187
* List view of the jobs improved
* Jobs now support multicompany (thanks to Laurent Mignon) https://lists.launchpad.net/openerp-connector-community/msg00253.html)
* An action can be assigned to a job.  The action is called with a button on the job and could be something like open a form view or an url.

2.1.1 (2014-02-06)
~~~~~~~~~~~~~~~~~~

* A user can be blocked because he has no access to the model queue.job when a
  job has been delayed. The creation of a job is low level and should not be
  restrained by the accesses of the user. (lp:1276182)

2.1.0 (2014-01-15 - warning: breaks compatibility)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* Add a new optional keyword argument 'description' to the delay() function of a
  job.  If given, the description is used as name of the queue.job record stored
  in OpenERP and displayed in the list of jobs.
* Fix: assignment of jobs to workers respect the priority of the jobs (lp:1252681)
* Pass a new parameter to listeners of 'on_record_create' ( vals:  field values
  of the new record, e.g {'field_name': field_value, ...})
* Replace the list of updated fields passed to listeners of 'on_record_write'
  by a dictionary of updated field values e.g {'field_name': field_value, ...}
* Add the possibility to use 'Modifiers' functions in the 'direct
  mappings' (details in the documentation of the Mapper class)
* When a job a delayed, the job's UUID is returned by the delay() function
* Refactoring of mappers. Much details here:
  https://code.launchpad.net/~openerp-connector-core-editors/openerp-connector/7.0-connector-mapper-refactor/+merge/194485

2.0.1 (2013-09-12)
~~~~~~~~~~~~~~~~~~

* Developers of addons do no longer need to create an AbstractModel with a _name 'name_of_the_module.installed',
  instead, they just have to call connector.connector.install_in_connector() lp:1196859
* Added a script `openerp-connector-worker` to start processes for Jobs Workers when running OpenERP is multiprocessing
* Fix: inheritance broken when an orm.Model inherit from an orm.AbstractModel. One effect was that the mail.thread features were no longer working (lp:1233355)
* Fix: do no fail to start when OpenERP has access to a not-OpenERP database (lp:1233388)


2.0.0
~~~~~

* First release


..
  Model:
  2.0.1 (date of release)
  ~~~~~~~~~~~~~~~~~~~~~~~

  * change 1
  * change 2
