Esempio n. 1
0
    def Filtrer(self, texteRecherche=None):
        listeFiltres = []

        # Filtre barre de recherche
        if texteRecherche != None:
            filtre = Filter.TextSearch(self,
                                       self.columns[0:self.GetColumnCount()])
            filtre.SetText(texteRecherche)
            listeFiltres.append(filtre)

        # Filtres de colonnes
        # for texteFiltre in self.formatageFiltres(self.listeFiltresColonnes) :
        #     filtre = Filter.Predicate(lambda track: eval(texteFiltre))
        #     listeFiltres.append(filtre)

        filtres_colonnes = self.formatageFiltres(self.listeFiltresColonnes)
        if len(filtres_colonnes) > 0:
            texteFiltre = u" and ".join(filtres_colonnes)
            filtre = Filter.Predicate(lambda track: eval(texteFiltre))
            listeFiltres.append(filtre)

        self.SetFilter(Filter.Chain(*listeFiltres))
        self.RepopulateList()
        self.Refresh()
        self.OnCheck(None)
    def testFilteringChain(self):
        filterMale = Filter.Predicate(lambda person: person.sex == "Male")
        filterContainsF = Filter.TextSearch(self.objectListView, text="f")
        self.objectListView.SetFilter(Filter.Chain(filterMale,
                                                   filterContainsF))
        self.objectListView.SetObjects(self.persons)
        self.assertEqual(len(self.objectListView.GetFilteredObjects()), 1)
        self.assertEqual(self.objectListView.GetFilteredObjects()[0].name,
                         "Eric Fandango")

        self.objectListView.SetFilter(None)
    def testFilteringPredicate(self):
        males = [x for x in self.persons if x.sex == "Male"]
        self.objectListView.SetFilter(
            Filter.Predicate(lambda person: person.sex == "Male"))
        self.objectListView.SetSortColumn(self.personColumns[-1])
        self.objectListView.SetObjects(self.persons)

        self.assertEqual(set(self.objectListView.GetFilteredObjects()),
                         set(males))

        self.objectListView.SetFilter(None)
Esempio n. 4
0
 def __set_filter(self):
     _filter = Filter.Chain(
         Filter.Predicate(lambda item: item._level in self.__filters))
     self.list_view.SetFilter(Filter.Chain(_filter))
     self.list_view.RepopulateList()