Example #1
0
    def __init__(self, parent):
        wx.SearchCtrl.__init__(self,
                               parent,
                               size=(-1, -1),
                               style=wx.TE_PROCESS_ENTER)
        self.parent = parent
        self.rechercheEnCours = False

        self.SetDescriptiveText(_(u"Rechercher un vaccin..."))
        self.ShowSearchButton(True)

        self.listView = self.parent.ctrl_listview
        nbreColonnes = self.listView.GetColumnCount()
        self.listView.SetFilter(
            Filter.TextSearch(self.listView,
                              self.listView.columns[0:nbreColonnes]))

        self.SetCancelBitmap(
            wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Interdit.png"),
                      wx.BITMAP_TYPE_PNG))
        self.SetSearchBitmap(
            wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Loupe.png"),
                      wx.BITMAP_TYPE_PNG))

        self.Bind(wx.EVT_SEARCHCTRL_SEARCH_BTN, self.OnSearch)
        self.Bind(wx.EVT_SEARCHCTRL_CANCEL_BTN, self.OnCancel)
        self.Bind(wx.EVT_TEXT_ENTER, self.OnDoSearch)
        self.Bind(wx.EVT_TEXT, self.OnDoSearch)
Example #2
0
    def __init__(self, parent, historique=False):
        wx.SearchCtrl.__init__(self, parent, size=(-1, -1), style=wx.TE_PROCESS_ENTER)
        self.parent = parent
        self.historique = historique
        self.ouvrir_fiche = False
        
        self.SetDescriptiveText(_(u"Rechercher un individu..."))
        self.ShowSearchButton(True)
        
        self.listView = self.parent.ctrl_listview
        nbreColonnes = self.listView.GetColumnCount()
        self.listView.SetFilter(Filter.TextSearch(self.listView, self.listView.columns[0:nbreColonnes]))
        
        if self.historique == True :
            self.SetMenu(self.MakeMenu())
        
        self.SetCancelBitmap(wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Interdit.png"), wx.BITMAP_TYPE_PNG))
        self.SetSearchBitmap(wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Loupe.png"), wx.BITMAP_TYPE_PNG))
        self.SetSearchMenuBitmap(wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Loupe_et_menu.png"), wx.BITMAP_TYPE_PNG))

        self.timer = wx.Timer(self)
        self.Bind(wx.EVT_TIMER, self.Recherche, self.timer)

        self.Bind(wx.EVT_KEY_DOWN, self.OnKeyDown)
        self.Bind(wx.EVT_SEARCHCTRL_SEARCH_BTN, self.OnSearch)
        self.Bind(wx.EVT_SEARCHCTRL_CANCEL_BTN, self.OnCancel)
        self.Bind(wx.EVT_TEXT_ENTER, self.OnEnter)
        self.Bind(wx.EVT_TEXT, self.OnText)
        
        # HACK pour avoir le EVT_CHAR
        for child in self.GetChildren(): 
            if isinstance(child, wx.TextCtrl): 
                child.Bind(wx.EVT_CHAR, self.OnKeyDown) 
                break 
Example #3
0
    def initOLV(self, desc, coldesc, table, distinct=None):
        """
        :param desc: the list title, e.g. _('Countries')
        :param coldesc: a dict of column name and column description
        :param table: the table name as a string e.g. 'Country_LV'
        :param distinct: a list of joins, e.g.
        [db.Recipeit, (db.Recipe, db.Recipe.recipeid==db.Recipeit.fk_recipeid)]
        """

        self.EmptyListMsg = (_('No %s are found for the entered search criteria') % desc)
        self.listMinMenuDesc = (_('Preview - %s List - minimal') % desc)
        self.listNormMenuDesc = (_('Preview - %s List - normal') % desc)
        self.listMinReportDesc = (_('%s - list') % desc)
        self.listNormReportDesc = (_('%s - list') % desc)

        self.tableName = table
        ds = wx.GetApp().session
        with no_autoflush(ds):
            if distinct:
                joinedQuery = ds.query(getattr(db, self.tableName))
                for item in distinct:
                    joinedQuery = joinedQuery.join(item)

                self.setOlvQuery(joinedQuery.distinct())
            else:
                self.setOlvQuery(ds.query(getattr(db, self.tableName)))

        cols = self.setColumnDef(coldesc, self.tableName)
        self.initObjectListView(None, cols)
        self.setGroupCols(0)

        xCols = len(cols)
        olvList = self.getList()
        olvList.SetFilter(Filter.TextSearch(olvList, olvList.columns[0:xCols]))
Example #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) :
        #     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)
Example #5
0
 def __init__(self, parent, numColonne):
     wx.TextCtrl.__init__(self, parent, -1, "", size=(-1,-1), style=wx.TE_PROCESS_ENTER)
     self.parent = parent
     self.listView = self.parent.ctrl_propositions
     nbreColonnes = self.listView.GetColumnCount()
     self.listView.SetFilter(Filter.TextSearch(self.listView, self.listView.columns[1:1]))
     
     self.Bind(wx.EVT_TEXT, self.OnDoSearch)
    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 testFilteringTextSearch(self):
        containsF = [
            x for x in self.persons
            if "f" in x.sex.lower() or "f" in x.name.lower()
        ]

        self.objectListView.SetFilter(
            Filter.TextSearch(self.objectListView, text="f"))
        self.objectListView.SetObjects(self.persons)
        self.assertEqual(set(self.objectListView.GetFilteredObjects()),
                         set(containsF))

        self.objectListView.SetFilter(None)
Example #8
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)