def InitObjectListView(self): # Création du imageList for categorie, civilites in Civilites.LISTE_CIVILITES: for IDcivilite, CiviliteLong, CiviliteAbrege, nomImage, genre in civilites: indexImg = self.AddNamedImages( nomImage, wx.Bitmap( Chemins.GetStaticPath("Images/16x16/%s" % nomImage), wx.BITMAP_TYPE_PNG)) self.imgVert = self.AddNamedImages( "vert", wx.Bitmap( Chemins.GetStaticPath("Images/16x16/Ventilation_vert.png"), wx.BITMAP_TYPE_PNG)) self.imgRouge = self.AddNamedImages( "rouge", wx.Bitmap( Chemins.GetStaticPath("Images/16x16/Ventilation_rouge.png"), wx.BITMAP_TYPE_PNG)) self.imgOrange = self.AddNamedImages( "orange", wx.Bitmap( Chemins.GetStaticPath("Images/16x16/Ventilation_orange.png"), wx.BITMAP_TYPE_PNG)) def GetImageCivilite(track): return track.nomImage def GetImageVentilation(track): if track.totalFacture == track.totalRegle: return self.imgVert if track.totalRegle == FloatToDecimal( 0.0) or track.totalRegle == None: return self.imgRouge if track.totalRegle < track.totalFacture: return self.imgOrange return self.imgRouge def FormateDate(dateDD): if dateDD == None: return "" return UTILS_Dates.DateEngFr(str(dateDD)) def FormateMontant(montant): if montant == None or montant == "": return "" return u"%.2f %s" % (montant, SYMBOLE) def FormateSolde(montant): if montant == None: FloatToDecimal(0.0) if montant == FloatToDecimal(0.0): return u"%.2f %s" % (montant, SYMBOLE) elif montant > FloatToDecimal(0.0): return u"- %.2f %s" % (montant, SYMBOLE) else: return u"+ %.2f %s" % (montant, SYMBOLE) def FormateAge(age): if age == None: return "" return _(u"%d ans") % age def rowFormatter(listItem, track): if track.valide == False: listItem.SetTextColour(wx.Colour(150, 150, 150)) # Couleur en alternance des lignes self.oddRowsBackColor = UTILS_Interface.GetValeur( "couleur_tres_claire", wx.Colour(240, 251, 237)) self.evenRowsBackColor = "#FFFFFF" # Vert # Création des colonnes listeColonnes = [] for dictChamp in LISTE_CHAMPS: if dictChamp["afficher"] == True: # stringConverter if "stringConverter" in dictChamp: stringConverter = dictChamp["stringConverter"] if stringConverter == "date": stringConverter = FormateDate elif stringConverter == "age": stringConverter = FormateAge elif stringConverter == "montant": stringConverter = FormateMontant elif stringConverter == "solde": stringConverter = FormateSolde else: stringConverter = None else: stringConverter = None # Image Getter if "imageGetter" in dictChamp: imageGetter = dictChamp["imageGetter"] if imageGetter == "civilite": imageGetter = GetImageCivilite elif imageGetter == "ventilation": imageGetter = GetImageVentilation else: imageGetter = None else: imageGetter = None # Création de la colonne colonne = ColumnDefn(dictChamp["label"], dictChamp["align"], dictChamp["largeur"], dictChamp["code"], typeDonnee=dictChamp["typeDonnee"], stringConverter=stringConverter, imageGetter=imageGetter) listeColonnes.append(colonne) # Ajout des questions des questionnaires listeColonnes.extend( UTILS_Questionnaires.GetColonnesForOL(self.liste_questions)) # Ajout des infos individus listeChamps = UTILS_Infos_individus.GetNomsChampsPossibles( mode="individu+famille") for titre, exemple, code in listeChamps: if u"n°" not in titre and "_x_" not in code: typeDonnee = UTILS_Infos_individus.GetTypeChamp(code) code = code.replace("{", "").replace("}", "") listeColonnes.append( ColumnDefn(titre, "left", 100, code, typeDonnee=typeDonnee, visible=False)) #self.SetColumns(listeColonnes) self.SetColumns2(colonnes=listeColonnes, nomListe="OL_Liste_inscriptions") # Regroupement if self.regroupement != None: #self.SetColonneTri(self.regroupement) self.SetAlwaysGroupByColumn(self.regroupement) self.SetShowGroups(True) self.useExpansionColumn = False else: self.SetShowGroups(False) self.useExpansionColumn = False # Case à cocher if self.checkColonne == True: self.CreateCheckStateColumn(0) if len(self.columns) > 0: self.SetSortColumn(self.columns[1]) else: if len(self.columns) > 0: self.SetSortColumn(self.columns[0]) self.SetShowItemCounts(True) self.SetEmptyListMsg(_(u"Aucune inscription")) self.SetEmptyListMsgFont(wx.FFont(11, wx.DEFAULT, False, "Tekton")) self.SetObjects(self.donnees)
def InitObjectListView(self): # Couleur en alternance des lignes self.oddRowsBackColor = UTILS_Interface.GetValeur("couleur_tres_claire", wx.Colour(240, 251, 237)) self.evenRowsBackColor = wx.Colour(255, 255, 255) self.useExpansionColumn = True # Préparation de la listeImages imgOk = self.AddNamedImages("ok", wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Ok.png"), wx.BITMAP_TYPE_PNG)) imgPasOk = self.AddNamedImages("pasok", wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Interdit.png"), wx.BITMAP_TYPE_PNG)) self.imgVert = self.AddNamedImages("vert", wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Ventilation_vert.png"), wx.BITMAP_TYPE_PNG)) self.imgRouge = self.AddNamedImages("rouge", wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Ventilation_rouge.png"), wx.BITMAP_TYPE_PNG)) self.imgOrange = self.AddNamedImages("orange", wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Ventilation_orange.png"), wx.BITMAP_TYPE_PNG)) def GetImageCreation(track): if track.date_creation_carte == None : return "pasok" else: return "ok" def GetImageDepot(track): if track.IDdepot_cotisation == None : return "pasok" else: return "ok" def FormateDate(dateDD): if dateDD == None : return "" if dateDD == "2999-01-01" : return _(u"Illimitée") date = str(dateDD) text = str(date[8:10]) + "/" + str(date[5:7]) + "/" + str(date[:4]) return text def GetImageVentilation(track): if track.montant == None : return None if track.montant == track.ventilation : return self.imgVert if track.ventilation == 0.0 or track.ventilation == None : return self.imgRouge if track.ventilation < track.montant : return self.imgOrange return self.imgRouge def FormateMontant(montant): if montant == None or montant == "" : return "" return u"%.2f %s" % (montant, SYMBOLE) def rowFormatter(listItem, track): if track.valide == False and self.mode != "liste" : listItem.SetTextColour((180, 180, 180)) dictColonnes = { "IDcotisation" : ColumnDefn(u"", "left", 0, "IDcotisation", typeDonnee="entier"), "date_debut" : ColumnDefn(u"Du", 'left', 80, "date_debut", typeDonnee="date", stringConverter=FormateDate), "date_fin" : ColumnDefn(_(u"Au"), 'left', 80, "date_fin", typeDonnee="date", stringConverter=FormateDate), "date_saisie" : ColumnDefn(_(u"Date saisie"), 'left', 80, "date_saisie", typeDonnee="date", stringConverter=FormateDate), "beneficiaires" : ColumnDefn(_(u"Bénéficiaires"), 'left', 150, "beneficiaires", typeDonnee="texte"), "rue" : ColumnDefn(_(u"Rue"), 'left', 120, "rue", typeDonnee="texte"), "cp" : ColumnDefn(_(u"CP"), 'left', 70, "cp", typeDonnee="texte"), "ville" : ColumnDefn(_(u"Ville"), 'left', 100, "ville", typeDonnee="texte"), "type" : ColumnDefn(_(u"Type"), 'left', 110, "typeStr", typeDonnee="texte"), "nom" : ColumnDefn(_(u"Nom"), 'left', 210, "nomCotisation", typeDonnee="texte"), "type_cotisation" : ColumnDefn(_(u"Type"), 'left', 210, "nomTypeCotisation", typeDonnee="texte"), "unite_cotisation" : ColumnDefn(_(u"Unité"), 'left', 90, "nomUniteCotisation", typeDonnee="texte"), "numero" : ColumnDefn(_(u"Numéro"), 'left', 70, "numero", typeDonnee="texte"), "montant" : ColumnDefn(_(u"Montant"), 'left', 70, "montant", typeDonnee="montant", stringConverter=FormateMontant), "regle" : ColumnDefn(_(u"Réglé"), 'left', 70, "ventilation", typeDonnee="montant", stringConverter=FormateMontant), "date_reglement" : ColumnDefn(_(u"Date réglement"), 'left', 80, "dateReglement", typeDonnee="date", stringConverter=FormateDate), "mode_reglement" : ColumnDefn(_(u"Mode réglement"), 'left', 80, "modeReglement", typeDonnee="texte"), "solde" : ColumnDefn(_(u"Solde"), 'left', 80, "solde", typeDonnee="montant", stringConverter=FormateMontant, imageGetter=GetImageVentilation), "date_creation_carte" : ColumnDefn(_(u"Création carte"), 'left', 100, "date_creation_carte", typeDonnee="date", stringConverter=FormateDate, imageGetter=GetImageCreation), "depot_nom" : ColumnDefn(_(u"Dépôt carte"), 'left', 100, "depotStr", typeDonnee="texte", imageGetter=GetImageDepot), "activites" : ColumnDefn(_(u"Activités"), 'left', 150, "activitesStr", typeDonnee="texte"), "observations" : ColumnDefn(_(u"Notes"), 'left', 150, "observations", typeDonnee="texte"), } self.rowFormatter = rowFormatter listeColonnes = [] tri = None index = 0 for codeColonne in self.codesColonnes : listeColonnes.append(dictColonnes[codeColonne]) # Checkbox if codeColonne == self.triColonne : tri = index index += 1 if self.mode == "liste": listeChamps = UTILS_Infos_individus.GetNomsChampsPossibles(mode="individu+famille") for titre, exemple, code in listeChamps : if u"n°" not in titre and "_x_" not in code: typeDonnee = UTILS_Infos_individus.GetTypeChamp(code) code = code.replace("{", "").replace("}", "") listeColonnes.append(ColumnDefn(titre, "left", 100, code, typeDonnee=typeDonnee, visible=False)) self.SetColumns2(colonnes=listeColonnes, nomListe="OL_Liste_cotisations") else : self.SetColumns(listeColonnes) if self.checkColonne == True : self.CreateCheckStateColumn(1) if tri != None : try: if self.checkColonne == True : tri += 1 self.SetSortColumn(self.columns[tri]) except: pass self.SetEmptyListMsg(_(u"Aucune cotisation")) self.SetEmptyListMsgFont(wx.FFont(11, wx.DEFAULT, False, "Tekton")) self.SetObjects(self.donnees)
def InitObjectListView(self): # Couleur en alternance des lignes self.oddRowsBackColor = UTILS_Interface.GetValeur( "couleur_tres_claire", wx.Colour(240, 251, 237)) self.evenRowsBackColor = wx.Colour(255, 255, 255) self.useExpansionColumn = True liste_Colonnes = [ ColumnDefn(_(u"ID"), "left", 0, "IDfamille", typeDonnee="entier"), ColumnDefn(_(u"Famille"), 'left', 250, "nomTitulaires", typeDonnee="texte"), ColumnDefn(_(u"Rue"), "left", 160, "rue", typeDonnee="texte"), ColumnDefn(_(u"C.P."), "left", 45, "cp", typeDonnee="texte"), ColumnDefn(_(u"Ville"), "left", 120, "ville", typeDonnee="texte"), ColumnDefn(_(u"Secteur"), "left", 100, "secteur", typeDonnee="texte"), ColumnDefn(_(u"Régime"), "left", 130, "regime", typeDonnee="texte"), ColumnDefn(_(u"Caisse"), "left", 130, "caisse", typeDonnee="texte"), ColumnDefn(_(u"Numéro Alloc."), "left", 120, "numAlloc", typeDonnee="texte"), ] # # Insertion des champs infos de base individus # listeChamps = self.infosIndividus.GetNomsChampsPresents(mode="famille") # for nomChamp in listeChamps : # typeDonnee = UTILS_Infos_individus.GetTypeChamp(nomChamp) # liste_Colonnes.append(ColumnDefn(nomChamp, "left", 100, nomChamp, typeDonnee=typeDonnee, visible=False)) listeChamps = UTILS_Infos_individus.GetNomsChampsPossibles( mode="famille") for titre, exemple, code in listeChamps: if u"n°" not in titre and "_x_" not in code: typeDonnee = UTILS_Infos_individus.GetTypeChamp(code) code = code.replace("{", "").replace("}", "") liste_Colonnes.append( ColumnDefn(titre, "left", 100, code, typeDonnee=typeDonnee, visible=False)) self.SetColumns2(colonnes=liste_Colonnes, nomListe="OL_Liste_familles") self.SetEmptyListMsg(_(u"Aucune famille")) self.SetEmptyListMsgFont(wx.FFont(11, wx.DEFAULT, False, "Tekton")) if len(self.columns) > 1: self.SetSortColumn(self.columns[1]) self.SetObjects(self.donnees)
def InitObjectListView(self): # Création du imageList for categorie, civilites in Civilites.LISTE_CIVILITES: for IDcivilite, CiviliteLong, CiviliteAbrege, nomImage, genre in civilites: indexImg = self.AddNamedImages( nomImage, wx.Bitmap( Chemins.GetStaticPath("Images/16x16/%s" % nomImage), wx.BITMAP_TYPE_PNG)) def GetImageCivilite(track): return track.nomImage def FormateDate(dateStr): if dateStr == "" or dateStr == None: return "" date = str( datetime.date(year=int(dateStr[:4]), month=int(dateStr[5:7]), day=int(dateStr[8:10]))) text = str(date[8:10]) + "/" + str(date[5:7]) + "/" + str(date[:4]) return text def FormateAge(age): if age == None: return "" return _(u"%d ans") % age # Couleur en alternance des lignes self.oddRowsBackColor = UTILS_Interface.GetValeur( "couleur_tres_claire", wx.Colour(240, 251, 237)) self.evenRowsBackColor = wx.Colour(255, 255, 255) self.useExpansionColumn = True liste_Colonnes = [ ColumnDefn(u"", "left", 22, "IDindividu", typeDonnee="entier", imageGetter=GetImageCivilite), ColumnDefn(_(u"Nom"), 'left', 100, "nom", typeDonnee="texte"), ColumnDefn(_(u"Prénom"), "left", 100, "prenom", typeDonnee="texte"), ColumnDefn(_(u"Date naiss."), "left", 72, "date_naiss", typeDonnee="date", stringConverter=FormateDate), ColumnDefn(_(u"Genre"), "left", 50, "genre", typeDonnee="texte"), ColumnDefn(_(u"Age"), "left", 50, "age", typeDonnee="entier", stringConverter=FormateAge), ColumnDefn(_(u"Rue"), "left", 150, "rue_resid", typeDonnee="texte"), ColumnDefn(_(u"C.P."), "left", 50, "cp_resid", typeDonnee="texte"), ColumnDefn(_(u"Ville"), "left", 120, "ville_resid", typeDonnee="texte"), ColumnDefn(_(u"Tél. domicile"), "left", 100, "tel_domicile", typeDonnee="texte"), ColumnDefn(_(u"Tél. mobile"), "left", 100, "tel_mobile", typeDonnee="texte"), ColumnDefn(_(u"Email"), "left", 150, "mail", typeDonnee="texte"), ] # Insertion des champs infos de base individus # listeChamps = self.infosIndividus.GetNomsChampsPresents(mode="individu") # for nomChamp in listeChamps : # typeDonnee = UTILS_Infos_individus.GetTypeChamp(nomChamp) # liste_Colonnes.append(ColumnDefn(nomChamp, "left", 100, nomChamp, typeDonnee=typeDonnee, visible=False)) listeChamps = UTILS_Infos_individus.GetNomsChampsPossibles( mode="individu") for titre, exemple, code in listeChamps: if u"n°" not in titre and "_x_" not in code: typeDonnee = UTILS_Infos_individus.GetTypeChamp(code) code = code.replace("{", "").replace("}", "") liste_Colonnes.append( ColumnDefn(titre, "left", 100, code, typeDonnee=typeDonnee, visible=False)) self.SetColumns2(colonnes=liste_Colonnes, nomListe="OL_Liste_individus") self.SetEmptyListMsg(_(u"Aucun individu")) self.SetEmptyListMsgFont(wx.FFont(11, wx.DEFAULT, False, "Tekton")) if len(self.columns) > 1: self.SetSortColumn(self.columns[1]) self.SetObjects(self.donnees)