Always use search_context for creation from Many2One

and remove unused context from Many2Many WinForm as it is only for tree view.

issue9023
review282871003
This commit is contained in:
Cédric Krier
2020-02-19 22:54:21 +01:00
parent e732eda8b7
commit 2fb17eebec
2 changed files with 7 additions and 6 deletions
@@ -144,9 +144,12 @@ class Many2One(Widget):
self.changed = True
return
def get_screen(self):
def get_screen(self, search=False):
domain = self.field.domain_get(self.record)
context = self.field.get_context(self.record)
if search:
context = self.field.get_search_context(self.record)
else:
context = self.field.get_context(self.record)
# Remove first tree view as mode is form only
view_ids = self.attrs.get('view_ids', '').split(',')[1:]
return Screen(self.get_model(), domain=domain, context=context,
@@ -159,7 +162,7 @@ class Many2One(Widget):
if not model or not common.MODELACCESS[model]['create']:
return
self.focus_out = False
screen = self.get_screen()
screen = self.get_screen(search=True)
def callback(result):
if result:
@@ -337,8 +337,6 @@ class One2Many(Widget):
self._new_single()
def _new_single(self):
ctx = {}
ctx.update(self.field.get_context(self.record))
sequence = self._sequence()
def update_sequence():
@@ -353,7 +351,7 @@ class One2Many(Widget):
field_size = self.record.expr_eval(self.attrs.get('size')) or -1
field_size -= len(self.field.get_eval(self.record)) + 1
WinForm(self.screen, lambda a: update_sequence(), new=True,
many=field_size, context=ctx, title=self.attrs.get('string'))
many=field_size, title=self.attrs.get('string'))
def _new_product(self):
fields = self.attrs['product'].split(',')