本文整理汇总了Python中stoqlib.gui.search.searchslave.SearchSlave.create_branch_filter方法的典型用法代码示例。如果您正苦于以下问题:Python SearchSlave.create_branch_filter方法的具体用法?Python SearchSlave.create_branch_filter怎么用?Python SearchSlave.create_branch_filter使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类stoqlib.gui.search.searchslave.SearchSlave
的用法示例。
在下文中一共展示了SearchSlave.create_branch_filter方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: SearchDialog
# 需要导入模块: from stoqlib.gui.search.searchslave import SearchSlave [as 别名]
# 或者: from stoqlib.gui.search.searchslave.SearchSlave import create_branch_filter [as 别名]
#.........这里部分代码省略.........
self._on_results__selection_changed)
self.results.connect('row-activated', self._on_results__row_activated)
def _setup_details_slave(self):
# FIXME: Gross hack
has_details_btn = hasattr(self, 'on_details_button_clicked')
has_print_btn = self.report_class is not None
self.results.connect('has-rows', self._has_rows)
if not (has_details_btn or has_print_btn):
self._details_slave = None
return
self._details_slave = _SearchDialogDetailsSlave()
self.attach_slave('details_holder', self._details_slave)
if has_details_btn:
self._details_slave.connect("details",
self.on_details_button_clicked)
else:
self._details_slave.details_button.hide()
if has_print_btn:
self._details_slave.connect("print", self._on_print_button__clicked)
self.set_print_button_sensitive(False)
else:
self._details_slave.print_button.hide()
def _create_default_filters(self):
"""Creates default filters
This will create filters based on attributes defined on the class.
"""
if self.text_field_columns is not None:
self.set_text_field_columns(self.text_field_columns)
if self.branch_filter_column is not None:
self.branch_filter = self.create_branch_filter(
column=self.branch_filter_column)
if self.unlimited_results:
self.search.get_query_executer().set_limit(-1)
#
# Public API
#
def add_button(self, label, stock=None, image=None):
"""Adds a button in the bottom of the dialog.
:param label: the text that will be displayed by the button.
:param stock: the gtk stock id to be used in the button.
:param image: the image filename.
"""
button = gtk.Button(label=label)
if image:
image_widget = gtk.Image()
image_widget.set_from_file(
environ.get_resource_filename('stoq', 'pixmaps', image))
image_widget.show()
button.set_image(image_widget)
elif stock:
button_set_image_with_label(button, stock, label)
self.action_area.set_layout(gtk.BUTTONBOX_END)
self.action_area.pack_start(button, False, False, 6)
self.action_area.set_child_secondary(button, True)
return button
def add_csv_button(self, name, prefix):
self._csv_name = name
示例2: ShellApp
# 需要导入模块: from stoqlib.gui.search.searchslave import SearchSlave [as 别名]
# 或者: from stoqlib.gui.search.searchslave.SearchSlave import create_branch_filter [as 别名]
#.........这里部分代码省略.........
return either ``True`` or ``False``.
:param args: args that will be passed to *validation_func*
"""
assert callable(validation_func)
for widget in widgets:
validators = self._sensitive_group.setdefault(widget, set())
validators.add((validation_func, args))
def run_dialog(self, dialog_class, *args, **kwargs):
""" Encapsuled method for running dialogs. """
return run_dialog(dialog_class, self, *args, **kwargs)
@cached_function()
def has_open_inventory(self):
return Inventory.has_open(self.store, api.get_current_branch(self.store))
def check_open_inventory(self):
"""Checks if there is an open inventory.
In the case there is one, will call set_open_inventory (subclasses
should implement it).
Returns True if there is an open inventory. False otherwise
"""
inventory_bar = getattr(self, "inventory_bar", None)
if self.has_open_inventory():
if inventory_bar:
inventory_bar.show()
else:
self._display_open_inventory_message()
self.set_open_inventory()
return True
elif inventory_bar:
inventory_bar.hide()
return False
# FIXME: Most of these should be removed and access the search API
# directly, eg, self.search.clear() etc
def add_filter(self, search_filter, position=SearchFilterPosition.BOTTOM, columns=None, callback=None):
"""
See :class:`SearchSlave.add_filter`
"""
self.search.add_filter(search_filter, position, columns, callback)
def set_text_field_columns(self, columns):
"""
See :class:`SearchSlave.set_text_field_columns`
"""
self.search.set_text_field_columns(columns)
def create_branch_filter(self, label=None, column=None):
branch_filter = self.search.create_branch_filter(label, column)
# If there is only one item in the combo, lets hide it.
if len(branch_filter.combo) == 1:
branch_filter.hide()
return branch_filter
def refresh(self, rollback=True):
"""
See :class:`stoqlib.gui.search.searchslave.SearchSlave.refresh`
"""
# Since the store here is actually a transaction and the items
# on it can be changed from another station, do a rollback so
# the items get reloaded, avoiding cache problems
# Note that this gets mocked on tests to not do the rollback
if rollback:
self.store.rollback(close=False)
self.search.refresh()
def clear(self):
"""
See :class:`stoqlib.gui.search.searchslave.SearchSlave.clear`
"""
self.search.clear()
def select_result(self, result):
"""Select the object in the result list
If the object is not in the list (filtered out, for instance), no error
is thrown and nothing is selected
"""
try:
self.results.select(result)
except ValueError:
pass
#
# Callbacks
#
def on_search__search_completed(self, search, results, states):
self.search_completed(results, states)
has_results = len(results)
for widget in [self.window.Print, self.window.ExportSpreadSheet]:
widget.set_sensitive(has_results)
self.search.save_filter_settings("app-ui", self.app_name)