Exemplo n.º 1
0
    def SuppressionArchives(self):
        """ Supprime les archives obsolètes du répertoire Sync """
        synchro_archivage_activer = UTILS_Config.GetParametre(
            "synchro_archivage_activer", defaut=0)
        synchro_archivage_delai = UTILS_Config.GetParametre(
            "synchro_archivage_delai", defaut=30)

        # Vérifie que la suppression auto de l'archivage est activé
        if synchro_archivage_activer == 0:
            return False

        # Lecture des fichiers du répertoire SYNC
        for nomFichier in os.listdir(UTILS_Fichiers.GetRepSync()):
            if nomFichier.startswith("actions_") and nomFichier.endswith(
                    ".archive"):
                nomFichierCourt = nomFichier.replace(".dat", "").replace(
                    ".archive", "")

                # Lecture Horodatage
                horodatage = nomFichierCourt.split("_")[2]
                horodatage = UTILS_Dates.HorodatageEnDatetime(horodatage)
                dateDuJour = datetime.datetime.now()
                nbreJours = (dateDuJour - horodatage).days

                # Suppression
                if nbreJours > synchro_archivage_delai:
                    os.remove(UTILS_Fichiers.GetRepSync(nomFichier))
Exemplo n.º 2
0
    def GetTracks(self):
        """ Récupération des données """
        DB = GestionDB.DB()

        # Lecture Individus
        req = """SELECT IDindividu, nom, prenom
        FROM individus;"""
        DB.ExecuterReq(req)
        listeIndividus = DB.ResultatReq()
        dictIndividus = {}
        for IDindividu, nom, prenom in listeIndividus:
            if prenom == None: prenom = ""
            dictIndividus[IDindividu] = u"%s %s" % (nom, prenom)

        # Lecture unités
        req = """SELECT IDunite, nom, abrege
        FROM unites
        ORDER BY ordre;"""
        DB.ExecuterReq(req)
        listeUnites = DB.ResultatReq()
        dictUnites = {}
        for IDunite, nom, abrege in listeUnites:
            dictUnites[IDunite] = nom

        DB.Close()

        # Récupération du IDfichier
        IDfichier = FonctionsPerso.GetIDfichier()

        # Lecture des fichiers du répertoire SYNC
        listeFichiers = os.listdir(UTILS_Fichiers.GetRepSync())

        listeListeView = []
        listeDictTempTraites = []
        for nomFichier in listeFichiers:
            if nomFichier.startswith("actions_%s" % IDfichier) and (
                    nomFichier.endswith(".dat") and self.listeFichiers
                    == None) or (self.listeFichiers != None
                                 and nomFichier in self.listeFichiers):
                nomFichierCourt = nomFichier.replace(".dat", "").replace(
                    ".archive", "")

                if nomFichier not in self.listeFichiersTrouves:
                    self.listeFichiersTrouves.append(nomFichier)

                # Taille fichier
                tailleFichier = os.path.getsize(
                    UTILS_Fichiers.GetRepSync(nomFichier))

                # Horodatage
                horodatage = nomFichierCourt.split("_")[2]
                horodatage = UTILS_Dates.HorodatageEnDatetime(horodatage)

                # Lecture du contenu du fichier
                DB = GestionDB.DB(
                    suffixe=None,
                    nomFichier=UTILS_Fichiers.GetRepSync(nomFichier),
                    modeCreation=False)
                req = """SELECT IDparametre, nom, valeur 
                FROM parametres;"""
                DB.ExecuterReq(req)
                listeParametres = DB.ResultatReq()
                dictParametres = {}
                for IDparametre, nom, valeur in listeParametres:
                    dictParametres[nom] = valeur

                if ("nom_appareil" in dictParametres) == False:
                    dictParametres["nom_appareil"] = "Appareil inconnu"
                if ("ID_appareil" in dictParametres) == False:
                    dictParametres["ID_appareil"] = "IDAppareil inconnu"

                # Mémorise l'IDappareil
                self.dictIDappareil[nomFichierCourt] = dictParametres[
                    "ID_appareil"]

                # Lecture des consommations
                req = """SELECT IDconso, horodatage, action, IDindividu, IDactivite, IDinscription, date, IDunite, IDgroupe, heure_debut, heure_fin, consommations.etat, date_saisie, IDutilisateur, IDcategorie_tarif, IDcompte_payeur, quantite, IDfamille
                FROM consommations;"""
                DB.ExecuterReq(req)
                listeConsommations = DB.ResultatReq()
                for IDconso, horodatage, action, IDindividu, IDactivite, IDinscription, date, IDunite, IDgroupe, heure_debut, heure_fin, etat, date_saisie, IDutilisateur, IDcategorie_tarif, IDcompte_payeur, quantite, IDfamille in listeConsommations:
                    horodatage = UTILS_Dates.HorodatageEnDatetime(
                        horodatage, separation="-")
                    date = UTILS_Dates.DateEngEnDateDD(date)
                    date_saisie = UTILS_Dates.DateEngEnDateDD(date_saisie)
                    dictTemp = {
                        "categorie": "consommation",
                        "IDconso": IDconso,
                        "horodatage": horodatage,
                        "action": action,
                        "IDindividu": IDindividu,
                        "IDactivite": IDactivite,
                        "IDinscription": IDinscription,
                        "date": date,
                        "IDunite": IDunite,
                        "IDgroupe": IDgroupe,
                        "heure_debut": heure_debut,
                        "heure_fin": heure_fin,
                        "etat": etat,
                        "quantite": quantite,
                        "date_saisie": date_saisie,
                        "IDutilisateur": IDutilisateur,
                        "IDcategorie_tarif": IDcategorie_tarif,
                        "IDcompte_payeur": IDcompte_payeur,
                        "IDfamille": IDfamille,
                    }

                    # Vérifie que cette action n'est pas déjà dans la liste
                    if dictTemp not in listeDictTempTraites:
                        listeListeView.append(
                            Track(dictTemp,
                                  dictIndividus=dictIndividus,
                                  dictUnites=dictUnites,
                                  dictParametres=dictParametres,
                                  nomFichier=nomFichier))
                        if self.cacher_doublons == True:
                            listeDictTempTraites.append(dictTemp)

                # Lecture des mémos journaliers
                req = """SELECT IDmemo, horodatage, action, IDindividu, date, texte
                FROM memo_journee;"""
                DB.ExecuterReq(req)
                listeMemosJournees = DB.ResultatReq()
                for IDmemo, horodatage, action, IDindividu, date, texte in listeMemosJournees:
                    horodatage = UTILS_Dates.HorodatageEnDatetime(
                        horodatage, separation="-")
                    date = UTILS_Dates.DateEngEnDateDD(date)
                    dictTemp = {
                        "categorie": "memo_journee",
                        "IDmemo": IDmemo,
                        "horodatage": horodatage,
                        "action": action,
                        "IDindividu": IDindividu,
                        "date": date,
                        "texte": texte,
                    }

                    # Vérifie que cette action n'est pas déjà dans la liste
                    if dictTemp not in listeDictTempTraites:
                        listeListeView.append(
                            Track(dictTemp,
                                  dictIndividus=dictIndividus,
                                  dictParametres=dictParametres,
                                  nomFichier=nomFichier))
                        if self.cacher_doublons == True:
                            listeDictTempTraites.append(dictTemp)

                DB.Close()

        return listeListeView
