def EnvoyerTest(self, event): """ Envoi d'un Email de test """ adresse = UTILS_Parametres.Parametres(mode="get", categorie="emails", nom="adresse_test", valeur=u"") dlg = wx.TextEntryDialog(self, _(u"Saisissez une adresse Email et cliquez sur Ok :"), _(u"Envoi d'un Email de test"), adresse) if dlg.ShowModal() != wx.ID_OK: dlg.Destroy() return adresse = dlg.GetValue() dlg.Destroy() # Mémorise l'adresse saisie if UTILS_Envoi_email.ValidationEmail(adresse) == False : dlg = wx.MessageDialog(self, _(u"L'adresse saisie n'est pas valide !"), _(u"Erreur de saisie"), wx.OK | wx.ICON_EXCLAMATION) dlg.ShowModal() dlg.Destroy() return UTILS_Parametres.Parametres(mode="set", categorie="emails", nom="adresse_test", valeur=adresse) # Vérifie si au moins un destintaire saisi listeDestinataires=self.ctrl_destinataires.GetDonnees() if len(listeDestinataires) == 0 : dlg = wx.MessageDialog(self, _(u"Vous devez sélectionner au moins un destinataire !\n\n(En cas de fusion, les données du premier destinataire seront utilisés)"), _(u"Erreur de saisie"), wx.OK | wx.ICON_EXCLAMATION) dlg.ShowModal() dlg.Destroy() return # Envoi du mail test self.Envoyer(listeDestinataires=[listeDestinataires[0],], adresseTest=adresse)
def MAJ(self, block=True): """ MAJ du bouton Demandes """ # Paramètres if self.lock.acquire(block) == True: try: index = UTILS_Parametres.Parametres( mode="get", categorie="portail", nom="client_synchro_portail_delai", valeur=1) self.delai = LISTE_DELAIS_SYNCHRO[index][0] self.synchro_ouverture = UTILS_Parametres.Parametres( mode="get", categorie="portail", nom="client_synchro_portail_ouverture", valeur=True) except Exception as e: self.lock.release() raise e else: self.lock.release() self.MAJ_bouton() return True else: return False
def AfficheAvertissement(self): if UTILS_Parametres.Parametres(mode="get", categorie="ne_plus_afficher", nom="infos_badgeage", valeur=False) == True : return import DLG_Message_html texte = u""" <CENTER><IMG SRC="Static/Images/32x32/Information.png"> <BR><BR> <FONT SIZE=2> <B>Avertissement</B> <BR><BR> Cette fonctionnalité étant très récente, il est conseillé de multiplier les tests avant une utilisation en situation réelle. Si vous constatez un bug, n'hésitez pas à le signaler sur le forum de Noethys. <BR><BR> Vous pouvez découvrir un petit aperçu des nombreuses possibilités offertes par ce module sur le forum : <A HREF="http://www.noethys.com/index.php?option=com_kunena&Itemid=7&func=view&catid=5&id=965#965">Cliquez ici</A> <BR><BR> <I>Pensez à configurer la synthèse vocale pour bénéficier au maximum de l'interface de badgeage !</I> </FONT> </CENTER> """ dlg = DLG_Message_html.Dialog(self, texte=texte, titre=_(u"Information"), nePlusAfficher=True) dlg.ShowModal() nePlusAfficher = dlg.GetEtatNePlusAfficher() dlg.Destroy() if nePlusAfficher == True : UTILS_Parametres.Parametres(mode="set", categorie="ne_plus_afficher", nom="infos_badgeage", valeur=nePlusAfficher)
def OnBoutonTester(self, event): if self.GetPageActive().Validation() == False : return False # Récupération des paramètres dict_donnees = self.GetPageActive().GetDonnees() # Demande une adresse de destination adresse = UTILS_Parametres.Parametres(mode="get", categorie="emails", nom="adresse_test", valeur=u"") dlg = wx.TextEntryDialog(self, _(u"Saisissez une adresse Email de destination et cliquez sur Ok :"), _(u"Envoi d'un Email de test"), adresse) if dlg.ShowModal() != wx.ID_OK: dlg.Destroy() return adresse = dlg.GetValue() dlg.Destroy() # Mémorise l'adresse saisie if UTILS_Envoi_email.ValidationEmail(adresse) == False : dlg = wx.MessageDialog(self, _(u"L'adresse saisie n'est pas valide !"), _(u"Erreur de saisie"), wx.OK | wx.ICON_EXCLAMATION) dlg.ShowModal() dlg.Destroy() return UTILS_Parametres.Parametres(mode="set", categorie="emails", nom="adresse_test", valeur=adresse) # Création du message de test message = UTILS_Envoi_email.Message( destinataires=[adresse, ], sujet=u"Test de messagerie", texte_html=u"<p>Ceci est un <b>test de messagerie</b> envoyé à %s.</p>" % datetime.datetime.now().strftime("%H:%M:%S"), ) try : messagerie = UTILS_Envoi_email.Messagerie( backend=dict_donnees["moteur"], hote=dict_donnees["smtp"], port=dict_donnees["port"], utilisateur=dict_donnees["utilisateur"], motdepasse=dict_donnees["motdepasse"], email_exp=dict_donnees["adresse"], nom_exp=dict_donnees["nom_adresse"], timeout=10, use_tls=dict_donnees["startTLS"], parametres=dict_donnees["parametres"], ) messagerie.Connecter() messagerie.Envoyer(message) messagerie.Fermer() except Exception as err: err = str(err) if six.PY2: err = err.decode("iso-8859-15") intro = _(u"L'envoi de l'email de test est impossible :") conclusion = _(u"Vérifiez votre connexion internet ou les paramètres de votre adresse d'expédition.") dlgErreur = DLG_Messagebox.Dialog(self, titre=_(u"Erreur"), introduction=intro, detail=err, conclusion=conclusion, icone=wx.ICON_ERROR, boutons=[_(u"Ok"),]) dlgErreur.ShowModal() dlgErreur.Destroy() return False dlg = wx.MessageDialog(self, _(u"L'email de test a été envoyé avec succès."), _(u"Test de connexion"), wx.OK | wx.ICON_INFORMATION) dlg.ShowModal() dlg.Destroy()
def AfficheAvertissement(self): if UTILS_Parametres.Parametres(mode="get", categorie="ne_plus_afficher", nom="infos_etat_nomin", valeur=False) == True: return import DLG_Message_html texte = u""" <CENTER><IMG SRC="Static/Images/32x32/Information.png"> <BR><BR> <FONT SIZE=2> <B>Avertissement</B> <BR><BR> La fonctionnalité 'Etat nominatif des consommations' étant très récente, je ne peux que vous conseiller de bien vérifier les résultats obtenus. Si vous constatez un bug, n'hésitez pas à le signaler sur le forum de Noethys. <BR><BR> D'autre part, cette fonctionnalité peut être ardue à appréhender en raison de ses nombreuses possibilités. Je vous propose de découvrir sur le forum un mode d'emploi complet sur son utilisation : <BR> <A HREF="http://www.noethys.com/index.php?option=com_kunena&Itemid=7&func=view&catid=5&id=772#772">Cliquez ici pour accéder au mode d'emploi</A> </FONT> </CENTER> """ dlg = DLG_Message_html.Dialog(self, texte=texte, titre=_(u"Information"), nePlusAfficher=True) dlg.ShowModal() nePlusAfficher = dlg.GetEtatNePlusAfficher() dlg.Destroy() if nePlusAfficher == True: UTILS_Parametres.Parametres(mode="set", categorie="ne_plus_afficher", nom="infos_etat_nomin", valeur=nePlusAfficher)
def AnnonceRappel(self): # Affichage à 70 % de chance if random.randrange(1, 100) > 70 : return False # Vérifie si case Ne plus Afficher cochée ou non if UTILS_Parametres.Parametres(mode="get", categorie="ne_plus_afficher", nom="sauvegarde_automatique", valeur=False) == True : return False try : image = wx.Bitmap(Chemins.GetStaticPath("Images/48x48/Sauvegarder.png"), wx.BITMAP_TYPE_ANY) message1 = _(u"Vous n'avez paramétré aucune sauvegarde automatique.\n\nSouhaitez-vous le faire maintenant ?") dlg = dialogs.MultiMessageDialog(self.parent, message1, caption=_(u"Rappel de sauvegarde"), msg2=None, style = wx.NO | wx.CANCEL | wx.YES | wx.YES_DEFAULT, icon=image, btnLabels={wx.ID_YES : _(u"Oui"), wx.ID_NO : _(u"Ne plus rappeler"), wx.ID_CANCEL : _(u"Pas maintenant")}) reponse = dlg.ShowModal() dlg.Destroy() except : reponse = None if reponse == wx.ID_YES : from Dlg import DLG_Sauvegardes_auto dlg = DLG_Sauvegardes_auto.Dialog(self.parent) dlg.ShowModal() dlg.Destroy() return wx.ID_CANCEL if reponse == wx.ID_NO : UTILS_Parametres.Parametres(mode="set", categorie="ne_plus_afficher", nom="sauvegarde_automatique", valeur=True) if reponse == wx.ID_CANCEL : return True return True
def OnBoutonOk(self, event): # Vérification des données saisies if self.ctrl_etat_avant.GetValeur() == None : dlg = wx.MessageDialog(self, _(u"Vous devez obligatoirement sélectionner un état à convertir !"), _(u"Erreur"), wx.OK | wx.ICON_EXCLAMATION) dlg.ShowModal() dlg.Destroy() return if self.ctrl_etat_apres.GetValeur() == None : dlg = wx.MessageDialog(self, _(u"Vous devez obligatoirement sélectionner l'état souhaité !"), _(u"Erreur"), wx.OK | wx.ICON_EXCLAMATION) dlg.ShowModal() dlg.Destroy() return if self.ctrl_etat_avant.GetValeur() == self.ctrl_etat_apres.GetValeur() : dlg = wx.MessageDialog(self, _(u"Les deux états sélectionnés doivent être différents !"), _(u"Erreur"), wx.OK | wx.ICON_EXCLAMATION) dlg.ShowModal() dlg.Destroy() return # Mémorisation des paramètres etat_avant = self.ctrl_etat_avant.GetValeur() UTILS_Parametres.Parametres(mode="set", categorie="conversion_etat", nom="etat_avant", valeur=etat_avant) etat_apres = self.ctrl_etat_apres.GetValeur() UTILS_Parametres.Parametres(mode="set", categorie="conversion_etat", nom="etat_apres", valeur=etat_apres) if self.radio_lignes_affichees.GetValue() == True : UTILS_Parametres.Parametres(mode="set", categorie="conversion_etat", nom="option_lignes", valeur="lignes_affichees") if self.radio_lignes_selectionnees.GetValue() == True : UTILS_Parametres.Parametres(mode="set", categorie="conversion_etat", nom="option_lignes", valeur="lignes_selectionnees") # Fermeture de la fenêtre self.EndModal(wx.ID_OK)
def AfficheAvertissement(self): if UTILS_Parametres.Parametres(mode="get", categorie="ne_plus_afficher", nom="synchronisation_nomadhys", valeur=False) == True: return from Dlg import DLG_Message_html texte = u""" <CENTER><IMG SRC="%s"> <BR><BR> <FONT SIZE=2> <B>Avertissement</B> <BR><BR> Cette nouvelle fonctionnalité est expérimentale. <BR><BR> Il est conseillé de tester son efficacité et sa stabilité dans un fichier test avant de l'utiliser dans votre fichier de données. <BR><BR> Merci de signaler tout bug rencontré dans la rubrique "Signaler un bug " du forum de Noethys. </FONT> </CENTER> """ % Chemins.GetStaticPath("Images/32x32/Information.png") dlg = DLG_Message_html.Dialog(self, texte=texte, titre=_(u"Information"), nePlusAfficher=True) dlg.ShowModal() nePlusAfficher = dlg.GetEtatNePlusAfficher() dlg.Destroy() if nePlusAfficher == True: UTILS_Parametres.Parametres(mode="set", categorie="ne_plus_afficher", nom="synchronisation_nomadhys", valeur=nePlusAfficher)
def __init__(self, parent, IDinscription=None): wx.Dialog.__init__(self, parent, -1, name="DLG_Impression_inscription", style=wx.DEFAULT_DIALOG_STYLE) self.parent = parent self.IDinscription = IDinscription self.dictSave = {} self.listeAdresses = [] # Importation des données self.dictInscription = self.Importation() self.IDfamille = self.dictInscription["IDFAMILLE"] # Bandeau intro = _(u"Vous pouvez ici éditer une confirmation d'inscription. Sélectionnez un modèle de document puis cliquez tout simplement sur 'Aperçu' ou sur 'Envoyer Par Email'.") titre = _(u"Edition d'une confirmation d'inscription") self.SetTitle(titre) self.ctrl_bandeau = CTRL_Bandeau.Bandeau(self, titre=titre, texte=intro, hauteurHtml=30, nomImage="Images/32x32/Imprimante.png") # Options self.staticbox_options_staticbox = wx.StaticBox(self, -1, _(u"Options")) self.label_modele = wx.StaticText(self, -1, _(u"Modèle :")) self.ctrl_modele = CTRL_Choix_modele.CTRL_Choice(self, categorie="inscription") self.bouton_gestion_modeles = wx.BitmapButton(self, -1, wx.Bitmap(Chemins.GetStaticPath(u"Images/16x16/Mecanisme.png"), wx.BITMAP_TYPE_ANY)) self.label_signataire = wx.StaticText(self, -1, _(u"Signataire :")) self.ctrl_signataire = CTRL_Signataires(self) self.label_intro = wx.StaticText(self, -1, _(u"Intro :")) self.ctrl_intro = wx.CheckBox(self, -1, u"") self.ctrl_intro.SetValue(True) self.ctrl_texte_intro = wx.TextCtrl(self, -1, TEXTE_INTRO, style=wx.TE_MULTILINE) self.ctrl_texte_intro.SetMinSize((400, 120)) self.label_tableau = wx.StaticText(self, -1, _(u"Tableau :")) self.ctrl_tableau = wx.CheckBox(self, -1, _(u"Afficher un tableau comportant les caractéristiques de l'inscription")) # Boutons self.bouton_aide = CTRL_Bouton_image.CTRL(self, texte=_(u"Aide"), cheminImage="Images/32x32/Aide.png") self.bouton_email = CTRL_Bouton_image.CTRL(self, texte=_(u"Envoyer par Email"), cheminImage="Images/32x32/Emails_exp.png") self.bouton_ok = CTRL_Bouton_image.CTRL(self, texte=_(u"Aperçu"), cheminImage="Images/32x32/Apercu.png") self.bouton_annuler = CTRL_Bouton_image.CTRL(self, texte=_(u"Fermer"), cheminImage="Images/32x32/Fermer.png") self.__set_properties() self.__do_layout() self.Bind(wx.EVT_BUTTON, self.OnBoutonModeles, self.bouton_gestion_modeles) self.Bind(wx.EVT_CHECKBOX, self.OnCheckIntro, self.ctrl_intro) self.Bind(wx.EVT_BUTTON, self.OnBoutonAide, self.bouton_aide) self.Bind(wx.EVT_BUTTON, self.OnBoutonEmail, self.bouton_email) self.Bind(wx.EVT_BUTTON, self.OnBoutonOk, self.bouton_ok) self.Bind(wx.EVT_BUTTON, self.OnBoutonAnnuler, self.bouton_annuler) self.Bind(wx.EVT_CLOSE, self.OnBoutonAnnuler) # Init contrôles self.OnCheckIntro(None) self.ctrl_texte_intro.SetValue(UTILS_Parametres.Parametres(mode="get", categorie="edition_confirmation_inscription", nom="intro", valeur=TEXTE_INTRO)) self.ctrl_intro.SetValue(UTILS_Parametres.Parametres(mode="get", categorie="edition_confirmation_inscription", nom="check_intro", valeur=True)) self.ctrl_tableau.SetValue(UTILS_Parametres.Parametres(mode="get", categorie="edition_confirmation_inscription", nom="check_tableau", valeur=True)) self.OnCheckIntro(None) wx.CallLater(0, self.Layout)
def OnBoutonAnnuler(self, event): # Historique self.Sauvegarder() # Parametres UTILS_Parametres.Parametres(mode="set", categorie="edition_confirmation_inscription", nom="intro", valeur=self.ctrl_texte_intro.GetValue()) UTILS_Parametres.Parametres(mode="set", categorie="edition_confirmation_inscription", nom="check_intro", valeur=self.ctrl_intro.GetValue()) UTILS_Parametres.Parametres(mode="set", categorie="edition_confirmation_inscription", nom="check_tableau", valeur=self.ctrl_tableau.GetValue()) # Fermeture de la fenêtre self.EndModal(wx.ID_OK)
def OnBoutonOk(self, event): # Vérification des données saisies if self.ctrl_unite_origine.GetValeur() == None : dlg = wx.MessageDialog(self, _(u"Vous devez obligatoirement sélectionner une unité à recopier !"), _(u"Erreur"), wx.OK | wx.ICON_EXCLAMATION) dlg.ShowModal() dlg.Destroy() return if self.ctrl_unite_destination.GetValeur() == None : dlg = wx.MessageDialog(self, _(u"Vous devez obligatoirement sélectionner l'unité vers laquelle recopier !"), _(u"Erreur"), wx.OK | wx.ICON_EXCLAMATION) dlg.ShowModal() dlg.Destroy() return if self.ctrl_unite_origine.GetValeur() == self.ctrl_unite_destination.GetValeur() : dlg = wx.MessageDialog(self, _(u"Les deux unités sélectionnées doivent être différentes !"), _(u"Erreur"), wx.OK | wx.ICON_EXCLAMATION) dlg.ShowModal() dlg.Destroy() return # Mémorisation des paramètres UTILS_Parametres.Parametres(mode="set", categorie="recopiage_conso", nom="unite_origine", valeur=self.ctrl_unite_origine.GetValeur()) UTILS_Parametres.Parametres(mode="set", categorie="recopiage_conso", nom="unite_destination", valeur=self.ctrl_unite_destination.GetValeur()) UTILS_Parametres.Parametres(mode="set", categorie="recopiage_conso", nom="param_horaires", valeur=self.check_param_horaires.GetValue()) UTILS_Parametres.Parametres(mode="set", categorie="recopiage_conso", nom="param_quantite", valeur=self.check_param_quantite.GetValue()) UTILS_Parametres.Parametres(mode="set", categorie="recopiage_conso", nom="param_etiquettes", valeur=self.check_param_etiquettes.GetValue()) UTILS_Parametres.Parametres(mode="set", categorie="recopiage_conso", nom="param_etat", valeur=self.check_param_etat.GetValue()) if self.radio_lignes_affichees.GetValue() == True : UTILS_Parametres.Parametres(mode="set", categorie="recopiage_conso", nom="option_lignes", valeur="lignes_affichees") if self.radio_lignes_selectionnees.GetValue() == True : UTILS_Parametres.Parametres(mode="set", categorie="recopiage_conso", nom="option_lignes", valeur="lignes_selectionnees") # Fermeture de la fenêtre self.EndModal(wx.ID_OK)
def OnBoutonFermer(self, event): UTILS_Parametres.Parametres(mode="set", categorie="rolmre", nom="code_col", valeur=self.ctrl_code_coll.GetValue()) UTILS_Parametres.Parametres(mode="set", categorie="rolmre", nom="code_nat", valeur=self.ctrl_code_nat.GetValue()) UTILS_Parametres.Parametres(mode="set", categorie="rolmre", nom="code_rec", valeur=self.ctrl_code_rec.GetValue()) self.EndModal(wx.ID_CANCEL)
def Memorisation_parametres(self): # Mémorisation des préférences inclure_pieces_jointes = self.ctrl_parametres.GetPropertyValue( "inclure_pieces_jointes") format_nom_fichier = self.ctrl_parametres.GetPropertyValue( "format_nom_fichier") UTILS_Parametres.Parametres(mode="set", categorie="export_pes", nom="inclure_pieces_jointes", valeur=inclure_pieces_jointes) UTILS_Parametres.Parametres(mode="set", categorie="export_pes", nom="format_nom_fichier", valeur=format_nom_fichier)
def OnBoutonOk(self, event): # Largeur Colonnes Unités newLargeur = self.ctrl_largeurUnite.GetValue() try: newLargeur = int(newLargeur) except: dlg2 = wx.MessageDialog( self, _(u"La largeur des colonnes unités semble incorrecte !"), _(u"Erreur de saisie"), wx.OK | wx.ICON_INFORMATION) dlg2.ShowModal() dlg2.Destroy() dlg.Destroy() return if newLargeur < 30 or newLargeur > 300: dlg2 = wx.MessageDialog( self, _(u"La largeur des colonnes unités doit être comprise entre 30 et 300 !" ), _(u"Erreur de saisie"), wx.OK | wx.ICON_INFORMATION) dlg2.ShowModal() dlg2.Destroy() return # Mémorisation paramètres UTILS_Parametres.Parametres( mode="set", categorie="parametres_remplissage", nom="masquer_anciennes_activites", valeur=int(self.ctrl_masquer_activites.GetValue())) # Fermeture de la fenêtre self.EndModal(wx.ID_OK)
def CreateIDfamille(DB, parametres=None): """ Crée la fiche famille dans la base de données afin d'obtenir un IDfamille et un IDcompte_payeur """ from Utils import UTILS_Internet date_creation = str(datetime.date.today()) IDfamille = DB.ReqInsert("familles", [ ("date_creation", date_creation), ]) # Création du compte payeur IDcompte_payeur = DB.ReqInsert("comptes_payeurs", [ ("IDfamille", IDfamille), ]) # Création des codes internet try: internet_identifiant = parametres['identifiant'] except: internet_identifiant = UTILS_Internet.CreationIdentifiant( IDfamille=IDfamille) try: internet_mdp = parametres['password1'] except: taille = UTILS_Parametres.Parametres(mode="get", categorie="comptes_internet", nom="taille_passwords", valeur=8) internet_mdp = UTILS_Internet.CreationMDP(nbreCaract=taille) # Sauvegarde des données listeDonnees = [ ("IDcompte_payeur", IDcompte_payeur), ("internet_actif", 1), ("internet_identifiant", internet_identifiant), ("internet_mdp", internet_mdp), ] print listeDonnees DB.ReqMAJ("familles", listeDonnees, "IDfamille", IDfamille) return IDfamille
def RestaurationConfiguration(nomListe=None, listeColonnesDefaut=[]): listeColonnesFinale = [] # Mémorise les colonnes par défaut dictColonnes = {} for col in listeColonnesDefaut : dictColonnes[col.valueGetter] = col # Lecture du paramètres stocké texteDefaut = ConvertListeEnTexte(listeColonnesDefaut) texte = UTILS_Parametres.Parametres(mode="get", categorie="configuration_liste_colonnes", nom=nomListe, valeur=texteDefaut) listeChaines = texte.split("##") listeNomsTemp = [] for chaine in listeChaines : try : nom, visible = chaine.split(";") if visible == "oui" : visible = True else : visible = False if dictColonnes.has_key(nom) : col = dictColonnes[nom] col.visible = visible listeColonnesFinale.append(col) listeNomsTemp.append(nom) except : pass # Vérifie que toutes les colonnes de la liste initiale ont été traitées for nom, col in dictColonnes.iteritems() : if nom not in listeNomsTemp : listeColonnesFinale.append(col) return listeColonnesFinale
def InitIdentifiantsFiches(): """ Remplit tous les champs identifiant et mdp de toutes les fiches familles """ DB = GestionDB.DB() req = """SELECT IDfamille, nom, prenom FROM familles ORDER BY nom, prenom; """ DB.executerReq(req) listeDonnees = DB.resultatReq() DB.close() taille = UTILS_Parametres.Parametres(mode="get", categorie="comptes_internet", nom="taille_passwords", valeur=7) DB = GestionDB.DB() for IDfamille, nom, prenom in listeDonnees: identifiant = CreationIdentifiant(IDfamille) mdp = CreationMDP(nbreCaract=taille) listeDonnees = [ ("internet_identifiant", identifiant), ("internet_mdp", mdp), ("internet_actif", 1), ] # Modification de l'identité de l'ENFANT DB.ReqMAJ("familles", listeDonnees, "IDfamille", IDfamille) DB.commit() DB.close()
def Sauvegarde(self, forcer=False): """ Mémorisation des valeurs du contrôle """ dictValeurs = copy.deepcopy(self.GetPropertyValues()) UTILS_Parametres.ParametresCategorie( mode="set", categorie="impression_recap_factures", dictParametres=dictValeurs)
def MemorisationParametres(self): dictValeurs = { "intro_activer" : self.ctrl_intro.GetValue(), "intro_texte" : self.ctrl_texte_intro.GetValue(), "prestations_afficher" : self.ctrl_prestations.GetValue(), } UTILS_Parametres.ParametresCategorie(mode="set", categorie="impression_recu", dictParametres=dictValeurs)
def RegenererMdp(self, event): if "********" in self.ctrl_mdp.GetValue(): dlg = wx.MessageDialog( self, _(u"Attention, ce mot de passe a déjà été personnalisé par l'usager ! \n\nSouhaitez-vous vraiment modifier ce mot de passe ?" ), _(u"Avertissement"), wx.YES_NO | wx.NO_DEFAULT | wx.CANCEL | wx.ICON_EXCLAMATION) reponse = dlg.ShowModal() dlg.Destroy() if reponse != wx.ID_YES: return False dlg = wx.MessageDialog( self, _(u"Vous êtes vraiment sûr de vouloir générer un nouveau mot de passe ?" ), _(u"Avertissement"), wx.YES_NO | wx.NO_DEFAULT | wx.CANCEL | wx.ICON_EXCLAMATION) reponse = dlg.ShowModal() dlg.Destroy() if reponse != wx.ID_YES: return False taille = UTILS_Parametres.Parametres(mode="get", categorie="comptes_internet", nom="taille_passwords", valeur=8) internet_mdp = UTILS_Internet.CreationMDP(nbreCaract=taille, cryptage=False) self.ctrl_mdp.SetValue(internet_mdp)
def Sauvegarde(self): """ Mémorisation des valeurs du contrôle """ # Récupération des noms et valeurs par défaut du contrôle dictValeurs = copy.deepcopy(self.GetPropertyValues()) # Sauvegarde des valeurs UTILS_Parametres.ParametresCategorie(mode="set", categorie="impression_facture", dictParametres=dictValeurs)
def Sauvegarde(self, forcer=False): """ Mémorisation des valeurs du contrôle """ if self.GetPropertyByName( "memoriser_parametres").GetValue() == True or forcer == True: dictValeurs = copy.deepcopy(self.GetPropertyValues()) UTILS_Parametres.ParametresCategorie( mode="set", categorie="impression_facture", dictParametres=dictValeurs)
def MemorisationParametres(self): # Mémorisation des paramètres if self.ctrl_origine.GetCode() != self.ctrl_destination.GetCode() : dictValeurs = { "origine" : self.ctrl_origine.GetCode(), "destination": self.ctrl_destination.GetCode(), "moyen": self.GetMoyen(), } UTILS_Parametres.ParametresCategorie(mode="set", categorie="locations_mesure_distance", dictParametres=dictValeurs)
def Sauvegarde(self): """ Mémorisation des valeurs du contrôle """ # Mémorisation des paramètres dans la base de données dictValeurs = copy.deepcopy(self.GetPropertyValues()) UTILS_Parametres.ParametresCategorie(mode="set", categorie="portail", dictParametres=dictValeurs) # Mémorisation de la config sur cet ordi for key in ("serveur_portail_activation", "serveur_synchro_delai", "serveur_synchro_ouverture", "hebergement_type") : UTILS_Config.SetParametre(key, self.GetPropertyByName(key).GetValue())
def MAJ(self): # Paramètres self.ctrl_factures.SetParametres(self.parent.dictParametres) # Montant try: montant = UTILS_Parametres.Parametres(mode="get", categorie="generation_factures", nom="cocher_montant_sup", valeur=0.0) except: montant = 0.0 self.ctrl_option_montant.SetMontant(montant)
def __init__(self, parent): wx.Dialog.__init__(self, parent, -1, style=wx.DEFAULT_DIALOG_STYLE) self.parent = parent # Bandeau titre = _(u"Convertir l'état des consommations") self.SetTitle(titre) intro = _(u"Sélectionnez l'état à convertir puis l'état souhaité. Vous pouvez également préciser les lignes à impacter.") self.ctrl_bandeau = CTRL_Bandeau.Bandeau(self, titre=titre, texte=intro, hauteurHtml=30, nomImage="Images/32x32/Calendrier_modifier.png") # Conversion self.staticbox_conversion = wx.StaticBox(self, -1, _(u"Etats")) self.ctrl_etat_avant = CTRL_Etat(self) self.ctrl_image_conversion = wx.StaticBitmap(self, -1, wx.Bitmap(Chemins.GetStaticPath(u"Images/16x16/Fleche_droite2.png"), wx.BITMAP_TYPE_ANY)) self.ctrl_etat_apres = CTRL_Etat(self) # Options self.staticbox_options = wx.StaticBox(self, -1, _(u"Options")) self.radio_lignes_affichees = wx.RadioButton(self, -1, _(u"Toutes les lignes affichées"), style=wx.RB_GROUP) self.radio_lignes_selectionnees = wx.RadioButton(self, -1, _(u"Toutes les lignes sélectionnées")) # Boutons self.bouton_aide = CTRL_Bouton_image.CTRL(self, texte=_(u"Aide"), cheminImage="Images/32x32/Aide.png") self.bouton_ok = CTRL_Bouton_image.CTRL(self, texte=_(u"Ok"), cheminImage="Images/32x32/Valider.png") self.bouton_annuler = CTRL_Bouton_image.CTRL(self, id=wx.ID_CANCEL, texte=_(u"Annuler"), cheminImage="Images/32x32/Annuler.png") self.__set_properties() self.__do_layout() self.Bind(wx.EVT_BUTTON, self.OnBoutonAide, self.bouton_aide) self.Bind(wx.EVT_BUTTON, self.OnBoutonOk, self.bouton_ok) # Init etat_avant = UTILS_Parametres.Parametres(mode="get", categorie="conversion_etat", nom="etat_avant", valeur=None) self.ctrl_etat_avant.SetValeur(etat_avant) etat_apres = UTILS_Parametres.Parametres(mode="get", categorie="conversion_etat", nom="etat_apres", valeur=None) self.ctrl_etat_apres.SetValeur(etat_apres) option_lignes = UTILS_Parametres.Parametres(mode="get", categorie="conversion_etat", nom="option_lignes", valeur="lignes_affichees") if option_lignes == "lignes_affichees" : self.radio_lignes_affichees.SetValue(True) if option_lignes == "lignes_selectionnees" : self.radio_lignes_selectionnees.SetValue(True)
def OnBoutonCafpro(self, event): # Mémorisation du numéro allocataire dans le presse-papiers num_allocataire = self.ctrl_numero.GetValue() clipdata = wx.TextDataObject() clipdata.SetText(num_allocataire) wx.TheClipboard.Open() wx.TheClipboard.SetData(clipdata) wx.TheClipboard.Close() # Vérifie si case Ne plus Afficher cochée ou non if UTILS_Parametres.Parametres(mode="get", categorie="ne_plus_afficher", nom="acces_cafpro", valeur=False) == False: texte = u""" <CENTER><IMG SRC="Static/Images/32x32/Astuce.png"> <FONT SIZE=3> <BR> <B>Astuce</B> <BR><BR> Le numéro d'allocataire de la famille a été copié dans le presse-papiers. <BR><BR> Collez tout simplement ce numéro dans le champ de recherche du site CAFPRO grâce à la combinaison de touches <B>CTRL+V</B> de votre clavier ! </FONT> </CENTER> """ dlg = DLG_Message_html.Dialog(self, texte=texte, titre=_(u"Astuce"), nePlusAfficher=True, size=(200, 300)) dlg.ShowModal() nePlusAfficher = dlg.GetEtatNePlusAfficher() dlg.Destroy() if nePlusAfficher == True: UTILS_Parametres.Parametres(mode="set", categorie="ne_plus_afficher", nom="acces_cafpro", valeur=nePlusAfficher) # Ouverture du navigateur import webbrowser webbrowser.open("http://www.caf.fr/cafpro/Ident.jsp")
def OnBoutonOk(self, event): # Mémorisation paramètres UTILS_Parametres.Parametres( mode="set", categorie="parametres_remplissage", nom="masquer_anciennes_activites", valeur=int(self.ctrl_masquer_activites.GetValue())) # Fermeture de la fenêtre self.EndModal(wx.ID_OK)
def Importation(self): """ Importation des valeurs dans le contrôle """ # Récupération des noms et valeurs par défaut du contrôle dictValeurs = copy.deepcopy(self.GetPropertyValues()) # Recherche les paramètres mémorisés dictParametres = UTILS_Parametres.ParametresCategorie(mode="get", categorie="impression_facture", dictParametres=dictValeurs) # Envoie les paramètres dans le contrôle for nom, valeur in list(dictParametres.items()) : propriete = self.GetPropertyByName(nom) ancienneValeur = propriete.GetValue() propriete.SetValue(valeur)
def __init__(self, parent): wx.Dialog.__init__(self, parent, -1, style=wx.DEFAULT_DIALOG_STYLE) self.parent = parent # Bandeau titre = _(u"Recopier des consommations") self.SetTitle(titre) intro = _(u"Vous pouvez ici recopier les consommations d'une unité sur une autre unité. Sélectionnez les unités à impacter puis cliquez sur Ok.") self.ctrl_bandeau = CTRL_Bandeau.Bandeau(self, titre=titre, texte=intro, hauteurHtml=30, nomImage="Images/32x32/Calendrier_modifier.png") # Unités self.staticbox_unites = wx.StaticBox(self, -1, _(u"Unités")) self.ctrl_unite_origine = CTRL_Unite(self) self.ctrl_image_recopiage = wx.StaticBitmap(self, -1, wx.Bitmap(Chemins.GetStaticPath(u"Images/16x16/Fleche_droite2.png"), wx.BITMAP_TYPE_ANY)) self.ctrl_unite_destination = CTRL_Unite(self) # Paramètres self.staticbox_parametres = wx.StaticBox(self, -1, _(u"Informations à recopier")) self.check_param_horaires = wx.CheckBox(self, -1, _(u"Horaires")) self.check_param_quantite = wx.CheckBox(self, -1, _(u"Quantité")) self.check_param_etiquettes = wx.CheckBox(self, -1, _(u"Etiquettes")) self.check_param_etat = wx.CheckBox(self, -1, _(u"Etat")) # Options self.staticbox_options = wx.StaticBox(self, -1, _(u"Options")) self.radio_lignes_affichees = wx.RadioButton(self, -1, _(u"Toutes les lignes affichées"), style=wx.RB_GROUP) self.radio_lignes_selectionnees = wx.RadioButton(self, -1, _(u"Toutes les lignes sélectionnées")) # Boutons self.bouton_aide = CTRL_Bouton_image.CTRL(self, texte=_(u"Aide"), cheminImage="Images/32x32/Aide.png") self.bouton_ok = CTRL_Bouton_image.CTRL(self, texte=_(u"Ok"), cheminImage="Images/32x32/Valider.png") self.bouton_annuler = CTRL_Bouton_image.CTRL(self, id=wx.ID_CANCEL, texte=_(u"Annuler"), cheminImage="Images/32x32/Annuler.png") self.__set_properties() self.__do_layout() self.Bind(wx.EVT_CHOICE, self.OnChoixUnite, self.ctrl_unite_origine) self.Bind(wx.EVT_CHOICE, self.OnChoixUnite, self.ctrl_unite_destination) self.Bind(wx.EVT_BUTTON, self.OnBoutonAide, self.bouton_aide) self.Bind(wx.EVT_BUTTON, self.OnBoutonOk, self.bouton_ok) # Init self.ctrl_unite_origine.SetValeur(UTILS_Parametres.Parametres(mode="get", categorie="recopiage_conso", nom="unite_origine", valeur=None)) self.ctrl_unite_destination.SetValeur(UTILS_Parametres.Parametres(mode="get", categorie="recopiage_conso", nom="unite_destination", valeur=None)) self.check_param_horaires.SetValue(UTILS_Parametres.Parametres(mode="get", categorie="recopiage_conso", nom="param_horaires", valeur=True)) self.check_param_quantite.SetValue(UTILS_Parametres.Parametres(mode="get", categorie="recopiage_conso", nom="param_quantite", valeur=True)) self.check_param_etiquettes.SetValue(UTILS_Parametres.Parametres(mode="get", categorie="recopiage_conso", nom="param_etiquettes", valeur=True)) self.check_param_etat.SetValue(UTILS_Parametres.Parametres(mode="get", categorie="recopiage_conso", nom="param_etat", valeur=True)) option_lignes = UTILS_Parametres.Parametres(mode="get", categorie="recopiage_conso", nom="option_lignes", valeur="lignes_affichees") if option_lignes == "lignes_affichees" : self.radio_lignes_affichees.SetValue(True) if option_lignes == "lignes_selectionnees" : self.radio_lignes_selectionnees.SetValue(True) self.OnChoixUnite(None)