Odoo Help


How to override correctly this search.js file?

Pascal Tremblay
on 7/13/15, 1:40 PM 2,226 views

Hello there,

We are trying to override the start function in openerp/addons/web/static/src/js/search.js.

We have this in a XML file of our custom module and it seems to work well :

        <template id="override_js_search_view" name="override_js_search_view" inherit_id="web.assets_backend" >

                <xpath expr="." position="inside">

                        <script type="text/javascript" src="/website_lapagept/static/src/js/search.js"></script>



We have this in our custom js file /website_lapagept/static/src/js/search.js :

        openerp.website_lapagept = function(instance){

                instance.web.SearchView.include ({

                    start: function() {

                        var self = this;

                        var p = this._super();

                        this.$view_manager_header = this.$el.parents(".oe_view_manager_header").first();


                        this.query = new my.SearchQuery()

                        .on('add change reset remove', this.proxy('do_search'))

                        .on('change', this.proxy('renderChangedFacets'))

                        .on('add reset remove', this.proxy('renderFacets'));

                        if (this.options.hidden) {



                        if (this.headless) {


                        } else {

                            var load_view = instance.web.fields_view_get({

                            model: this.dataset._model,

                            view_id: this.view_id,

                            view_type: 'search',

                            context: this.dataset.get_context(),


                        this.alive($.when(load_view)).then(function (r) {


                        return self.search_view_loaded(r);

                   }).fail(function () {

                    self.ready.reject.apply(null, arguments);



                                var view_manager = this.getParent();

                                while (!(view_manager instanceof instance.web.ViewManager) &&

                                view_manager && view_manager.getParent) {

                                view_manager = view_manager.getParent();


                        if (view_manager) {

                            this.view_manager = view_manager;

                            view_manager.on('switch_mode', this, function (e) {

                            self.drawer.toggle(e !== 'form');



                    return $.when(p, this.ready);




But we get this error (we have a problem with the my variable) :

        Uncaught ReferenceError: my is not defined


Somebody could help please?

Axel Mendoza
On 7/13/15, 3:46 PM

As var my is defined in Odoo 8 as:

var my = instance.web.search = {}; 

Try redeclaring in your .js the var my as:

var my = instance.web.search; 

Thanks a lot for your answer. It works correctly.

Pascal Tremblay
on 7/14/15, 7:08 AM
Pascal Tremblay
On 7/14/15, 7:09 AM

The code is :


    openerp.website_lapagept = function(instance){

        var my = instance.web.search;

        instance.web.SearchView.include ({


About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

2 follower(s)


Asked: 7/13/15, 1:40 PM
Seen: 2226 times
Last updated: 7/14/15, 7:09 AM