Ejemplo 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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    def __init__(self, parent):
        super().__init__(parent,
                         useExpansionColumn=False,
                         typingSearchesSortColumn=False,
                         style=wx.LC_VRULES | wx.BORDER_NONE)
        self.AddNamedImages('finished', images.todo_finished.GetBitmap())
        self.AddNamedImages('not_finished', images.transparent.GetBitmap())
        group_title_format = "%(title)s (%(count)d)"

        self.SetColumns([
            ColumnDefn(title=_("todo.title"),
                       width=200,
                       valueGetter='title',
                       groupKeyGetter='group',
                       groupKeyConverter=self._display_content_group_key,
                       groupTitleSingleItem=group_title_format,
                       groupTitlePluralItems=group_title_format),
            ColumnDefn(title=_("todo.content"),
                       width=200,
                       valueGetter='content',
                       groupKeyGetter='group',
                       groupKeyConverter=self._display_content_group_key,
                       groupTitleSingleItem=group_title_format,
                       groupTitlePluralItems=group_title_format),
            ColumnDefn(title=_("todo.remark"),
                       width=300,
                       valueGetter='remark',
                       groupKeyGetter=self._get_remark_group_key,
                       isSpaceFilling=True,
                       groupTitleSingleItem=group_title_format,
                       groupTitlePluralItems=group_title_format),
            ColumnDefn(title=_("todo.finished_at"),
                       valueGetter=self._get_finished_at_value,
                       fixedWidth=150,
                       groupKeyGetter=self._get_finished_at_group_key,
                       groupTitleSingleItem=group_title_format,
                       groupTitlePluralItems=group_title_format),
        ])
        self.SetEmptyListMsg(_("todo_list.no_task"))
        self.CreateCheckStateColumn()

        self.checkStateColumn.checkStateGetter = lambda model: model.is_finished

        self.evenRowsBackColor = wx.Colour(245, 245, 245)
        self.oddRowsBackColor = wx.Colour(255, 255, 255)

        self.text_filter = self.TextFilter(self.columns)
        self.status_filter = self.StatusFilter()
        self.filter = Filter.Chain(self.status_filter, self.text_filter)

        self.rowFormatter = self._row_formatter

        self.Bind(OLVEvent.EVT_ITEM_CHECKED, self._on_item_checked)
Ejemplo n.º 4
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) :
         exec("filtre = Filter.Predicate(lambda track: %s)" % texteFiltre)
         listeFiltres.append(filtre)
         
     self.SetFilter(Filter.Chain(*listeFiltres))
     self.RepopulateList()
     self.Refresh() 
     self.OnCheck(None) 
Ejemplo n.º 5
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()