Force to put a window on every Screen
This commit is contained in:
1 parent
ad520ec183
commit
656f3e4070
12 files changed
+29
-31
No files matched your search
@@ -24,8 +24,8 @@ _ = gettext.gettext
|
||||
class Form(SignalEvent):
|
||||
"Form"
|
||||
|
||||
def __init__(self, model, res_id=False, domain=None, view_type=None,
|
||||
view_ids=None, window=None, context=None, name=False, limit=None,
|
||||
def __init__(self, model, window, res_id=False, domain=None, view_type=None,
|
||||
view_ids=None, context=None, name=False, limit=None,
|
||||
auto_refresh=False):
|
||||
super(Form, self).__init__()
|
||||
if not view_type:
|
||||
@@ -49,11 +49,10 @@ class Form(SignalEvent):
|
||||
self.domain = domain
|
||||
self.context = context
|
||||
|
||||
self.screen = Screen(self.model, view_type=view_type,
|
||||
self.screen = Screen(self.model, self.window, view_type=view_type,
|
||||
context=self.context, view_ids=view_ids, domain=domain,
|
||||
hastoolbar=CONFIG['form.toolbar'], show_search=True,
|
||||
window=self.window, limit=limit, readonly=bool(auto_refresh),
|
||||
form=self)
|
||||
limit=limit, readonly=bool(auto_refresh), form=self)
|
||||
self.screen.signal_connect(self, 'record-message', self._record_message)
|
||||
self.screen.signal_connect(self, 'attachment-count',
|
||||
self._attachment_count)
|
||||
|
||||
@@ -38,7 +38,7 @@ class Preference(object):
|
||||
raise
|
||||
arch = res['arch']
|
||||
fields = res['fields']
|
||||
self.screen = Screen('res.user', view_type=[], window=self.win)
|
||||
self.screen = Screen('res.user', self.win, view_type=[])
|
||||
self.screen.new(default=False)
|
||||
self.screen.add_view_custom(arch, fields, display=True)
|
||||
|
||||
|
||||
@@ -17,8 +17,8 @@ _ = gettext.gettext
|
||||
class Tree(SignalEvent):
|
||||
"Tree page"
|
||||
|
||||
def __init__(self, model, res_id=False, view_id=False, domain=None, context=None,
|
||||
window=None, name=False):
|
||||
def __init__(self, model, window, res_id=False, view_id=False, domain=None,
|
||||
context=None, name=False):
|
||||
super(Tree, self).__init__()
|
||||
if domain is None:
|
||||
domain = {}
|
||||
|
||||
@@ -15,10 +15,10 @@ _LIMIT = 20000
|
||||
class Screen(SignalEvent):
|
||||
"Screen"
|
||||
|
||||
def __init__(self, model_name, view_ids=None, view_type=None,
|
||||
def __init__(self, model_name, window, view_ids=None, view_type=None,
|
||||
parent=None, context=None, views_preload=None, tree_saves=True,
|
||||
domain=None, create_new=False, row_activate=None, hastoolbar=False,
|
||||
default_get=None, show_search=False, window=None, limit=None,
|
||||
default_get=None, show_search=False, limit=None,
|
||||
readonly=False, form=None, exclude_field=None, sort=''):
|
||||
if view_ids is None:
|
||||
view_ids = []
|
||||
|
||||
@@ -48,8 +48,8 @@ class Action(WidgetInterface):
|
||||
view_id = [self.action['view_id'][0]]
|
||||
if self.action['view_type'] == 'form':
|
||||
mode = (self.action['view_mode'] or 'form,tree').split(',')
|
||||
self.screen = Screen(self.action['res_model'], view_type=mode,
|
||||
context=self.context, view_ids = view_id,
|
||||
self.screen = Screen(self.action['res_model'], self._window,
|
||||
view_type=mode, context=self.context, view_ids=view_id,
|
||||
domain=self.domain)
|
||||
# self.win_gl = glade.XML(common.terp_path("terp.glade"),
|
||||
# 'widget_paned', gettext.textdomain())
|
||||
|
||||
@@ -41,8 +41,8 @@ class Many2Many(WidgetInterface):
|
||||
scroll.set_placement(gtk.CORNER_TOP_LEFT)
|
||||
scroll.set_shadow_type(gtk.SHADOW_NONE)
|
||||
|
||||
self.screen = Screen(attrs['relation'], view_type=['tree'],
|
||||
views_preload=attrs.get('views', {}))
|
||||
self.screen = Screen(attrs['relation'], self._window,
|
||||
view_type=['tree'], views_preload=attrs.get('views', {}))
|
||||
scroll.add_with_viewport(self.screen.widget)
|
||||
self.widget.pack_start(scroll, expand=True, fill=True)
|
||||
|
||||
|
||||
@@ -59,8 +59,8 @@ class Dialog(object):
|
||||
viewport.set_shadow_type(gtk.SHADOW_NONE)
|
||||
scroll.add(viewport)
|
||||
|
||||
self.screen = Screen(model, domain=domain, context=context,
|
||||
window=self.dia, view_type=['form'])
|
||||
self.screen = Screen(model, self.dia, domain=domain, context=context,
|
||||
view_type=['form'])
|
||||
if obj_id:
|
||||
self.screen.load([obj_id])
|
||||
else:
|
||||
@@ -418,7 +418,7 @@ class Many2One(WidgetInterface):
|
||||
if not obj_id:
|
||||
common.message(_('You must select a record to use the relation !'))
|
||||
return False
|
||||
screen = Screen(self.attrs['relation'])
|
||||
screen = Screen(self.attrs['relation'], self._window)
|
||||
screen.load([obj_id])
|
||||
act['domain'] = screen.current_model.expr_eval(act['domain'],
|
||||
check_load=False)
|
||||
|
||||
@@ -57,8 +57,7 @@ class Dialog(object):
|
||||
scroll.add(viewport)
|
||||
|
||||
self.dia.show_all()
|
||||
self.screen = Screen(model_name, view_type=[], parent=parent,
|
||||
window=self.dia,
|
||||
self.screen = Screen(model_name, self.dia, view_type=[], parent=parent,
|
||||
exclude_field=attrs.get('relation_field', None))
|
||||
self.screen.models._context.update(model_ctx)
|
||||
if not model:
|
||||
@@ -213,12 +212,12 @@ class One2Many(WidgetInterface):
|
||||
tooltips.enable()
|
||||
self.widget.pack_start(hbox, expand=False, fill=True)
|
||||
|
||||
self.screen = Screen(attrs['relation'],
|
||||
self.screen = Screen(attrs['relation'], self._window,
|
||||
view_type=attrs.get('mode','tree,form').split(','),
|
||||
parent=self.parent, views_preload=attrs.get('views', {}),
|
||||
tree_saves=attrs.get('saves', False), create_new=True,
|
||||
row_activate=self._on_activate,
|
||||
default_get=attrs.get('default_get', {}), window=self._window,
|
||||
default_get=attrs.get('default_get', {}),
|
||||
exclude_field=attrs.get('relation_field', None))
|
||||
self.screen.signal_connect(self, 'record-message', self._sig_label)
|
||||
menuitem_title.get_child().set_text(self.screen.current_view.title)
|
||||
|
||||
@@ -287,7 +287,8 @@ class ViewList(ParserView):
|
||||
message(_('You must select a record to use the relation!'))
|
||||
return False
|
||||
from tryton.gui.window.view_form.screen import Screen
|
||||
screen = Screen(self.screen.fields[path[1].name]['relation'])
|
||||
screen = Screen(self.screen.fields[path[1].name]['relation'],
|
||||
self.window)
|
||||
screen.load([value])
|
||||
act['domain'] = screen.current_model.expr_eval(act['domain'],
|
||||
check_load=False)
|
||||
|
||||
@@ -33,8 +33,8 @@ class WinSearch(object):
|
||||
scrollwindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
|
||||
self.win.vbox.pack_start(scrollwindow, expand=True, fill=True)
|
||||
|
||||
self.screen = Screen(model, view_type=['tree'], context=context,
|
||||
parent=self.win)
|
||||
self.screen = Screen(model, self.win, view_type=['tree'],
|
||||
context=context)
|
||||
self.view = self.screen.current_view
|
||||
self.view.unset_editable()
|
||||
sel = self.view.widget_tree.get_selection()
|
||||
|
||||
@@ -15,15 +15,14 @@ class Window(object):
|
||||
|
||||
if view_type == 'form':
|
||||
from form import Form
|
||||
win = Form(model, res_id, domain, view_type=mode,
|
||||
view_ids = (view_ids or []), window=window,
|
||||
context=context, name=name, limit=limit,
|
||||
auto_refresh=auto_refresh)
|
||||
win = Form(model, window, res_id, domain, view_type=mode,
|
||||
view_ids = (view_ids or []), context=context, name=name,
|
||||
limit=limit, auto_refresh=auto_refresh)
|
||||
Main.get_main().win_add(win)
|
||||
elif view_type == 'tree':
|
||||
from tree import Tree
|
||||
win = Tree(model, res_id, view_ids and view_ids[0] or None, domain,
|
||||
context, window=window, name=name)
|
||||
win = Tree(model, window, res_id, view_ids and view_ids[0] or None, domain,
|
||||
context, name=name)
|
||||
Main.get_main().win_add(win)
|
||||
else:
|
||||
import logging
|
||||
|
||||
@@ -36,7 +36,7 @@ class Dialog(object):
|
||||
if 'value' in fields[i]:
|
||||
val[i] = fields[i]['value']
|
||||
|
||||
self.screen = Screen(obj_name, view_type=[], window=self.dia)
|
||||
self.screen = Screen(obj_name, self.dia, view_type=[])
|
||||
self.screen.new(default=False)
|
||||
self.screen.add_view_custom(arch, fields, display=True)
|
||||
self.screen.current_model.set(val)
|
||||
|
||||
Reference in new issue
Block a user