コード例 #1
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))

        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)
コード例 #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
        
        # 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)
コード例 #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

        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)
コード例 #4
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

        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)