diff --git a/sao/src/sao.js b/sao/src/sao.js index 8501ae2c47..043c39197d 100644 --- a/sao/src/sao.js +++ b/sao/src/sao.js @@ -533,6 +533,8 @@ var Sao = { } 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 9e59b5bb14..5b723bde7b 100644 --- a/sao/src/screen.js +++ b/sao/src/screen.js @@ -2170,6 +2170,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 34b1658b45..e249d52667 100644 --- a/sao/src/tab.js +++ b/sao/src/tab.js @@ -832,6 +832,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 72733259db..81b416bb8d 100644 --- a/tryton/tryton/gui/main.py +++ b/tryton/tryton/gui/main.py @@ -1019,6 +1019,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 de1f1280be..61ab61c5c0 100644 --- a/tryton/tryton/gui/window/form.py +++ b/tryton/tryton/gui/window/form.py @@ -122,6 +122,8 @@ class Form(TabContent): and 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 7e69a7aba8..43b645b484 100644 --- a/tryton/tryton/gui/window/view_form/screen/screen.py +++ b/tryton/tryton/gui/window/view_form/screen/screen.py @@ -1364,6 +1364,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(