Exemplo n.º 3
0
    def GetTracks(self):
        """ Récupération des données """
        # Récupération du IDfichier
        IDfichier = FonctionsPerso.GetIDfichier()

        # Lecture des fichiers du répertoire SYNC
        listeFichiers = os.listdir(UTILS_Fichiers.GetRepSync())

        listeListeView = []
        for nomFichier in listeFichiers:
            if nomFichier.startswith("actions_%s" % IDfichier) and (
                    nomFichier.endswith(".dat") or
                (nomFichier.endswith(".archive")
                 and self.inclure_archives == True)):
                nomFichierCourt = nomFichier.replace(".dat", "").replace(
                    ".archive", "")

                # Taille fichier
                tailleFichier = os.path.getsize(
                    UTILS_Fichiers.GetRepSync(nomFichier))

                # Horodatage
                horodatage = nomFichierCourt.split("_")[2]
                horodatage = UTILS_Dates.HorodatageEnDatetime(horodatage)

                # Lecture du contenu du fichier
                DB = GestionDB.DB(
                    suffixe=None,
                    nomFichier=UTILS_Fichiers.GetRepSync(nomFichier),
                    modeCreation=False)
                req = """SELECT IDparametre, nom, valeur 
                FROM parametres;"""
                DB.ExecuterReq(req)
                listeParametres = DB.ResultatReq()
                dictParametres = {}
                for IDparametre, nom, valeur in listeParametres:
                    dictParametres[nom] = valeur

                if dictParametres.has_key("nom_appareil") == False:
                    dictParametres["nom_appareil"] = "Appareil inconnu"
                if dictParametres.has_key("ID_appareil") == False:
                    dictParametres["ID_appareil"] = "IDAppareil inconnu"

                liste_details_actions = []

                req = """SELECT IDconso, horodatage, action
                FROM consommations;"""
                DB.ExecuterReq(req)
                listeConsommations = DB.ResultatReq()
                if len(listeConsommations) > 0:
                    liste_details_actions.append(
                        _(u"%d actions sur les consommations") %
                        len(listeConsommations))

                req = """SELECT IDmemo, horodatage, action
                FROM memo_journee;"""
                DB.ExecuterReq(req)
                listeMemosJournees = DB.ResultatReq()
                if len(listeMemosJournees) > 0:
                    liste_details_actions.append(
                        _(u"%d actions sur les mémos journaliers") %
                        len(listeMemosJournees))

                DB.Close()

                detail_actions = ", ".join(liste_details_actions)
                if detail_actions == "":
                    detail_actions = _(u"Aucune action")

                dictTemp = {
                    "nom_fichier": nomFichier,
                    "taille_fichier": tailleFichier,
                    "nom_appareil": dictParametres["nom_appareil"],
                    "ID_appareil": dictParametres["ID_appareil"],
                    "horodatage": horodatage,
                    "detail_actions": detail_actions
                }
                listeListeView.append(Track(dictTemp))

        return listeListeView