Beispiel #1
0
    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"", "left", 0, "IDcategorie", typeDonnee="entier"),
            ColumnDefn(_(u"Nom"), 'left', 200, "nom", typeDonnee="texte"),
            ColumnDefn(_(u"Notes"),
                       "left",
                       200,
                       "observations",
                       typeDonnee="texte"),
        ]

        # Ajout des questions des questionnaires
        liste_Colonnes.extend(
            UTILS_Questionnaires.GetColonnesForOL(self.liste_questions))

        self.SetColumns(liste_Colonnes)
        if self.selection_multiple == True:
            self.CreateCheckStateColumn(0)

        self.SetEmptyListMsg(_(u"Aucune catégorie de produits"))
        self.SetEmptyListMsgFont(wx.FFont(11, wx.DEFAULT, False, "Tekton"))
        self.SetSortColumn(self.columns[1])
        self.SetObjects(self.donnees)
Beispiel #2
0
    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"", "left", 0, "IDfamille", typeDonnee="entier"),
            ColumnDefn(_(u"Nom"),
                       'left',
                       270,
                       "nomTitulaires",
                       typeDonnee="texte"),
            ColumnDefn(_(u"Rue"), 'left', 200, "rue", typeDonnee="texte"),
            ColumnDefn(_(u"C.P."), 'left', 70, "cp", typeDonnee="texte"),
            ColumnDefn(_(u"Ville"), 'left', 150, "ville", typeDonnee="texte"),
        ]

        # Ajout des questions des questionnaires
        liste_Colonnes.extend(
            UTILS_Questionnaires.GetColonnesForOL(self.liste_questions))

        self.SetColumns(liste_Colonnes)
        self.SetEmptyListMsg(_(u"Aucune famille"))
        self.SetEmptyListMsgFont(wx.FFont(11, wx.DEFAULT, False, "Tekton"))
        self.SetSortColumn(self.columns[1])
        self.SetObjects(self.donnees)
