===============
Advanced search
===============

.. 
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! This file is generated by oca-gen-addon-readme !!
   !! changes will be overwritten.                   !!
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   !! source digest: sha256:db4454aafc2b4081cee7a74e66be581e4c624d6760673de0b9bc2e33369495b2
   !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
    :target: https://odoo-community.org/page/development-status
    :alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
    :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
    :alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fweb-lightgray.png?logo=github
    :target: https://github.com/OCA/web/tree/14.0/web_advanced_search
    :alt: OCA/web
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
    :target: https://translation.odoo-community.org/projects/web-14-0/web-14-0-web_advanced_search
    :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
    :target: https://runboat.odoo-community.org/builds?repo=OCA/web&target_branch=14.0
    :alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

More powerful and easy to use search, especially for related fields.

**Table of contents**

.. contents::
   :local:

Usage
=====

To use this module, you need to:

* Open *Filters* in a search view
* Select any relational field
* Select operator `is equal to` or `is not equal to`
* The text field changes to a relational selection field where you
  can search for the record in question
* Click *Apply*

To search for properties of linked records (ie invoices for customers
with a credit limit higher than X):

* Open *Filters* in a search view
* Select *Add Advanced Filter*
* Edit the advanced filter
* Click *Save*

Note that you can stack searching for properties: Simply add another
advanced search in the selection search window. You can do
this indefinetely, so it is possible to search for moves belonging
to a journal which has a user who is member of a certain group etc.

Note also the domain dialog offers an editable preview in debug mode:
  .. image:: https://raw.githubusercontent.com/OCA/web/14.0/web_advanced_search/static/img/debug_mode.png

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

Improvements to the ``domain`` widget, not exclusively related to this addon:

* Use relational widgets when filtering a relational field
* Allow to filter field names

Improvements to the search view in this addon:

* Use widgets ``one2many_tags`` when searching ``one2many`` fields
* Use widgets ``many2many_tags`` when searching ``many2many`` fields
* Allow to edit current full search using the advanced domain editor

Issues:

* Grouped totals can show incorrect values. See https://github.com/odoo/odoo/issues/47950

Changelog
=========

11.0.1.0.2 (2018-10-31)
~~~~~~~~~~~~~~~~~~~~~~~

* Fix initialization of 1st domain node

  Sometime the dialog is not ready yet, like on EE version.
  Hence when you inject the 1st domain node
  the dialog must be already opened.

  [simahawk]


11.0.1.0.1 (2018-09-18)
~~~~~~~~~~~~~~~~~~~~~~~

* Fix `undefined` in x2m fields

  Before this patch, when searching with the "equals to" operator in any
  x2many field, the searched parameter was always `undefined`.

  The problem was that the underlying field manager implementation was
  treating those fields as x2many, while the widget used was the `one2many`
  one.

  This patch simply mocks the underlying fake record to make think that
  any relational field is always a `one2many`. This sets all pieces in
  place and makes the field manager work as expected, and thus you can
  search as expected too.

* Make linter happy

  [Yajo]


11.0.1.0.0 (2018-07-20)
~~~~~~~~~~~~~~~~~~~~~~~

* Rename, refactor, migrate to v11

  [Yajo]

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

Bugs are tracked on `GitHub Issues <https://github.com/OCA/web/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/web/issues/new?body=module:%20web_advanced_search%0Aversion:%2014.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

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

Credits
=======

Authors
~~~~~~~

* Therp BV
* Tecnativa

Contributors
~~~~~~~~~~~~

* Holger Brunn <hbrunn@therp.nl>
* Rami Alwafaie <rami.alwafaie@initos.com>
* Jose Mª Bernet <josemaria.bernet@guadaltech.es>
* Simone Orsi <simone.orsi@camptocamp.com>
* Dennis Sluijk <d.sluijk@onestein.nl>
* `Tecnativa <https://www.tecnativa.com>`_:

  * Vicent Cubells
  * Jairo Llopis
  * Alexandre Díaz

* `DynApps NV <https://www.dynapps.be>`_:

  * Raf Ven

Maintainers
~~~~~~~~~~~

This module is maintained by the OCA.

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

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.

This module is part of the `OCA/web <https://github.com/OCA/web/tree/14.0/web_advanced_search>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
