def create_filters(self): self.set_text_field_columns(["name", "cpf", "rg_number", "phone_number", "mobile_number"]) statuses = [(v, k) for k, v in Client.statuses.items()] statuses.insert(0, (_("Any"), None)) status_filter = ComboSearchFilter(_("Show clients with status"), statuses) status_filter.select(None) self.add_filter(status_filter, SearchFilterPosition.TOP, ["status"])
class ProductionItemsSearch(ProductSearch): title = _(u"Production Items") search_spec = ProductionItemView report_class = ProductionItemReport csv_data = None has_print_price_button = False def __init__(self, store, hide_footer=True, hide_toolbar=True): ProductSearch.__init__(self, store, hide_footer=hide_footer, hide_toolbar=hide_toolbar) # # SearchDialog # def create_filters(self): self.set_text_field_columns(["description", "order_identifier_str"]) statuses = [(desc, i) for i, desc in ProductionOrder.statuses.items()] statuses.insert(0, (_(u"Any"), None)) self.status_filter = ComboSearchFilter(_("order status:"), statuses) self.status_filter.select(ProductionOrder.ORDER_PRODUCING) self.add_filter(self.status_filter, columns=["order_status"], position=SearchFilterPosition.TOP) def get_columns(self): return [ IdentifierColumn("order_identifier", title=_(u"Order #"), sorted=True), SearchColumn("category_description", title=_(u"Category"), data_type=str), SearchColumn("description", title=_(u"Description"), data_type=str, expand=True), SearchColumn("unit_description", title=_(u"Unit"), data_type=str), SearchColumn("quantity", title=_(u"To Produce"), data_type=Decimal), SearchColumn("produced", title=_(u"Produced"), data_type=Decimal), SearchColumn("lost", title=_(u"Lost"), data_type=Decimal, visible=False), ]
def create_filters(self): self.search.set_query(self._query) self.set_text_field_columns(['description']) self.branch_filter = ComboSearchFilter(_('Show by:'), self._get_branches()) self.branch_filter.select(api.get_current_branch(self.store)) self.add_filter(self.branch_filter, position=SearchFilterPosition.TOP)
def create_filters(self): statuses = [(v, k) for k, v in Client.statuses.items()] statuses.insert(0, (_('Any'), None)) status_filter = ComboSearchFilter(_('Show clients with status'), statuses) status_filter.select(None) self.add_filter(status_filter, SearchFilterPosition.TOP, ['status'])
def create_filters(self): items = [(_("Active"), True), (_("Inactive"), False)] items.insert(0, (_("Any"), None)) status_filter = ComboSearchFilter(_("Show transporters with status"), items) status_filter.select(None) self.add_filter(status_filter, SearchFilterPosition.TOP, ["is_active"])
class DeliverySearch(SearchEditor): """Delivery search implementation""" title = _('Delivery Search') search_spec = DeliveryView editor_class = DeliveryEditor has_new_button = False size = (750, 450) # # Private # def _get_status_values(self): items = [(value, key) for key, value in Delivery.statuses.items()] items.insert(0, (_('Any'), None)) return items # # SearchEditor # def create_filters(self): self.set_text_field_columns(['tracking_code', 'transporter_name', 'recipient_name', 'identifier_str']) # Status statuses = [(desc, st) for st, desc in Delivery.statuses.items()] statuses.insert(0, (_('Any'), None)) self.status_filter = ComboSearchFilter(_('With status:'), statuses) self.status_filter.select(None) self.add_filter(self.status_filter, columns=['status'], position=SearchFilterPosition.TOP) def get_editor_model(self, viewable): return viewable.delivery def get_columns(self): return [IdentifierColumn('identifier', title=_('Sale #'), order=Gtk.SortType.DESCENDING, sorted=True), SearchColumn('status_str', title=_('Status'), data_type=str, search_attribute='status', valid_values=self._get_status_values()), Column('address_str', title=_('Address'), data_type=str, expand=True, ellipsize=Pango.EllipsizeMode.END), SearchColumn('tracking_code', title=_('Tracking code'), data_type=str), SearchColumn('transporter_name', title=_('Transporter'), data_type=str), SearchColumn('recipient_name', title=_('Recipient'), data_type=str), SearchColumn('open_date', title=_('Open date'), data_type=datetime.date, visible=False), SearchColumn('send_date', title=_('Sent date'), data_type=datetime.date, visible=False), SearchColumn('receive_date', title=_('Received date'), data_type=datetime.date, visible=False), ]
def create_filters(self): self.set_text_field_columns(["name", "phone_number"]) items = [(_("Active"), True), (_("Inactive"), False)] items.insert(0, (_("Any"), None)) status_filter = ComboSearchFilter(_("Show transporters with status"), items) status_filter.select(None) self.add_filter(status_filter, SearchFilterPosition.TOP, ["is_active"])
def create_filters(self): self.set_text_field_columns(['supplier_name', 'identifier_str']) self.status_filter = ComboSearchFilter(_('Show orders'), self._get_status_values()) self.add_filter(self.status_filter, SearchFilterPosition.TOP, ['status']) self.branch_filter = self.create_branch_filter( column=PurchaseOrderView.branch_id)
def create_filters(self): statuses = [(value, key) for key, value in Branch.statuses.items()] statuses.insert(0, (_("Any"), None)) status_filter = ComboSearchFilter(_("Show branches with status"), statuses) status_filter.select(None) executer = self.search.get_query_executer() executer.add_filter_query_callback(status_filter, self._get_status_query) self.search.add_filter(status_filter, SearchFilterPosition.TOP)
def create_filters(self): items = [(_('Active'), True), (_('Inactive'), False)] items.insert(0, (_('Any'), None)) status_filter = ComboSearchFilter(_('Show transporters with status'), items) status_filter.select(None) self.add_filter(status_filter, SearchFilterPosition.TOP, ['is_active'])
def create_filters(self): # status filter statuses = [(desc, i) for i, desc in Loan.statuses.items()] statuses.insert(0, (_(u'Any'), None)) status_filter = ComboSearchFilter(_(u'with status:'), statuses) status_filter.select(None) self.add_filter(status_filter, columns=['loan_status'], position=SearchFilterPosition.TOP)
def create_filters(self): statuses = [(desc, i) for i, desc in ProductionOrder.statuses.items()] statuses.insert(0, (_(u'Any'), None)) self.status_filter = ComboSearchFilter(_('order status:'), statuses) self.status_filter.select(ProductionOrder.ORDER_PRODUCING) self.add_filter(self.status_filter, columns=['order_status'], position=SearchFilterPosition.TOP)
def create_filters(self): self.set_text_field_columns(['name', 'phone_number']) items = [(_('Active'), True), (_('Inactive'), False)] items.insert(0, (_('Any'), None)) status_filter = ComboSearchFilter(_('Show transporters with status'), items) status_filter.select(None) self.add_filter(status_filter, SearchFilterPosition.TOP, ['is_active'])
def create_filters(self): self.set_text_field_columns(['description', 'barcode']) items = [(v, k) for k, v in Sellable.statuses.items()] items.insert(0, (_('Any'), None)) service_filter = ComboSearchFilter(_('Show services'), items) service_filter.select(None) executer = self.search.get_query_executer() executer.add_query_callback(self._get_query) self.add_filter(service_filter, SearchFilterPosition.TOP, ['status'])
def create_filters(self): self.set_text_field_columns(['description', 'identifier_str']) # status filter statuses = [(desc, i) for i, desc in Loan.statuses.items()] statuses.insert(0, (_(u'Any'), None)) status_filter = ComboSearchFilter(_(u'with status:'), statuses) status_filter.select(None) self.add_filter(status_filter, columns=['loan_status'], position=SearchFilterPosition.TOP)
def create_filters(self): self.set_text_field_columns(['name', 'cpf', 'rg_number', 'phone_number', 'mobile_number']) statuses = [(v, k) for k, v in Client.statuses.items()] statuses.insert(0, (_('Any'), None)) status_filter = ComboSearchFilter(_('Show clients with status'), statuses) status_filter.select(None) self.add_filter(status_filter, SearchFilterPosition.TOP, ['status'])
def create_filters(self): self.executer.set_query(self._query_executer) self.set_text_field_columns(['client_name', 'salesperson_name']) self.status_filter = ComboSearchFilter(_(u"Show orders"), self._get_status_values()) self.status_filter.select(Sale.STATUS_CONFIRMED) self.add_filter(self.status_filter, position=SearchFilterPosition.TOP, columns=['status'])
def create_filters(self): self.set_text_field_columns(['recipient_name', 'identifier_str']) self.main_filter = ComboSearchFilter(_('Show'), []) self.add_filter(self.main_filter, SearchFilterPosition.TOP, callback=self._get_main_query) self.create_branch_filter(column=[Invoice.branch_id]) self._update_filters()
def create_filters(self): self.search.set_query(self._query) self.set_text_field_columns(['description', 'code', 'barcode', 'category_description', 'manufacturer']) branches = Branch.get_active_branches(self.store) self.branch_filter = ComboSearchFilter( _('Show by:'), api.for_combo(branches, empty=_("All branches"))) self.branch_filter.select(api.get_current_branch(self.store)) self.add_filter(self.branch_filter, position=SearchFilterPosition.TOP)
def create_filters(self): self.set_text_field_columns(['description', 'barcode']) items = [(v, k) for k, v in Sellable.statuses.items()] items.insert(0, (_('Any'), None)) service_filter = ComboSearchFilter(_('Show services'), items) service_filter.select(None) self.executer.add_query_callback(self._get_query) self.add_filter(service_filter, SearchFilterPosition.TOP, ['status'])
def create_filters(self): statuses = [(value, key) for key, value in Branch.statuses.items()] statuses.insert(0, (_('Any'), None)) status_filter = ComboSearchFilter(_('Show branches with status'), statuses) status_filter.select(None) executer = self.search.get_query_executer() executer.add_filter_query_callback(status_filter, self._get_status_query) self.search.add_filter(status_filter, SearchFilterPosition.TOP)
def create_main_filter(self): self.main_filter = ComboSearchFilter(_('Show'), []) combo = self.main_filter.combo combo.color_attribute = 'color' combo.set_row_separator_func(self._on_main_filter__row_separator_func) self._update_filter_items() self.executer.add_filter_query_callback( self.main_filter, self._on_main_filter__query_callback) self.add_filter(self.main_filter, SearchFilterPosition.TOP)
class DeliverySearch(SearchEditor): """Delivery search implementation""" title = _('Delivery Search') search_spec = DeliveryView editor_class = DeliveryEditor has_new_button = False size = (750, 450) # # SearchEditor hooks # def _get_status_values(self): items = [(value, key) for key, value in Delivery.statuses.items()] items.insert(0, (_('Any'), None)) return items def create_filters(self): self.set_text_field_columns(['tracking_code', 'transporter_name', 'client_name', 'identifier_str']) # Status statuses = [(desc, st) for st, desc in Delivery.statuses.items()] statuses.insert(0, (_('Any'), None)) self.status_filter = ComboSearchFilter(_('With status:'), statuses) self.status_filter.select(None) self.add_filter(self.status_filter, columns=['status'], position=SearchFilterPosition.TOP) def get_editor_model(self, viewable): return viewable.delivery def get_columns(self): return [IdentifierColumn('sale_identifier', title=_('Sale #'), order=gtk.SORT_DESCENDING), SearchColumn('status_str', title=_('Status'), data_type=str, search_attribute='status', valid_values=self._get_status_values()), Column('address_str', title=_('Address'), data_type=str, expand=True, ellipsize=pango.ELLIPSIZE_END), SearchColumn('tracking_code', title=_('Tracking code'), data_type=str), SearchColumn('transporter_name', title=_('Transporter'), data_type=str), SearchColumn('client_name', title=_('Client'), data_type=str), SearchColumn('open_date', title=_('Open date'), data_type=datetime.date, visible=False), SearchColumn('deliver_date', title=_('Sent date'), data_type=datetime.date, visible=False), SearchColumn('receive_date', title=_('Received date'), data_type=datetime.date, visible=False), ]
def create_filters(self): self.set_text_field_columns(['name', 'acronym', 'phone_number']) statuses = [(value, key) for key, value in Branch.statuses.items()] statuses.insert(0, (_('Any'), None)) status_filter = ComboSearchFilter(_('Show branches with status'), statuses) status_filter.select(None) self.executer.add_filter_query_callback( status_filter, self._get_status_query) self.search.add_filter(status_filter, SearchFilterPosition.TOP)
def create_filters(self): self.set_text_field_columns(['tracking_code', 'transporter_name', 'client_name', 'identifier_str']) # Status statuses = [(desc, st) for st, desc in Delivery.statuses.items()] statuses.insert(0, (_('Any'), None)) self.status_filter = ComboSearchFilter(_('With status:'), statuses) self.status_filter.select(None) self.add_filter(self.status_filter, columns=['status'], position=SearchFilterPosition.TOP)
def create_sellable_filter(self, label=None): from stoqlib.domain.sellable import Sellable items = [(desc, status) for status, desc in Sellable.statuses.items()] items.insert(0, (_(u"Any"), None)) if label is None: label = _('With status:') sellable_filter = ComboSearchFilter(label, items) # Select status available by default sellable_filter.select(Sellable.STATUS_AVAILABLE) return sellable_filter
def create_filters(self): # Disable string search right now, until we use a proper Viewable # for this application self.search.disable_search_entry() self.branch_filter = ComboSearchFilter(_('Show inventories at:'), self._get_branches_for_filter()) current = api.get_current_branch(self.store) self.branch_filter.select(current.id) self.add_filter(self.branch_filter, SearchFilterPosition.TOP, columns=["branch_id"])
class ProductionItemsSearch(SearchDialog): title = _(u'Production Items') search_spec = ProductionItemView size = (750, 450) # # SearchDialog # def create_filters(self): self.set_text_field_columns(['description', 'order_identifier_str']) statuses = [(desc, i) for i, desc in ProductionOrder.statuses.items()] statuses.insert(0, (_(u'Any'), None)) self.status_filter = ComboSearchFilter(_('order status:'), statuses) self.status_filter.select(ProductionOrder.ORDER_PRODUCING) self.add_filter(self.status_filter, columns=['order_status'], position=SearchFilterPosition.TOP) def get_columns(self): return [ IdentifierColumn('order_identifier', title=_(u"Order #"), sorted=True), SearchColumn('category_description', title=_(u'Category'), data_type=str), SearchColumn('description', title=_(u'Description'), data_type=str, expand=True), SearchColumn('unit_description', title=_(u'Unit'), data_type=str), SearchColumn('quantity', title=_(u'To Produce'), data_type=Decimal), SearchColumn('produced', title=_(u'Produced'), data_type=Decimal), SearchColumn('lost', title=_(u'Lost'), data_type=Decimal, visible=False) ] # # Callbacks # def on_print_button_clicked(self, widget): print_report( ProductionItemReport, self.results, list(self.results), filters=self.search.get_search_filters(), )
def create_filters(self): self.set_text_field_columns(['description']) self.executer.add_query_callback(self._get_query) # Status items = [(v, k) for k, v in Till.statuses.items() if k != Till.STATUS_PENDING] items.insert(0, (_(u'Any'), None)) status_filter = ComboSearchFilter(_(u'Show entries of type'), items) status_filter.select(Till.STATUS_OPEN) self.add_filter(status_filter, position=SearchFilterPosition.TOP, columns=['status'])
def create_filters(self): self.set_text_field_columns(['equipment', 'client_name']) self.main_filter = ComboSearchFilter(_('Show'), []) combo = self.main_filter.combo combo.color_attribute = 'color' combo.set_row_separator_func(self._on_main_filter__row_separator_func) self.executer.add_filter_query_callback( self.main_filter, self._on_main_filter__query_callback) self.add_filter(self.main_filter, SearchFilterPosition.TOP) self._update_filters()
def create_main_filter(self): self.main_filter = ComboSearchFilter(_('Show'), []) combo = self.main_filter.combo combo.color_attribute = 'color' combo.set_row_separator_func(self._on_main_filter__row_separator_func) self._update_filter_items() executer = self.search.get_query_executer() executer.add_filter_query_callback(self.main_filter, self._create_main_query) self.add_filter(self.main_filter, SearchFilterPosition.TOP) self.create_branch_filter(column=self.search_spec.branch_id)
class ProductionItemsSearch(ProductSearch): title = _(u'Production Items') search_spec = ProductionItemView report_class = ProductionItemReport csv_data = None has_print_price_button = False text_field_columns = [ ProductionItemView.description, ProductionItemView.order_identifier_str ] def __init__(self, store, hide_footer=True, hide_toolbar=True): ProductSearch.__init__(self, store, hide_footer=hide_footer, hide_toolbar=hide_toolbar) # # SearchDialog # def create_filters(self): statuses = [(desc, i) for i, desc in ProductionOrder.statuses.items()] statuses.insert(0, (_(u'Any'), None)) self.status_filter = ComboSearchFilter(_('order status:'), statuses) self.status_filter.select(ProductionOrder.ORDER_PRODUCING) self.add_filter(self.status_filter, columns=['order_status'], position=SearchFilterPosition.TOP) def get_columns(self): return [ IdentifierColumn('order_identifier', title=_(u"Order #"), sorted=True), SearchColumn('category_description', title=_(u'Category'), data_type=str), SearchColumn('description', title=_(u'Description'), data_type=str, expand=True), SearchColumn('unit_description', title=_(u'Unit'), data_type=str), SearchColumn('quantity', title=_(u'To Produce'), data_type=Decimal), SearchColumn('produced', title=_(u'Produced'), data_type=Decimal), SearchColumn('lost', title=_(u'Lost'), data_type=Decimal, visible=False) ]
def create_branch_filter(self, label=None): from stoqlib.domain.person import Branch branches = Branch.get_active_branches(self.store) items = [(b.get_description(), b.id) for b in branches] items.insert(0, (_("Any"), None)) if not label: label = _("Branch:") branch_filter = ComboSearchFilter(label, items) current = api.get_current_branch(self.store) if current: branch_filter.select(current.id) return branch_filter
def create_payment_filter(self, label=None): from stoqlib.domain.payment.method import PaymentMethod methods = PaymentMethod.get_active_methods(self.store) items = [(_('Any'), None)] for method in methods: if method.method_name == 'multiple': continue items.append((method.description, method)) if not label: label = _('Method:') payment_filter = ComboSearchFilter(label, items) payment_filter.select(None) return payment_filter
def create_filters(self): self.set_text_field_columns(['supplier_name', 'identifier_str', 'invoice_numbers']) self.status_filter = ComboSearchFilter(_('Show orders'), self._get_status_values()) self.add_filter(self.status_filter, SearchFilterPosition.TOP, ['status']) self.branch_filter = self.create_branch_filter(column=PurchaseOrderView.branch_id)
def add_filter_by_attribute(self, attr, title, data_type, valid_values=None, callback=None, use_having=False): """Add a filter accordingly to the attributes specified :param attr: attribute that will be filtered. This can be either the name of the attribute or the attribute itself. :param title: the title of the filter that will be visible in the interface :param data_type: the attribute type (str, bool, decimal, etc) :param callback: the callback function that will be triggered :param use_having: use having expression in the query """ if data_type is not bool: title += ':' if data_type == datetime.date: filter = DateSearchFilter(title) if valid_values: filter.clear_options() filter.add_custom_options() for opt in valid_values: filter.add_option(opt) filter.select(valid_values[0]) elif (data_type == decimal.Decimal or data_type == int or data_type == currency): filter = NumberSearchFilter(title) if data_type != int: filter.set_digits(2) elif data_type == str: if valid_values: filter = ComboSearchFilter(title, valid_values) else: filter = StringSearchFilter(title) filter.enable_advanced() elif data_type == bool: filter = BoolSearchFilter(title) else: raise NotImplementedError(title, data_type) filter.set_removable() self.add_filter(filter, columns=[attr], callback=callback, use_having=use_having) if data_type is not bool: label = filter.get_title_label() label.set_alignment(1.0, 0.5) self.label_group.add_widget(label) combo = filter.get_mode_combo() if combo: self.combo_group.add_widget(combo) return filter
def create_filters(self): self.executer.set_query(self._query) self.set_text_field_columns(['description']) self.branch_filter = ComboSearchFilter( _('Show by:'), self._get_branches()) self.branch_filter.select(api.get_current_branch(self.store)) self.add_filter(self.branch_filter, position=SearchFilterPosition.TOP)
def create_filters(self): self.set_text_field_columns(['client_name', 'salesperson_name']) items = [(value, key) for key, value in Sale.statuses.items()] items.insert(0, (_('Any'), None)) status_filter = ComboSearchFilter(_('Show sales with status'), items) self.add_filter(status_filter, SearchFilterPosition.TOP, ['status'])
def create_filters(self): self.search.set_query(self._query) self.set_text_field_columns(["description", "code", "barcode", "category_description", "manufacturer"]) branches = Branch.get_active_branches(self.store) self.branch_filter = ComboSearchFilter(_("Show by:"), api.for_combo(branches, empty=_("All branches"))) self.branch_filter.select(api.get_current_branch(self.store)) self.add_filter(self.branch_filter, position=SearchFilterPosition.TOP)
def create_filters(self): self.set_text_field_columns(['sellable', 'description', 'client_name', 'identifier_str', 'sale_identifier_str']) self.main_filter = ComboSearchFilter(_('Show'), []) combo = self.main_filter.combo combo.color_attribute = 'color' combo.set_row_separator_func(self._on_main_filter__row_separator_func) self.add_filter(self.main_filter, SearchFilterPosition.TOP, callback=self._get_main_query) self.create_branch_filter(column=[WorkOrder.branch_id, WorkOrder.current_branch_id]) self._update_filters()
def create_filters(self): # Category categories = self.store.find(SellableCategory) items = api.for_combo(categories, attr='full_description') items.insert(0, (_('Any'), None)) category_filter = ComboSearchFilter(_('Category'), items) self.add_filter(category_filter, columns=[Sellable.category])
def create_branch_filter(self, label=None): from stoqlib.domain.person import Branch current = api.get_current_branch(self.store) if api.sysparam.get_bool('SYNCHRONIZED_MODE'): items = [(current.get_description(), current.id)] else: branches = Branch.get_active_branches(self.store) items = [(b.get_description(), b.id) for b in branches] items.insert(0, (_("Any"), None)) if not label: label = _('Branch:') branch_filter = ComboSearchFilter(label, items) if current: branch_filter.select(current.id) return branch_filter
def create_filters(self): self.set_text_field_columns(["description", "order_identifier_str"]) statuses = [(desc, i) for i, desc in ProductionOrder.statuses.items()] statuses.insert(0, (_(u"Any"), None)) self.status_filter = ComboSearchFilter(_("order status:"), statuses) self.status_filter.select(ProductionOrder.ORDER_PRODUCING) self.add_filter(self.status_filter, columns=["order_status"], position=SearchFilterPosition.TOP)
def create_filters(self): self.search.set_query(self._query) self.set_text_field_columns(['description']) branches = Branch.get_active_branches(self.store) self.branch_filter = ComboSearchFilter( _('Show by:'), api.for_combo(branches, empty=_("All branches"))) self.branch_filter.select(api.get_current_branch(self.store)) self.add_filter(self.branch_filter, position=SearchFilterPosition.TOP)
def create_branch_filter(self, label=None): from stoqlib.domain.person import Branch branches = Branch.get_active_branches(self.store) items = [(b.person.name, b.id) for b in branches] # if not items: # raise ValueError('You should have at least one branch at ' # 'this point') items.insert(0, (_("Any"), None)) if not label: label = _('Branch:') branch_filter = ComboSearchFilter(label, items) current = api.get_current_branch(self.store) if current: branch_filter.select(current.id) return branch_filter
def create_filters(self): self.search.set_query(self._query_executer) self.set_text_field_columns(['client_name', 'salesperson_name']) self.status_filter = ComboSearchFilter(_(u"Show orders"), self._get_status_values()) self.status_filter.select(Sale.STATUS_CONFIRMED) self.add_filter(self.status_filter, position=SearchFilterPosition.TOP, columns=['status'])
def create_filters(self): statuses = [(v, k) for k, v in Client.statuses.items()] statuses.insert(0, (_('Any'), None)) status_filter = ComboSearchFilter(_('Show clients with status'), statuses) status_filter.select(None) self.add_filter(status_filter, SearchFilterPosition.TOP, ['status']) if self._birth_date: birthday_filter = self.search.add_filter_by_attribute( 'birth_date', _('Birthday'), datetime.date, callback=self.birthday_search) # FIXME: The fifth position is a search by day. This is done # elsewhere too but we should not hardcode it. Try to # find a better solution in the future and fix everything birthday_filter.mode.select_item_by_position(5) birthday_filter.start_date.set_date(self._birth_date) self.search.refresh()
def create_filters(self): self.set_text_field_columns(['description', 'barcode', 'category_description']) self.search.set_query(self.executer_query) # Branch branch_filter = self.create_branch_filter(_('In branch:')) self.add_filter(branch_filter, columns=[]) self.branch_filter = branch_filter # Status statuses = [(desc, id) for id, desc in Sellable.statuses.items()] statuses.insert(0, (_('Any'), None)) status_filter = ComboSearchFilter(_('with status:'), statuses) status_filter.select(None) self.add_filter(status_filter, columns=['status'], position=SearchFilterPosition.TOP) self.status_filter = status_filter
class ProductionItemsSearch(SearchDialog): title = _(u'Production Items') search_table = ProductionItemView size = (750, 450) # # SearchDialog # def create_filters(self): self.set_text_field_columns(['description']) statuses = [(desc, i) for i, desc in ProductionOrder.statuses.items()] statuses.insert(0, (_(u'Any'), None)) self.status_filter = ComboSearchFilter(_('order status:'), statuses) self.status_filter.select(ProductionOrder.ORDER_PRODUCING) self.add_filter(self.status_filter, columns=['order_status'], position=SearchFilterPosition.TOP) def get_columns(self): return [IdentifierColumn('order_identifier', title=_(u"Order #"), sorted=True), SearchColumn('category_description', title=_(u'Category'), data_type=str), SearchColumn('description', title=_(u'Description'), data_type=str, expand=True), SearchColumn('unit_description', title=_(u'Unit'), data_type=str), SearchColumn('quantity', title=_(u'To Produce'), data_type=Decimal), SearchColumn('produced', title=_(u'Produced'), data_type=Decimal), SearchColumn('lost', title=_(u'Lost'), data_type=Decimal, visible=False)] # # Callbacks # def on_print_button_clicked(self, widget): print_report(ProductionItemReport, self.results, list(self.results), filters=self.search.get_search_filters(), )