コード例 #1
0
 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'])
コード例 #2
0
 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])
コード例 #3
0
    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'])
コード例 #4
0
    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
コード例 #5
0
ファイル: stock.py プロジェクト: rosalin/stoq
 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)
コード例 #6
0
ファイル: productionsearch.py プロジェクト: 5l1v3r1/stoq-1
 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)
コード例 #7
0
 def create_filters(self):
     self.search.set_query(self._query_executer)
     self.set_text_field_columns(['client_name', 'salesperson_name',
                                  'identifier_str'])
     self.status_filter = ComboSearchFilter(_(u"Show orders"),
                                            self._get_status_values())
     self.add_filter(self.status_filter, position=SearchFilterPosition.TOP,
                     columns=['status'])
コード例 #8
0
    def create_salesperson_filter(self, label=None):
        from stoqlib.domain.person import SalesPerson
        items = SalesPerson.get_active_items(self.store)
        items.insert(0, (_("Any"), None))

        if not label:
            label = _('Salesperson:')
        return ComboSearchFilter(label, items)
コード例 #9
0
    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'])
コード例 #10
0
 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)
コード例 #11
0
 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)
コード例 #12
0
    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'])
コード例 #13
0
ファイル: personsearch.py プロジェクト: rosalin/stoq
 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'])
コード例 #14
0
 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)
コード例 #15
0
 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())
     self.add_filter(self.branch_filter,
                     position=SearchFilterPosition.TOP,
                     columns=["branch_id"])
コード例 #16
0
    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()
コード例 #17
0
 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'])
コード例 #18
0
 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)
コード例 #19
0
    def create_filters(self):
        self.search.set_query(self.executer_query)

        # 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, position=SearchFilterPosition.TOP)
        self.category_filter = category_filter
コード例 #20
0
ファイル: accounts.py プロジェクト: tmaxter/stoq
    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)
コード例 #21
0
 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)
コード例 #22
0
ファイル: commissionsearch.py プロジェクト: rosalin/stoq
    def create_filters(self):
        self.set_text_field_columns(['salesperson_name', 'identifier_str'])

        persons = [p.person.name for p in self.store.find(SalesPerson)]
        persons = list(zip(persons, persons))
        persons.insert(0, (_('Anyone'), None))
        salesperson_filter = ComboSearchFilter(_('Sold by:'), persons)
        self.add_filter(salesperson_filter, SearchFilterPosition.TOP,
                        ['salesperson_name'])
        self._salesperson_filter = salesperson_filter
コード例 #23
0
 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)
コード例 #24
0
ファイル: deliverysearch.py プロジェクト: rosalin/stoq
    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)
コード例 #25
0
ファイル: fiscalsearch.py プロジェクト: rosalin/stoq
    def create_filters(self):
        self.set_text_field_columns([])

        self.branch_filter = self.create_branch_filter(_('In branch:'))
        self.add_filter(self.branch_filter, columns=['branch_id'])

        items = [(v, k)
                 for k, v in fiscal_book_entries.items()]
        self.entry_type = ComboSearchFilter(_('Show entries of type'), items)
        self.add_filter(self.entry_type, callback=self._get_entry_type_query,
                        position=SearchFilterPosition.TOP)
コード例 #26
0
    def create_provider_filter(self, label=None):
        from stoqlib.domain.payment.card import CreditProvider
        providers = CreditProvider.get_card_providers(self.store)
        items = [(p.short_name, p) for p in providers]
        items.insert(0, (_("Any"), None))

        if not label:
            label = _('Provider:')
        provider_filter = ComboSearchFilter(label, items)

        return provider_filter
コード例 #27
0
    def create_filters(self):
        self.executer.set_query(self._query)
        self.set_text_field_columns(['client_name', 'salesperson_name'])

        status_filter = ComboSearchFilter(_('Show sales'),
                                          self._get_filter_options())
        status_filter.combo.set_row_separator_func(
            lambda model, titer: model[titer][0] == 'sep')

        self.executer.add_filter_query_callback(status_filter,
                                                self._get_status_query)
        self.add_filter(status_filter, position=SearchFilterPosition.TOP)
コード例 #28
0
    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
コード例 #29
0
ファイル: accounts.py プロジェクト: 5l1v3r1/stoq-1
    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)
コード例 #30
0
    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'])