diff --git a/sao/src/sao.js b/sao/src/sao.js index bc18adc59a..4cf062d565 100644 --- a/sao/src/sao.js +++ b/sao/src/sao.js @@ -525,6 +525,8 @@ var Sao = { attributes.name = loads(params.name || '""'); attributes.search_value = loads(params.search_value || '[]'); attributes.domain = loads(params.domain || '[]'); + attributes.context_domain = loads( + params.context_domain || '[]'); attributes.context = loads(params.context || '{}'); attributes.context_model = params.context_model; attributes.tab_domain = loads(params.tab_domain || '[]'); diff --git a/sao/src/screen.js b/sao/src/screen.js index 81c4692254..b1667f0010 100644 --- a/sao/src/screen.js +++ b/sao/src/screen.js @@ -2104,6 +2104,10 @@ if (!jQuery.isEmptyObject(this.domain)) { query_string.push(['domain', dumps(this.domain)]); } + if (!jQuery.isEmptyObject(this.context_domain)) { + query_string.push( + ['context_domain', dumps(this.context_domain)]); + } var context = this.local_context; // Avoid rpc context if (!jQuery.isEmptyObject(context)) { query_string.push(['context', dumps(context)]); diff --git a/sao/src/tab.js b/sao/src/tab.js index 167959c27f..0460a7bd88 100644 --- a/sao/src/tab.js +++ b/sao/src/tab.js @@ -761,6 +761,9 @@ (this.attributes.res_id === attributes.res_id) && (compare( this.attributes.domain || [], attributes.domain || [])) && + (compare( + this.attributes.context_domain || [], + attributes.context_domain || [])) && (compare( this.attributes.view_ids || [], attributes.view_ids || [])) && diff --git a/tryton/tryton/gui/main.py b/tryton/tryton/gui/main.py index 436fff2b4f..f467fe119a 100644 --- a/tryton/tryton/gui/main.py +++ b/tryton/tryton/gui/main.py @@ -999,6 +999,8 @@ class Main(Gtk.Application): attributes['search_value'] = loads( params.get('search_value', '[]')) attributes['domain'] = loads(params.get('domain', '[]')) + attributes['context_domain'] = loads( + params.get('context_domain', '[]')) attributes['context'] = loads(params.get('context', '{}')) attributes['context_model'] = params.get('context_model') attributes['tab_domain'] = loads( diff --git a/tryton/tryton/gui/window/form.py b/tryton/tryton/gui/window/form.py index 0bb4a9a3a4..5abc3ddb33 100644 --- a/tryton/tryton/gui/window/form.py +++ b/tryton/tryton/gui/window/form.py @@ -109,6 +109,8 @@ class Form(TabContent): return (self.model == model and self.res_id == attributes.get('res_id') and self.attributes.get('domain') == attributes.get('domain') + and (self.attributes.get('context_domain') + == attributes.get('context_domain')) and self.attributes.get('view_ids') == attributes.get('view_ids') and (attributes.get('view_ids') or (self.attributes.get('mode') or ['tree', 'form']) == ( diff --git a/tryton/tryton/gui/window/view_form/screen/screen.py b/tryton/tryton/gui/window/view_form/screen/screen.py index 73e208f51e..ab010d1eb8 100644 --- a/tryton/tryton/gui/window/view_form/screen/screen.py +++ b/tryton/tryton/gui/window/view_form/screen/screen.py @@ -1330,6 +1330,10 @@ class Screen: if self.domain: query_string.append(('domain', json.dumps( self.domain, cls=JSONEncoder, separators=(',', ':')))) + if self.context_domain: + query_string.append(('context_domain', json.dumps( + self.context_domain, cls=JSONEncoder, + separators=(',', ':')))) context = self.local_context # Avoid rpc context if context: query_string.append(('context', json.dumps(