Use views_preloaded when searching on many2many

This commit is contained in:
Cédric Krier committed 2008-05-09 14:58:22 +02:00
1 parent 0a394c47ac
commit 795f0701e3
2 files changed
+13 -10

No files matched your search

@@ -69,7 +69,8 @@ class Many2Many(WidgetInterface):
ids = [x[0] for x in ids]
if len(ids) != 1:
win = WinSearch(self.attrs['relation'], sel_multi=True, ids=ids,
context=context, domain=domain, parent=self._window)
context=context, domain=domain, parent=self._window,
views_preload=self.attrs.get('views', {}))
ids = win.run()
self.screen.load(ids)
+11 -9
View File
@@ -11,7 +11,7 @@ _ = gettext.gettext
class WinSearch(object):
def __init__(self, model, sel_multi=True, ids=None, context=None,
domain=None, parent=None):
domain=None, parent=None, views_preload=None):
self.domain = domain or []
self.context = context or {}
self.context.update(rpc.CONTEXT)
@@ -34,7 +34,7 @@ class WinSearch(object):
self.win.vbox.pack_start(scrollwindow, expand=True, fill=True)
self.screen = Screen(model, self.win, view_type=['tree'],
context=context)
context=context, views_preload=views_preload)
self.view = self.screen.current_view
self.view.unset_editable()
sel = self.view.widget_tree.get_selection()
@@ -53,13 +53,15 @@ class WinSearch(object):
self.model_name = model
try:
view_form = rpc.execute('object', 'execute',
self.model_name, 'fields_view_get', False, 'tree',
self.context)
except Exception, exception:
rpc.process_exception(exception, self.parent)
raise
if 'tree' in views_preload:
view_form = views_preload['tree']
else:
try:
args = ('object', 'execute', self.model_name, 'fields_view_get',
False, 'tree', self.context)
view_form = rpc.execute(*args)
except Exception, exception:
view_form = rpc.process_exception(exception, self.parent, *args)
self.form = widget_search.Form(view_form['arch'], view_form['fields'],
model, parent=self.win)