diff --git a/addons/base/controllers/main.py b/addons/base/controllers/main.py index f976f809a44..f5eda8020c5 100644 --- a/addons/base/controllers/main.py +++ b/addons/base/controllers/main.py @@ -172,6 +172,10 @@ class DataSet(openerpweb.Controller): @openerpweb.jsonrequest def find(self, request, model, fields=False, offset=0, limit=False, domain=None, context=None, sort=None): + return self.do_find(request, model, fields, offset, limit, + domain, context, sort) + def do_find(self, request, model, fields=False, offset=0, limit=False, + domain=None, context=None, sort=None): Model = request.session.model(model) ids = Model.search(domain or [], offset or 0, limit or False, sort or False, context or False) diff --git a/addons/base/static/openerp/js/base_views.js b/addons/base/static/openerp/js/base_views.js index de42b5470bb..e2876333868 100644 --- a/addons/base/static/openerp/js/base_views.js +++ b/addons/base/static/openerp/js/base_views.js @@ -450,7 +450,6 @@ openerp.base.FormView = openerp.base.Controller.extend({ }, on_record_loaded: function(records) { this.datarecord = records[0]; - console.log('record', this.datarecord); for (var f in this.fields) { this.fields[f].set_value(this.datarecord.values[f]); } diff --git a/addons/base/tests/test_dataset.py b/addons/base/tests/test_dataset.py new file mode 100644 index 00000000000..c0cd8d7a465 --- /dev/null +++ b/addons/base/tests/test_dataset.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +import mock +import unittest2 +import base.controllers.main + +class TestDataSetController(unittest2.TestCase): + def setUp(self): + self.dataset = base.controllers.main.DataSet() + self.request = mock.Mock() + self.read = self.request.session.model().read + self.search = self.request.session.model().search + + def test_empty_find(self): + self.search.return_value = [] + self.read.return_value = [] + + self.assertFalse(self.dataset.do_find(self.request, 'fake.model')) + self.read.assert_called_once_with([], False) + + def test_regular_find(self): + self.search.return_value = [1, 2, 3] + + self.dataset.do_find(self.request, 'fake.model') + self.read.assert_called_once_with([1, 2, 3], False) + + def test_ids_shortcut(self): + self.search.return_value = [1, 2, 3] + self.read.return_value = [ + {'id': 1, 'name': 'foo'}, + {'id': 2, 'name': 'bar'}, + {'id': 3, 'name': 'qux'} + ] + + self.assertEqual( + self.dataset.do_find(self.request, 'fake.model', ['id']), + [{'id': 1}, {'id': 2}, {'id': 3}]) + self.assertFalse(self.read.called)