[FIX] don't store user context properties into custom filter @context
This leads to any subsequent view overwriting the current user's lang or timezone with the one active when the filter was created, generating dismay and discontent (e.g. part of the user interface switching from spanish to english or english to german, depending on the respective settings of the current user and the filter creator — at time of filter creation). bzr revid: xmo@openerp.com-20130304101414-mm6ai1dkltd7ard5
This commit is contained in:
parent
0e370076f7
commit
d46c61d784
|
@ -1680,6 +1680,13 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
|
|||
if (!_.isEmpty(results.group_by)) {
|
||||
results.context.group_by = results.group_by;
|
||||
}
|
||||
// Don't save user_context keys in the custom filter, otherwise end
|
||||
// up with e.g. wrong uid or lang stored *and used in subsequent
|
||||
// reqs*
|
||||
var ctx = results.context;
|
||||
_(_.keys(instance.session.user_context)).each(function (key) {
|
||||
delete ctx[key];
|
||||
});
|
||||
var filter = {
|
||||
name: $name.val(),
|
||||
user_id: private_filter ? instance.session.uid : false,
|
||||
|
|
|
@ -1127,6 +1127,28 @@ openerp.testing.section('saved_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', {
|
||||
dependencies: ['web.search'],
|
||||
|
|
Loading…
Reference in New Issue