In order to get visibility on https://www.odoo.com/apps the OCA board has
decided to add the OCA as author of all the addons maintained as part of the
association.
Before this patch, when a domain leaf was a string (such as `&`, `|` or `!`), it was being treated as an array. This was leading to errors such as this one:
```
2017-10-19 11:22:01,578 1 ERROR devel odoo.http: Exception during JSON request handling.
Traceback (most recent call last):
File "/opt/odoo/custom/src/odoo/odoo/http.py", line 640, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/custom/src/odoo/odoo/http.py", line 677, in dispatch
result = self._call_function(**self.params)
File "/opt/odoo/custom/src/odoo/odoo/http.py", line 333, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/opt/odoo/custom/src/odoo/odoo/service/model.py", line 101, in wrapper
return f(dbname, *args, **kwargs)
File "/opt/odoo/custom/src/odoo/odoo/http.py", line 326, in checked_call
result = self.endpoint(*a, **kw)
File "/opt/odoo/custom/src/odoo/odoo/http.py", line 935, in __call__
return self.method(*args, **kw)
File "/opt/odoo/custom/src/odoo/odoo/http.py", line 506, in response_wrap
response = f(*args, **kw)
File "/opt/odoo/auto/addons/web/controllers/main.py", line 827, in search_read
return self.do_search_read(model, fields, offset, limit, domain, sort)
File "/opt/odoo/auto/addons/web/controllers/main.py", line 849, in do_search_read
offset=offset or 0, limit=limit or False, order=sort or False)
File "/opt/odoo/custom/src/odoo/odoo/models.py", line 4733, in search_read
records = self.search(domain or [], offset=offset, limit=limit, order=order)
File "/opt/odoo/custom/src/odoo/odoo/models.py", line 1559, in search
res = self._search(args, offset=offset, limit=limit, order=order, count=count)
File "/opt/odoo/custom/src/odoo/odoo/models.py", line 4275, in _search
query = self._where_calc(args)
File "/opt/odoo/custom/src/odoo/odoo/models.py", line 4074, in _where_calc
e = expression.expression(domain, self)
File "/opt/odoo/custom/src/odoo/odoo/osv/expression.py", line 640, in __init__
self.expression = distribute_not(normalize_domain(domain))
File "/opt/odoo/custom/src/odoo/odoo/osv/expression.py", line 289, in distribute_not
elif token in DOMAIN_OPERATORS_NEGATION:
TypeError: unhashable type: 'list'
```
Now they are treated specifically and the problem is fixed.
Previously, a Bootstrap dropdown was being used to choose the domain operator.
It was not working due to a problem that doesn't allow to have nested dropdowns in Odoo 10.0 search views, but possibly yes in the intermediate version where this addon was backported.
To get this working, the BS dropdown is replaced by a standard select element, so no more conflicts.