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)
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()
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)