def OnBoutonOk(self, event): """ Lance la correction """ if self.sauvegardeEffectuee == False: dlg = wx.MessageDialog( self, _(u"Souhaitez-vous sauvegarder votre fichier de données avant la correction (Recommandé) ?" ), _(u"Annulation"), wx.YES_NO | wx.NO_DEFAULT | wx.CANCEL | wx.ICON_QUESTION) reponse = dlg.ShowModal() dlg.Destroy() if reponse == wx.ID_YES: from Dlg import DLG_Sauvegarde dlg2 = DLG_Sauvegarde.Dialog(self) dlg2.ShowModal() dlg2.Destroy() self.sauvegardeEffectuee = True elif reponse == wx.ID_NO: self.sauvegardeEffectuee = True elif reponse == wx.ID_CANCEL: return # Lance la correction self.ctrl_resultats.Correction()
else: dlg.Destroy() return None except : pass try : if os.path.isdir(chemin + _(u"bin/")) : UTILS_Config.SetParametre("sauvegarde_cheminmysql", chemin) return chemin except : pass return None def CreationFichierLoginTemp(host="", user="", port="3306", password="", nomFichier=""): if os.path.isfile(nomFichier) == True : os.remove(nomFichier) fichier = open(nomFichier, "w") fichier.write(u"[client]\nhost=%s\nuser=%s\nport=%s\npassword=%s" % (host, user, port, password)) fichier.close() if __name__ == u"__main__": app = wx.App(0) from Dlg import DLG_Sauvegarde frame_1 = DLG_Sauvegarde.Dialog(None) app.SetTopWindow(frame_1) frame_1.ShowModal() app.MainLoop()
def Start(self): # Annonce rappel de sauvegarde auto if len(self.listeSauvegardes) == 0: resultat = self.AnnonceRappel() return resultat # Lancement des sauvegardes for dictSauvegarde in self.listeSauvegardes: valide = True resultat = False # Création du nom de la sauvegarde prefixe = dictSauvegarde["sauvegarde_nom"] dictSauvegarde["sauvegarde_nom"] = u"%s_%s" % ( dictSauvegarde["sauvegarde_nom"], datetime.datetime.now().strftime("%Y%m%d_%H%M")) # Vérification des conditions if valide == True: valide = self.VerificationConditions(dictSauvegarde) # Demande de confirmation if valide == True and dictSauvegarde["option_demander"] == "1": image = wx.Bitmap( Chemins.GetStaticPath("Images/48x48/Sauvegarder.png"), wx.BITMAP_TYPE_ANY) message1 = _( u"Souhaitez-vous lancer la procédure de sauvegarde '%s' ?" ) % dictSauvegarde["nom"] dlg = dialogs.MultiMessageDialog( self.parent, message1, caption=_(u"Sauvegarde automatique"), msg2=None, style=wx.NO | wx.CANCEL | wx.YES | wx.YES_DEFAULT, icon=image, btnLabels={ wx.ID_YES: _(u"Oui"), wx.ID_NO: _(u"Non"), wx.ID_CANCEL: _(u"Annuler") }) reponse = dlg.ShowModal() try: dlg.Destroy() except: pass if reponse == wx.ID_NO: valide = False if reponse == wx.ID_CANCEL: return wx.ID_CANCEL # Afficher interface if valide == True and dictSauvegarde[ "option_afficher_interface"] == "1": from Dlg import DLG_Sauvegarde dlg = DLG_Sauvegarde.Dialog(self.parent, dictDonnees=dictSauvegarde) dlg.ShowModal() resultat = dlg.GetResultat() dlg.Destroy() # Sauvegarde if valide == True and dictSauvegarde[ "option_afficher_interface"] != "1": resultat = self.Sauvegarde(dictSauvegarde) if resultat == True and dictSauvegarde[ "option_confirmation"] == "1": dlg = wx.MessageDialog( self.parent, _(u"La procédure de sauvegarde '%s' s'est terminée avec succès." ) % dictSauvegarde["nom"], _(u"Sauvegarde"), wx.OK | wx.ICON_INFORMATION) dlg.ShowModal() dlg.Destroy() if resultat == False: dlg = wx.MessageDialog( self.parent, _(u"Echec de la procédure de sauvegarde '%s' !") % dictSauvegarde["nom"], _(u"Annulation"), wx.OK | wx.ICON_ERROR) dlg.ShowModal() dlg.Destroy() return wx.ID_CANCEL # Sauvegarde de la date de la sauvegarde if resultat == True: DB = GestionDB.DB() DB.ReqMAJ("sauvegardes_auto", [ ("date_derniere", str(datetime.date.today())), ], "IDsauvegarde", dictSauvegarde["IDsauvegarde"]) DB.Close() # Suppression des sauvegardes obsolètes if dictSauvegarde["option_suppression"] != None and dictSauvegarde[ "sauvegarde_repertoire"] != None and os.path.isdir( dictSauvegarde["sauvegarde_repertoire"]) == True: nbreJours = int(dictSauvegarde["option_suppression"]) repertoire = dictSauvegarde["sauvegarde_repertoire"] listeFichiersPresents = glob.glob(repertoire + "/*") for fichier in listeFichiersPresents: nomFichier = os.path.basename(fichier) if (fichier.endswith(".nod") or fichier.endswith(".noc") ) and nomFichier.startswith(prefixe): dateCreationFichier = datetime.date.fromtimestamp( os.path.getctime(fichier)) nbreJoursFichier = (datetime.date.today() - dateCreationFichier).days if nbreJoursFichier >= nbreJours: try: os.remove(fichier) except: pass return True