本文整理汇总了Python中widget.screen.Screen.search_filter方法的典型用法代码示例。如果您正苦于以下问题:Python Screen.search_filter方法的具体用法?Python Screen.search_filter怎么用?Python Screen.search_filter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类widget.screen.Screen
的用法示例。
在下文中一共展示了Screen.search_filter方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: win_search
# 需要导入模块: from widget.screen import Screen [as 别名]
# 或者: from widget.screen.Screen import search_filter [as 别名]
class win_search(object):
def __init__(self, model, sel_multi=True, ids=[], view_ids=False, context={}, domain = [], parent=None):
self.model = model
self.sel_multi = sel_multi
self.ids = ids
self.ui = openerp_gtk_builder('openerp.ui', ['win_search'])
self.win = self.ui.get_object('win_search')
self.win.set_icon(common.OPENERP_ICON)
if not parent:
parent = service.LocalService('gui.main').window
self.parent = parent
self.win.set_transient_for(parent)
self.screen = Screen(model, view_type=['tree'], view_ids=view_ids, show_search=True, domain=domain,
context=context, parent=self.win, win_search=True)
self.view = self.screen.current_view
if self.screen.filter_widget.focusable:
self.screen.filter_widget.focusable.grab_focus()
self.title = _('OpenERP Search: %s') % self.screen.name
self.title_results = _('OpenERP Search: %s (%%d result(s))') % (self.screen.name,)
self.win.set_title(self.title)
self.view.unset_editable()
sel = self.view.widget_tree.get_selection()
if not sel_multi:
sel.set_mode('single')
else:
sel.set_mode(gtk.SELECTION_MULTIPLE)
self.view.widget_tree.connect('row_activated', self.sig_activate)
self.view.widget_tree.connect('button_press_event', self.sig_button)
self.screen.win_search_callback = self.update_title
vp = gtk.Viewport()
vp.set_shadow_type(gtk.SHADOW_NONE)
vp.add(self.screen.widget)
vp.show()
self.sw = gtk.ScrolledWindow()
self.sw.set_shadow_type(gtk.SHADOW_NONE)
self.sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
self.sw.add(vp)
self.sw.show()
self.wid = self.ui.get_object('win_search_vbox')
self.wid.pack_start(self.sw)
self.wid.show_all()
def sig_activate(self, treeview, path, column, *args):
self.view.widget_tree.emit_stop_by_name('row_activated')
if not self.sel_multi:
self.win.response(gtk.RESPONSE_OK)
return False
def sig_button(self, view, event):
if event.button == 1 and event.type == gtk.gdk._2BUTTON_PRESS:
self.win.response(gtk.RESPONSE_OK)
return False
def find(self, widget=None, *args):
self.screen.search_filter()
self.update_title()
def update_title(self):
self.ids = self.screen.win_search_ids
self.reload()
self.win.set_title(self.title_results % len(self.ids))
def reload(self):
sel = self.view.widget_tree.get_selection()
if sel.get_mode() == gtk.SELECTION_MULTIPLE:
sel.select_all()
def sel_ids_get(self):
return self.screen.sel_ids_get()
def destroy(self):
self.parent.present()
self.win.destroy()
def go(self):
## This is if the user has set some filters by default with search_default_XXX
if self.ids:
self.screen.win_search_domain += [('id','in', self.ids)]
self.find()
else:
self.screen.update_scroll()
end = False
while not end:
sel = self.view.widget_tree.get_selection()
if sel.get_mode() == gtk.SELECTION_MULTIPLE:
sel.unselect_all()
button = self.win.run()
if button == gtk.RESPONSE_OK:
res = self.sel_ids_get() or self.ids
end = True
elif button== gtk.RESPONSE_APPLY:
self.find()
else:
res = None
end = True
self.destroy()
if button == gtk.RESPONSE_ACCEPT:
dia = dialog(self.model, window=self.parent, domain=self.screen.domain_init ,context=self.screen.context)
id = dia.run()
#.........这里部分代码省略.........
示例2: win_search
# 需要导入模块: from widget.screen import Screen [as 别名]
# 或者: from widget.screen.Screen import search_filter [as 别名]
class win_search(object):
def __init__(self, model, sel_multi=True, ids=[], context={}, domain=[], parent=None):
self.model = model
self.sel_multi = sel_multi
self.ids = ids
self.ctx = context
self.glade = glade.XML(common.terp_path("openerp.glade"), "win_search", gettext.textdomain())
self.win = self.glade.get_widget("win_search")
self.win.set_icon(common.OPENERP_ICON)
if not parent:
parent = service.LocalService("gui.main").window
self.parent = parent
self.win.set_transient_for(parent)
self.screen = Screen(
model,
view_type=["tree"],
show_search=True,
domain=domain,
context=context,
parent=self.win,
win_search=True,
)
self.view = self.screen.current_view
if self.screen.filter_widget.focusable:
self.screen.filter_widget.focusable.grab_focus()
self.title = _("OpenERP Search: %s") % self.screen.name
self.title_results = _("OpenERP Search: %s (%%d result(s))") % (self.screen.name,)
self.win.set_title(self.title)
self.view.unset_editable()
sel = self.view.widget_tree.get_selection()
if not sel_multi:
sel.set_mode("single")
else:
sel.set_mode(gtk.SELECTION_MULTIPLE)
self.view.widget_tree.connect("row_activated", self.sig_activate)
self.view.widget_tree.connect("button_press_event", self.sig_button)
self.screen.win_search_callback = self.update_title
vp = gtk.Viewport()
vp.set_shadow_type(gtk.SHADOW_NONE)
vp.add(self.screen.widget)
vp.show()
self.sw = gtk.ScrolledWindow()
self.sw.set_shadow_type(gtk.SHADOW_NONE)
self.sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
self.sw.add(vp)
self.sw.show()
self.wid = self.glade.get_widget("win_search_vbox")
self.wid.pack_start(self.sw)
self.wid.show_all()
def sig_activate(self, treeview, path, column, *args):
self.view.widget_tree.emit_stop_by_name("row_activated")
if not self.sel_multi:
self.win.response(gtk.RESPONSE_OK)
return False
def sig_button(self, view, event):
if event.button == 1 and event.type == gtk.gdk._2BUTTON_PRESS:
self.win.response(gtk.RESPONSE_OK)
return False
def find(self, widget=None, *args):
self.screen.search_filter()
self.update_title()
def update_title(self):
self.ids = self.screen.win_search_ids
self.reload()
self.win.set_title(self.title_results % len(self.ids))
def reload(self):
sel = self.view.widget_tree.get_selection()
if sel.get_mode() == gtk.SELECTION_MULTIPLE:
sel.select_all()
def sel_ids_get(self):
return self.screen.sel_ids_get()
def destroy(self):
self.parent.present()
self.win.destroy()
def go(self):
## This is if the user has set some filters by default with search_default_XXX
if self.ids:
# Add the domain only if there was no name_search performed with name
name_search = self.ctx.get("name_search", False)
self.screen.win_search_domain += [("id", "in", self.ids)] if name_search else []
self.find()
else:
self.screen.update_scroll()
end = False
while not end:
button = self.win.run()
if button == gtk.RESPONSE_OK:
res = self.sel_ids_get() or self.ids
end = True
elif button == gtk.RESPONSE_APPLY:
self.find()
else:
#.........这里部分代码省略.........
示例3: form
# 需要导入模块: from widget.screen import Screen [as 别名]
# 或者: from widget.screen.Screen import search_filter [as 别名]
class form(object):
def __init__(self, model, res_id=False, domain=None, view_type=None,
view_ids=None, window=None, context=None, name=False, help={}, limit=100,
auto_refresh=False, auto_search=True, search_view=None):
if not view_type:
view_type = ['form','tree']
if domain is None:
domain = []
if view_ids is None:
view_ids = []
if context is None:
context = {}
fields = {}
self.model = model
self.window = window
self.previous_action = None
self.ui = openerp_gtk_builder('openerp.ui', ['win_form_container'])
self.widget = self.ui.get_object('win_form_container')
self.widget.show_all()
self.fields = fields
self.domain = domain
self.context = context
self.page_label = None
self.screen = Screen(self.model, view_type=view_type,
context=self.context, view_ids=view_ids, domain=domain,help=help,
hastoolbar=options.options['form.toolbar'], hassubmenu=options.options['form.submenu'],
show_search=True, window=self.window, limit=limit, readonly=bool(auto_refresh), auto_search=auto_search, search_view=search_view)
self.screen.signal_connect(self, 'record-message', self._record_message)
self.screen.widget.show()
oregistry.add_receiver('misc-message', self._misc_message)
if not name:
self.name = self.screen.current_view.title
else:
self.name = name
vp = gtk.Viewport()
vp.set_shadow_type(gtk.SHADOW_NONE)
vp.add(self.screen.widget)
vp.show()
self.sw = gtk.ScrolledWindow()
self.sw.set_shadow_type(gtk.SHADOW_NONE)
self.sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
self.sw.add(vp)
self.sw.show()
self.has_backup = False
self.backup = {}
self.widget.pack_start(self.sw)
self.handlers = {
'but_new': self.sig_new,
'but_copy': self.sig_copy,
'but_save': self.sig_save,
'but_save_as': self.sig_save_as,
'but_import': self.sig_import,
'but_print_repeat': self.sig_print_repeat,
'but_remove': self.sig_remove,
'but_search': self.sig_search,
'but_previous': self.sig_previous,
'but_next': self.sig_next,
'but_goto_id': self.sig_goto,
'but_log': self.sig_logs,
'but_print': self.sig_print,
'but_reload': self.sig_reload,
'but_print_html': self.sig_print_html,
'but_action': self.sig_action,
'but_switch': self.sig_switch,
'but_attach': self.sig_attach,
'but_close': self.sig_close,
}
if 'tree' in view_type:
self.handlers['radio_tree'] = self.sig_switch_tree
if 'form' in view_type:
self.handlers['radio_form'] = self.sig_switch_form
if 'graph' in view_type:
self.handlers['radio_graph'] = self.sig_switch_graph
if 'calendar' in view_type:
self.handlers['radio_calendar'] = self.sig_switch_calendar
if 'diagram' in view_type:
self.handlers['radio_diagram'] = self.sig_switch_diagram
if res_id:
if isinstance(res_id, (int, long,)):
res_id = [res_id]
self.screen.load(res_id)
else:
if self.screen.current_view.view_type == 'form':
self.sig_new(autosave=False)
if self.screen.current_view.view_type in ('tree', 'graph', 'calendar'):
self.screen.search_filter()
if auto_refresh and int(auto_refresh):
gobject.timeout_add(int(auto_refresh) * 1000, self.sig_reload)
def set_tooltips(fn):
def _decorate(self, *args, **kws):
result = fn(self, *args, **kws)
if self.screen.current_view.view_type == 'form':
tips= unicode(self.screen.current_model and self.screen.current_model.value.get('name') or self.name)
tooltips = tips == self.name and self.name or self.name + ': ' + tips[:64]
lable = tips == self.name and self.name or self.name + ': ' + tips[:6]
#.........这里部分代码省略.........
示例4: form
# 需要导入模块: from widget.screen import Screen [as 别名]
# 或者: from widget.screen.Screen import search_filter [as 别名]
class form(object):
def __init__(self, model, res_id=False, domain=None, view_type=None,
view_ids=None, window=None, context=None, name=False, limit=80,
auto_refresh=False):
if not view_type:
view_type = ['form','tree']
if domain is None:
domain = []
if view_ids is None:
view_ids = []
if context is None:
context = {}
fields = {}
self.model = model
self.window = window
self.previous_action = None
self.glade = glade.XML(common.terp_path("openerp.glade"),'win_form_container',gettext.textdomain())
self.widget = self.glade.get_widget('win_form_container')
self.widget.show_all()
self.fields = fields
self.domain = domain
self.context = context
self.screen = Screen(self.model, view_type=view_type,
context=self.context, view_ids=view_ids, domain=domain,
hastoolbar=options.options['form.toolbar'], show_search=True,
window=self.window, limit=limit, readonly=bool(auto_refresh))
self.screen.signal_connect(self, 'record-message', self._record_message)
self.screen.widget.show()
oregistry.add_receiver('misc-message', self._misc_message)
if not name:
self.name = self.screen.current_view.title
else:
self.name = name
vp = gtk.Viewport()
vp.set_shadow_type(gtk.SHADOW_NONE)
vp.add(self.screen.widget)
vp.show()
self.sw = gtk.ScrolledWindow()
self.sw.set_shadow_type(gtk.SHADOW_NONE)
self.sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
self.sw.add(vp)
self.sw.show()
self.has_backup = False
self.backup = {}
self.widget.pack_start(self.sw)
self.handlers = {
'but_new': self.sig_new,
'but_copy': self.sig_copy,
'but_save': self.sig_save,
'but_save_as': self.sig_save_as,
'but_import': self.sig_import,
'but_print_repeat': self.sig_print_repeat,
'but_remove': self.sig_remove,
'but_search': self.sig_search,
'but_previous': self.sig_previous,
'but_next': self.sig_next,
'but_goto_id': self.sig_goto,
'but_log': self.sig_logs,
'but_print': self.sig_print,
'but_reload': self.sig_reload,
'but_print_html': self.sig_print_html,
'but_action': self.sig_action,
'but_switch': self.sig_switch,
'but_attach': self.sig_attach,
'but_close': self.sig_close,
}
if 'tree' in view_type:
self.handlers['radio_tree'] = self.sig_switch_tree
if 'form' in view_type:
self.handlers['radio_form'] = self.sig_switch_form
if 'graph' in view_type:
self.handlers['radio_graph'] = self.sig_switch_graph
if 'calendar' in view_type:
self.handlers['radio_calendar'] = self.sig_switch_calendar
if res_id:
if isinstance(res_id, (int, long,)):
res_id = [res_id]
self.screen.load(res_id)
else:
if self.screen.current_view.view_type == 'form':
self.sig_new(autosave=False)
if self.screen.current_view.view_type in ('tree', 'graph', 'calendar'):
self.screen.search_filter()
if auto_refresh and int(auto_refresh):
gobject.timeout_add(int(auto_refresh) * 1000, self.sig_reload)
def sig_switch_form(self, widget=None):
return self.sig_switch(widget, 'form')
def sig_switch_tree(self, widget=None):
return self.sig_switch(widget, 'tree')
def sig_switch_calendar(self, widget=None):
return self.sig_switch(widget, 'calendar')
#.........这里部分代码省略.........