Browse Source

Squash of 8 commits

Add README.rst

Too short underline for module title in README.rst

Improving module meta information

Version 1.0

W391 blank line at end of file

Remove module description because README.rst is there

web_search_with_and: Latest OCA conventions
pull/1203/head
Andrius Preimantas 10 years ago
committed by David Dufresne
parent
commit
e47ca7ed6f
  1. 52
      web_search_with_and/README.rst
  2. 1
      web_search_with_and/__init__.py
  3. 20
      web_search_with_and/__openerp__.py
  4. 10
      web_search_with_and/data/data.xml
  5. 43
      web_search_with_and/static/src/js/search.js

52
web_search_with_and/README.rst

@ -0,0 +1,52 @@
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
====================================
Use AND conditions on omnibar search
====================================
When searching for records on same field Odoo joins multiple queries with OR.
For example:
* Perform a search for customer "John" on field Name
* Odoo displays customers containing "John"
* Search for "Smith" on same field Name
* Odoo displays customers containing "John" OR "Smith"
With this module installed you can press Shift key before searching for "Smith"
and Odoo finds customers containing "John" AND "Smith"
Usage
=====
* Enter your value in omnibar search field
* Press and hold Shift key
* Select field with mouse or keyboard to perform search on
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/162/8.0
Credits
=======
Contributors
------------
* Andrius Preimantas <andrius@versada.lt>
Maintainer
----------
.. image:: http://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: http://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 http://odoo-community.org.

1
web_search_with_and/__init__.py

@ -0,0 +1 @@
# -*- coding: utf-8 -*-

20
web_search_with_and/__openerp__.py

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# © 2015 Andrius Preimantas <andrius@versada.lt>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
'name': "Use AND conditions on omnibar search",
'version': '8.0.1.0.0',
'author': 'Versada UAB, Odoo Community Association (OCA)',
'license': 'AGPL-3',
'category': 'web',
'website': 'http://www.versada.lt',
'depends': [
'web',
],
'data': [
'data/data.xml',
],
'installable': True,
'application': False,
}

10
web_search_with_and/data/data.xml

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template id="assets_backend" name="web_view_editor assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/web_search_with_and/static/src/js/search.js"/>
</xpath>
</template>
</data>
</openerp>

43
web_search_with_and/static/src/js/search.js

@ -0,0 +1,43 @@
openerp.web_search_with_and = function (instance) {
instance.web.SearchView = instance.web.SearchView.extend({
select_completion: function (e, ui) {
var self = this;
if (e.shiftKey) {
e.preventDefault();
var input_index = _(this.input_subviews).indexOf(
this.subviewForRoot(
this.$('div.oe_searchview_input:focus')[0]));
this.query.add(ui.item.facet, {at: input_index / 2, shiftKey: true});
} else {
this._super(e, ui);
}
},
});
instance.web.search.SearchQuery = instance.web.search.SearchQuery.extend({
add: function (values, options) {
options = options || {};
if (!values) {
values = [];
} else if (!(values instanceof Array)) {
values = [values];
}
if (options.shiftKey) {
delete options.shiftKey;
_(values).each(function (value) {
var model = this._prepareModel(value, options);
Backbone.Collection.prototype.add.call(this, model, options);
}, this);
return this;
}
else {
return this.constructor.__super__.add.apply(this, arguments);
}
},
});
};
Loading…
Cancel
Save