[FIX] implement forgotten @invisible handling on search view fields
authorXavier Morel <xmo@openerp.com>
Mon, 4 Mar 2013 15:20:47 +0000 (16:20 +0100)
committerXavier Morel <xmo@openerp.com>
Mon, 4 Mar 2013 15:20:47 +0000 (16:20 +0100)
bzr revid: xmo@openerp.com-20130304152047-8xaczg9qdx6ug2p1

1  2 
addons/web/static/src/js/search.js
addons/web/static/src/xml/base.xml
addons/web/static/test/search.js

Simple merge
Simple merge
@@@ -352,17 -330,8 +352,17 @@@ openerp.testing.section('search.default
                  ok(!facet, "an invalid m2o default should yield a non-facet");
              });
      });
 +    test("M2O default: values", {rpc: false}, function (instance) {
 +        var view = {inputs: []};
 +        var f = new instance.web.search.ManyToOneField(
 +            {attrs: {name: 'dummy', string: 'Dummy'}},
 +            {relation: 'dummy.model.name'},
 +            view);
 +        raises(function () { f.facet_for_defaults({dummy: [6, 7]}) },
 +               "should not accept multiple default values");
 +    })
  });
- openerp.testing.section('completions', {
+ openerp.testing.section('search.completions', {
      dependencies: ['web.search'],
      rpc: 'mock',
      templates: true
                  ok(!c, "no match should yield no completion");
              });
      });
 +    test("M2O filtered", {asserts: 2}, function (instance, $s, mock) {
 +        mock('dummy.model:name_search', function (args, kwargs) {
 +            deepEqual(args, [], "should have no positional arguments");
 +            deepEqual(kwargs, {
 +                name: 'bob',
 +                limit: 8,
 +                args: [['foo', '=', 'bar']],
 +                context: {flag: 1},
 +            }, "should use filtering domain");
 +            return [[42, "Match"]];
 +        });
 +        var view = {
 +            inputs: [],
 +            dataset: {get_context: function () { return {flag: 1}; }}
 +        };
 +        var f = new instance.web.search.ManyToOneField(
 +            {attrs: {string: 'Dummy', domain: '[["foo", "=", "bar"]]'}},
 +            {relation: 'dummy.model'}, view);
 +        return f.complete("bob");
 +    });
  });
- openerp.testing.section('search-serialization', {
+ openerp.testing.section('search.serialization', {
      dependencies: ['web.search'],
      rpc: 'mock',
      templates: true
@@@ -1127,30 -1076,8 +1127,30 @@@ openerp.testing.section('search.filters
                      "should have selected second filter");
              });
      });
 +    test('creation', {asserts: 2}, function (instance, $fix, mock) {
 +        // force a user context
 +        instance.session.user_context = {foo: 'bar'};
 +
 +        var view = makeSearchView(instance);
 +        var done = $.Deferred();
 +        mock('ir.filters:get_filters', function () { return []; });
 +        mock('ir.filters:create_or_replace', function (args) {
 +            var filter = args[0];
 +            deepEqual(filter.context, {}, "should have empty context");
 +            deepEqual(filter.domain, [], "should have empty domain");
 +            done.resolve();
 +        });
 +        return view.appendTo($fix)
 +        .then(function () {
 +            $fix.find('.oe_searchview_custom input#oe_searchview_custom_input')
 +                    .text("filter name")
 +                .end()
 +                .find('.oe_searchview_custom button').click();
 +            return done.promise();
 +        });
 +    });
  });
- openerp.testing.section('advanced', {
+ openerp.testing.section('search.advanced', {
      dependencies: ['web.search'],
      rpc: 'mock',
      templates: true