コード例 #1
0
class DialogAjoutFournisseur(wx.Dialog):
    def __init__(self, adherent):
        wx.Dialog.__init__(self,
                           None,
                           -1,
                           title=u"Ajouter un fournisseur",
                           pos=wx.DefaultPosition,
                           size=wx.DefaultSize,
                           style=wx.DEFAULT_DIALOG_STYLE)

        self.adherent = adherent

        self.liste_fournisseurs = ObjectListView(
            self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL)

        self.liste_fournisseurs.SetColumns(
            [ColumnDefn("Fournisseur", "left", -1, "nom", minimumWidth=100)])

        self.liste_fournisseurs.Bind(wx.EVT_LIST_ITEM_ACTIVATED,
                                     self.OnClickFournisseur)

        self.__set_properties()
        self.__remplissage_liste()
        self.__do_layout()

    def __set_properties(self):
        self.SetMinSize((200, 300))
        self.liste_fournisseurs.SortBy(0)

    def __remplissage_liste(self):
        try:
            requete = Fournisseur.select().where(
                ~(Fournisseur.id << self.adherent.fournisseurs))
            self.liste_fournisseurs.SetObjects([f for f in requete])

            #On dimentionne le dialog selon la largeur des colonnes
            largeur = 0
            for num_colonne in range(1):
                largeur += self.liste_fournisseurs.GetColumnWidth(num_colonne)

            self.liste_fournisseurs.SetMinSize((largeur + 20, 300))

        except BaseException as ex:
            print ex

    def __do_layout(self):
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.liste_fournisseurs, 1, wx.ALL | wx.EXPAND, 10)
        self.SetSizer(sizer)
        sizer.Fit(self)
        self.Layout()

    def GetFournisseur(self):
        return self.liste_fournisseurs.GetSelectedObject()

    def OnClickFournisseur(self, event):
        self.EndModal(wx.ID_OK)
コード例 #2
0
class DialogAjoutProduit(wx.Dialog):
    def __init__(self, inventaire):
        wx.Dialog.__init__(self, None, -1, title=u"Ajouter un produit", pos=wx.DefaultPosition, size=wx.DefaultSize, style=wx.DEFAULT_DIALOG_STYLE)

        self.inventaire = inventaire

        self.search_nom = wx.SearchCtrl(self, -1, "")
        self.liste_produits = ObjectListView(self, -1, style=wx.LC_REPORT|wx.SUNKEN_BORDER|wx.LC_SINGLE_SEL)

        self.liste_produits.SetColumns([
            ColumnDefn("Ref GASE", "left", -1, "ref_GASE", fixedWidth=90),
            ColumnDefn("Nom", "left", -1, "nom"),
            ColumnDefn("Fournisseur", "left", -1, "fournisseur.nom", minimumWidth=100)
        ])

        self.search_nom.Bind(wx.EVT_TEXT, self.OnFilter)
        self.liste_produits.Bind(wx.EVT_LIST_ITEM_ACTIVATED, self.OnClickProduit)

        self.__set_properties()
        self.__remplissage_liste()
        self.__do_layout()
        # end wxGlade

    def __set_properties(self):
        self.SetMinSize((400,300))
        self.search_nom.SetDescriptiveText("Recherche sur le nom")
    
    def __remplissage_liste(self):
        try:
            requete = Produit.select().where(~(Produit.pk << self.inventaire.produits))
            self.liste_produits.SetObjects([p for p in requete])
            
            #On dimentionne le dialog selon la largeur des colonnes
            largeur = 0
            for num_colonne in range(3) :
                largeur += self.liste_produits.GetColumnWidth(num_colonne)
             
            self.liste_produits.SetMinSize((largeur+20,300))
            
        except BaseException as ex:
            print ex

    def __do_layout(self):
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.search_nom, 0, wx.LEFT|wx.RIGHT|wx.TOP|wx.EXPAND, 10)
        sizer.Add(self.liste_produits, 1, wx.ALL|wx.EXPAND, 10)
        self.SetSizer(sizer)
        sizer.Fit(self)
        self.Layout()

    def GetProduit(self):
        return self.liste_produits.GetSelectedObject()

    def OnClickProduit(self, event):
        self.EndModal(wx.ID_OK)
        
    def OnFilter(self, event):
        filtre_texte = Filter.TextSearch(self.liste_produits, text=self.search_nom.GetValue())
        self.liste_produits.SetFilter(filtre_texte)
        self.liste_produits.RepopulateList()
        event.Skip()
コード例 #3
0
class DialogAjoutReferent(wx.Dialog):
    def __init__(self, fournisseur):
        wx.Dialog.__init__(self,
                           None,
                           -1,
                           title=u"Ajouter un référent",
                           pos=wx.DefaultPosition,
                           size=wx.DefaultSize,
                           style=wx.DEFAULT_DIALOG_STYLE)

        self.fournisseur = fournisseur
        """ Attention, ici le référent est un objet Adherent"""

        self.liste_referents = ObjectListView(
            self, -1, style=wx.LC_REPORT | wx.SUNKEN_BORDER | wx.LC_SINGLE_SEL)

        self.liste_referents.SetColumns([
            ColumnDefn("Nom", "left", -1, "nom", minimumWidth=100),
            ColumnDefn(u"Prénom",
                       "left",
                       -1,
                       "prenom",
                       minimumWidth=100,
                       isSpaceFilling=True)
        ])

        self.liste_referents.Bind(wx.EVT_LIST_ITEM_ACTIVATED,
                                  self.OnClickReferent)

        self.__set_properties()
        self.__remplissage_liste()
        self.__do_layout()

    def __set_properties(self):
        self.SetMinSize((200, 300))
        self.liste_referents.SortBy(0)

    def __remplissage_liste(self):
        try:
            requete = Adherent.select().where(
                ~(Adherent.id << self.fournisseur.referents))
            self.liste_referents.SetObjects([a for a in requete])

            #On dimentionne le dialog selon la largeur des colonnes
            largeur = 0
            for num_colonne in range(2):
                largeur += self.liste_referents.GetColumnWidth(num_colonne)

            self.liste_referents.SetMinSize((largeur + 20, 300))

        except BaseException as ex:
            print ex

    def __do_layout(self):
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self.liste_referents, 1, wx.ALL | wx.EXPAND, 10)
        self.SetSizer(sizer)
        sizer.Fit(self)
        self.Layout()

    def GetReferent(self):
        return self.liste_referents.GetSelectedObject()

    def OnClickReferent(self, event):
        self.EndModal(wx.ID_OK)