Beispiel #3
0
    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
        self.AddNamedImages(
            "indisponible",
            wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Interdit.png"),
                      wx.BITMAP_TYPE_PNG))
        self.AddNamedImages(
            "disponible",
            wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Ok4.png"),
                      wx.BITMAP_TYPE_PNG))

        def GetImageDisponible(track):
            if track.disponible > 0:
                return "disponible"
            else:
                return "indisponible"

        def FormateDate(date):
            if date == None:
                return _(u"")
            else:
                return datetime.datetime.strftime(date, "%d/%m/%Y - %Hh%M")

        def FormatePosition(position):
            if position == None:
                return _(u"")
            elif position == 1:
                return _(u"1er")
            else:
                return _(u"%dème") % position

        def FormateDisponible(disponible):
            if disponible == 1:
                return _(u"1 disponible")
            if disponible > 1:
                return _(u"%d disponibles") % disponible
            return _("Non")

        dict_colonnes = {
            "IDproduit":
            ColumnDefn(u"", "left", 0, "IDproduit", typeDonnee="entier"),
            "nom":
            ColumnDefn(_(u"Nom"), 'left', 170, "nom", typeDonnee="texte"),
            "nomCategorie":
            ColumnDefn(_(u"Catégorie"),
                       'left',
                       170,
                       "nomCategorie",
                       typeDonnee="texte"),
            "quantite":
            ColumnDefn(_(u"Stock initial"),
                       "left",
                       70,
                       "quantite",
                       typeDonnee="entier"),
            "disponible":
            ColumnDefn(_(u"Disponibilité"),
                       "left",
                       110,
                       "disponible",
                       typeDonnee="texte",
                       stringConverter=FormateDisponible,
                       imageGetter=GetImageDisponible),
            "nomTitulaires":
            ColumnDefn(_(u"Loueur"),
                       "left",
                       200,
                       "nomTitulaires",
                       typeDonnee="texte"),
            "date_debut":
            ColumnDefn(_(u"Début"),
                       "left",
                       120,
                       "date_debut",
                       typeDonnee="texte",
                       stringConverter=FormateDate),
            "date_fin":
            ColumnDefn(_(u"Fin"),
                       "left",
                       120,
                       "date_fin",
                       typeDonnee="texte",
                       stringConverter=FormateDate),
            "position":
            ColumnDefn(u"Position",
                       "left",
                       80,
                       "position",
                       typeDonnee="entier",
                       stringConverter=FormatePosition),
        }

        if self.afficher_locations == True:
            if self.afficher_detail_location == True:
                liste_temp = [
                    "IDproduit", "nom", "nomCategorie", "quantite",
                    "disponible", "nomTitulaires", "date_debut", "date_fin"
                ]
            else:
                liste_temp = [
                    "IDproduit", "nom", "nomCategorie", "quantite",
                    "disponible"
                ]
        else:
            liste_temp = ["IDproduit", "nom", "nomCategorie", "quantite"]

        if self.dictPositions != None:
            liste_temp.append("position")

        liste_Colonnes = []
        for code in liste_temp:
            liste_Colonnes.append(dict_colonnes[code])

        # Ajout des questions des questionnaires
        liste_Colonnes.extend(
            UTILS_Questionnaires.GetColonnesForOL(self.liste_questions))

        self.SetColumns(liste_Colonnes)
        if self.selection_multiple == True:
            self.CreateCheckStateColumn(0)

        self.SetEmptyListMsg(_(u"Aucun produit"))
        self.SetEmptyListMsgFont(wx.FFont(11, wx.DEFAULT, False, "Tekton"))
        self.SetSortColumn(self.columns[1])
        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
        self.AddNamedImages("attente", wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Interdit.png"), wx.BITMAP_TYPE_PNG))
        self.AddNamedImages("refusee", wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Supprimer_2.png"), wx.BITMAP_TYPE_PNG))
        self.AddNamedImages("attribuee", wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Ok4.png"), wx.BITMAP_TYPE_PNG))
        self.AddNamedImages("disponibilite", wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Ok4_orange.png"), wx.BITMAP_TYPE_PNG))

        def GetImageStatut(track):
            if track.statut == "attente" :
                return "attente"
            elif track.statut == "refusee" :
                return "refusee"
            elif track.statut == "attribuee" :
                return "attribuee"
            elif track.statut == "disponibilite" :
                return "disponibilite"
            else :
                return None

        def FormateDate(date):
            if date == None :
                return _(u"Non définie")
            else :
                return datetime.datetime.strftime(date, "%d/%m/%Y - %Hh%M")

        def FormatePosition(position):
            if position == None :
                return _(u"")
            elif position == 1 :
                return _(u"1er")
            else :
                return _(u"%dème") % position

        liste_Colonnes = [
            ColumnDefn(u"", "left", 0, "IDdemande", typeDonnee="entier"),
            ColumnDefn(_(u"Date"), "left", 130, "date", typeDonnee="date", stringConverter=FormateDate),
            ]

        if self.IDfamille == None :
            liste_Colonnes.extend([
                ColumnDefn(_(u"Nom du demandeur"), 'left', 210, "nomTitulaires", typeDonnee="texte"),
                # ColumnDefn(_(u"Rue"), 'left', 200, "rue", typeDonnee="texte"),
                # ColumnDefn(_(u"C.P."), 'left', 70, "cp", typeDonnee="texte"),
                # ColumnDefn(_(u"Ville"), 'left', 150, "ville", typeDonnee="texte"),
                ])

        liste_Colonnes.extend([
            ColumnDefn(_(u"Statut de la demande"), 'left', 170, "texte_statut", typeDonnee="texte", imageGetter=GetImageStatut),
            ColumnDefn(_(u"Position"), 'left', 80, "position", typeDonnee="entier", stringConverter=FormatePosition),
            ColumnDefn(_(u"Catégories demandées"), 'left', 200, "texte_categories", typeDonnee="texte"),
            ColumnDefn(_(u"Produits demandés"), 'left', 200, "texte_produits", typeDonnee="texte"),
            ColumnDefn(_(u"Notes"), 'left', 200, "observations", typeDonnee="texte"),
            ])

        # Ajout des questions des questionnaires
        liste_Colonnes.extend(UTILS_Questionnaires.GetColonnesForOL(self.liste_questions))

        self.SetColumns(liste_Colonnes)

        if self.checkColonne == True :
            self.CreateCheckStateColumn(1)
            self.SetSortColumn(self.columns[2])
        else :
            self.SetSortColumn(self.columns[1])

        # Regroupement
        # if hasattr(self, "ctrl_regroupement") :
        #     self.ctrl_regroupement.MAJ(listview=self)
        # if self.regroupement != None:
        #     self.SetAlwaysGroupByColumn(self.regroupement)
        #     self.SetShowGroups(True)
        #     self.useExpansionColumn = False
        #     self.SetShowItemCounts(True)
        # else:
        #     self.SetShowGroups(False)
        #     self.useExpansionColumn = False

        self.SetEmptyListMsg(_(u"Aucune demande de location"))
        self.SetEmptyListMsgFont(wx.FFont(11, wx.DEFAULT, False, "Tekton"))
        self.SetSortColumn(self.columns[1])
        self.SetObjects(self.donnees)
Beispiel #5
0
    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

        def FormateDate(date):
            if date == None:
                return _(u"Non définie")
            else:
                return datetime.datetime.strftime(date, "%d/%m/%Y - %Hh%M")

        dict_colonnes = {
            "IDlocation":
            ColumnDefn(u"", "left", 0, "IDlocation", typeDonnee="entier"),
            "date_debut":
            ColumnDefn(_(u"Début"),
                       "left",
                       130,
                       "date_debut",
                       typeDonnee="date",
                       stringConverter=FormateDate),
            "date_fin":
            ColumnDefn(_(u"Fin"),
                       "left",
                       130,
                       "date_fin",
                       typeDonnee="date",
                       stringConverter=FormateDate),
            "nomProduit":
            ColumnDefn(_(u"Nom du produit"),
                       'left',
                       200,
                       "nomProduit",
                       typeDonnee="texte"),
            "nomCategorie":
            ColumnDefn(_(u"Catégorie du produit"),
                       'left',
                       200,
                       "nomCategorie",
                       typeDonnee="texte"),
            "quantite":
            ColumnDefn(u"Qté", "left", 60, "quantite", typeDonnee="entier"),
            "nomTitulaires":
            ColumnDefn(_(u"Nom"),
                       'left',
                       270,
                       "nomTitulaires",
                       typeDonnee="texte"),
            "rue":
            ColumnDefn(_(u"Rue"), 'left', 200, "rue", typeDonnee="texte"),
            "cp":
            ColumnDefn(_(u"C.P."), 'left', 70, "cp", typeDonnee="texte"),
            "ville":
            ColumnDefn(_(u"Ville"), 'left', 150, "ville", typeDonnee="texte"),
        }

        liste_temp = [
            "IDlocation", "date_debut", "date_fin", "nomProduit",
            "nomCategorie", "quantite", "nomTitulaires", "rue", "cp", "ville"
        ]

        if self.IDfamille != None:
            liste_temp = [
                "IDlocation", "date_debut", "date_fin", "nomProduit",
                "nomCategorie", "quantite"
            ]

        if self.IDproduit != None:
            liste_temp = [
                "IDlocation", "date_debut", "date_fin", "quantite",
                "nomTitulaires", "rue", "cp", "ville"
            ]

        liste_Colonnes = []
        for code in liste_temp:
            liste_Colonnes.append(dict_colonnes[code])

        # Ajout des questions des questionnaires
        liste_Colonnes.extend(
            UTILS_Questionnaires.GetColonnesForOL(self.liste_questions))

        self.SetColumns(liste_Colonnes)
        if self.checkColonne == True:
            self.CreateCheckStateColumn(1)
            self.SetSortColumn(self.columns[2])
        else:
            self.SetSortColumn(self.columns[1])

        self.SetEmptyListMsg(_(u"Aucune location"))
        self.SetEmptyListMsgFont(wx.FFont(11, wx.DEFAULT, False, "Tekton"))

        self.SetObjects(self.donnees)
Beispiel #6
0
    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

        self.AddNamedImages(
            "attention",
            wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Reservation.png"),
                      wx.BITMAP_TYPE_PNG))
        self.AddNamedImages(
            "pasok",
            wx.Bitmap(Chemins.GetStaticPath("Images/16x16/Refus.png"),
                      wx.BITMAP_TYPE_PNG))

        def FormateDate(date):
            if date == None:
                return _(u"Non définie")
            else:
                return datetime.datetime.strftime(date, "%d/%m/%Y - %Hh%M")

        def FormateJoursRestants(temps_restant):
            if temps_restant == None:
                return ""
            else:
                return int(temps_restant)

        def GetImageReste(track):
            if track.temps_restant != None:
                if track.temps_restant < 0:
                    return "pasok"
                elif track.temps_restant < track.duree * 10 // 100:
                    return "attention"
            return None

        dict_colonnes = {
            "IDlocation":
            ColumnDefn(u"", "left", 0, "IDlocation", typeDonnee="entier"),
            "date_debut":
            ColumnDefn(_(u"Début"),
                       "left",
                       130,
                       "date_debut",
                       typeDonnee="date",
                       stringConverter=FormateDate),
            "date_fin":
            ColumnDefn(_(u"Fin"),
                       "left",
                       130,
                       "date_fin",
                       typeDonnee="date",
                       stringConverter=FormateDate),
            "nomProduit":
            ColumnDefn(_(u"Nom du produit"),
                       'left',
                       200,
                       "nomProduit",
                       typeDonnee="texte"),
            "nomCategorie":
            ColumnDefn(_(u"Catégorie du produit"),
                       'left',
                       200,
                       "nomCategorie",
                       typeDonnee="texte"),
            "quantite":
            ColumnDefn(u"Qté", "left", 60, "quantite", typeDonnee="entier"),
            "nomTitulaires":
            ColumnDefn(_(u"Loueur"),
                       'left',
                       270,
                       "nomTitulaires",
                       typeDonnee="texte"),
            "rue":
            ColumnDefn(_(u"Rue"), 'left', 200, "rue", typeDonnee="texte"),
            "cp":
            ColumnDefn(_(u"C.P."), 'left', 70, "cp", typeDonnee="texte"),
            "ville":
            ColumnDefn(_(u"Ville"), 'left', 150, "ville", typeDonnee="texte"),
            "nbre_jours_restants":
            ColumnDefn(u"Jours restants",
                       "left",
                       60,
                       "temps_restant",
                       typeDonnee="entier",
                       imageGetter=GetImageReste,
                       stringConverter=FormateJoursRestants),
        }

        liste_temp = [
            "IDlocation", "date_debut", "date_fin", "nomProduit",
            "nomCategorie", "quantite", "nomTitulaires", "rue", "cp", "ville",
            "nbre_jours_restants"
        ]

        if self.IDfamille != None:
            liste_temp = [
                "IDlocation", "date_debut", "date_fin", "nomProduit",
                "nomCategorie", "quantite", "nbre_jours_restants"
            ]

        if self.IDproduit != None:
            liste_temp = [
                "IDlocation", "date_debut", "date_fin", "quantite",
                "nomTitulaires", "rue", "cp", "ville", "nbre_jours_restants"
            ]

        liste_Colonnes = []
        for code in liste_temp:
            liste_Colonnes.append(dict_colonnes[code])

        # Ajout des questions des questionnaires
        liste_Colonnes.extend(
            UTILS_Questionnaires.GetColonnesForOL(self.liste_questions))

        # self.SetColumns(liste_Colonnes)
        self.SetColumns2(colonnes=liste_Colonnes, nomListe="OL_Locations")

        if self.checkColonne == True:
            self.CreateCheckStateColumn(1)
            self.SetSortColumn(self.columns[2])
        else:
            self.SetSortColumn(self.columns[1])

        self.SetEmptyListMsg(_(u"Aucune location"))
        self.SetEmptyListMsgFont(wx.FFont(11, wx.DEFAULT, False, "Tekton"))

        self.SetObjects(self.donnees)
Beispiel #7
0
    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
                
        if self.categorie == "individus" :
            # INDIVIDUS
            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"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"Secteur"), "left", 120, "secteur", typeDonnee="texte"),
##                ColumnDefn(_(u"Tél. domicile"), "left", 100, "tel_domicile"),
##                ColumnDefn(_(u"Tél. mobile"), "left", 100, "tel_mobile"),
                ColumnDefn(_(u"Email"), "left", 150, "mail", typeDonnee="texte"),
##                ColumnDefn(_(u"Profession"), "left", 150, "profession"),
##                ColumnDefn(_(u"Employeur"), "left", 150, "employeur"),
##                ColumnDefn(_(u"Tél pro."), "left", 100, "travail_tel"),
##                ColumnDefn(_(u"Email pro."), "left", 150, "travail_mail"),
                ]
        
        else:
            # FAMILLES
            liste_Colonnes = [
                ColumnDefn(_(u"ID"), "left", 0, "IDfamille", typeDonnee="entier"),
                ColumnDefn(_(u"Famille"), 'left', 200, "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", 120, "secteur", typeDonnee="texte"),
                ColumnDefn(_(u"Email"), "left", 100, "mail", 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"),
                ]        
        
        # Ajout des questions des questionnaires
        liste_Colonnes.extend(UTILS_Questionnaires.GetColonnesForOL(self.LISTE_QUESTIONS))

        self.SetColumns(liste_Colonnes)
        self.CreateCheckStateColumn(0)
        
        if self.categorie == "individus" :
            self.SetEmptyListMsg(_(u"Aucun individu"))
        else:
            self.SetEmptyListMsg(_(u"Aucune famille"))
        self.SetEmptyListMsgFont(wx.FFont(11, wx.DEFAULT, False, "Tekton"))
        self.SetSortColumn(self.columns[2])
        self.SetObjects(self.donnees)
    def InitObjectListView(self):
        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

        if self.categorie == "individu":
            # INDIVIDUS
            liste_Colonnes = [
                ColumnDefn(u"ID", "left", 0, "IDindividu",
                           typeDonnee="entier"),
                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"Age"),
                           "left",
                           50,
                           "age",
                           typeDonnee="entier",
                           stringConverter=FormateAge),
                ColumnDefn(_(u"Famille"),
                           'left',
                           200,
                           "nomTitulaires",
                           typeDonnee="texte"),
                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"),
            ]

        else:
            # FAMILLES
            liste_Colonnes = [
                ColumnDefn(_(u"ID"),
                           "left",
                           0,
                           "IDfamille",
                           typeDonnee="entier"),
                ColumnDefn(_(u"Famille"),
                           'left',
                           200,
                           "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"Email"),
                           "left",
                           100,
                           "mail",
                           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"),
            ]

        if self.afficher_colonne_numero == True:
            liste_Colonnes.insert(
                1,
                ColumnDefn(_(u"Numéro"),
                           "left",
                           90,
                           "numero",
                           typeDonnee="texte"))

        # Ajout des questions des questionnaires
        liste_Colonnes.extend(
            UTILS_Questionnaires.GetColonnesForOL(self.LISTE_QUESTIONS))

        self.SetColumns(liste_Colonnes)
        self.CreateCheckStateColumn(0)

        if self.categorie == "individu":
            self.SetEmptyListMsg(_(u"Aucun individu"))
        else:
            self.SetEmptyListMsg(_(u"Aucune famille"))
        self.SetEmptyListMsgFont(wx.FFont(11, wx.DEFAULT, False, "Tekton"))
        if self.afficher_colonne_numero == True:
            self.SetSortColumn(self.columns[3])
        else:
            self.SetSortColumn(self.columns[2])
        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))

        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)