def initChamps(self, appli): self.efSession.setvalue(Commun.getSession(appli)) self.efIntitule.setvalue(appli.userData['INTITULE']) self.cbActiv.selectitem(appli.userData['ACTIVATION']) self.efQrz.setvalue(appli.userData['INDICATIF']) # Indicatif station self.efVille.setvalue(appli.userData['LOCALITE']) # Ville self.eSrv.insert(0, appli.userData['SERVICE']) # Indicatif station self.eDept.insert(0, appli.userData['LIB_DPT']) # Indicatif station self.iDefFic.set(False) self.cocherDefFic() # Cocher pour masquer les fichiers self.eMCI.insert(0, Commun.getFicMCI(appli)) self.eVict.insert(0, Commun.getFicGVict(appli)) self.eSater.insert(0, Commun.getFicGSat(appli)) self.eCarto.insert(0, Commun.getFicGPoi(appli)) self.iDefUrg.set(False) self.cocherDefUrg() # Cocher pour masquer les fichiers self.cbUrgOBNT.selectitem(appli.userData['URG_OBNT']) self.cbUrgDM.selectitem(appli.userData['URG_DM']) self.cbUrgRMD.selectitem(appli.userData['URG_RMD']) self.cbUrgTMD.selectitem(appli.userData['URG_TMD']) self.cbUrgAMB.selectitem(appli.userData['URG_BILAMB']) self.cbUrgSEC.selectitem(appli.userData['URG_BILSEC']) self.cbUrgBT.selectitem(appli.userData['URG_BT']) self.cbUrgSATER.selectitem(appli.userData['URG_SATER']) self.cbUrgPOI.selectitem(appli.userData['URG_POI']) vImpr = appli.userData['IMPRESSION'] self.rbImpr.invoke(vImpr) # Demande d'impression des messages vTrace = appli.userData['TRACE'] self.rbTrace.invoke(vTrace) # Demande d'impression des traces
def alimListe(self): try: fic = open( Commun.getFullPath(self.root, Commun.getFicGSat(self.root)), 'r') except IOError: return entete = fic.readline() # on n'en fait rien for line in fic.readlines(): vData = line.split(';') vHeure = vData[0].split(" ") vLigne = " " + vHeure[1].ljust(5)+" | " + \ vData[1].ljust(10)+" | " + \ vData[5].ljust(14)+" | " + \ vData[6].ljust(14)+" | " + \ vData[7].ljust(5) +" | " + \ vData[8].ljust(5) +" | " + \ vData[9].rstrip("\n") self.lbListe.insert('0', vLigne) self.lbListe.see('0') fic.close()
def validerGVict(self, evt=None): "Traitement du bouton 'Valider'" # Contrôle de la validité des données if self.controleSaisie() == False: # Si erreur, on stoppe le traitement return False # Ligne Victime infosVict = Commun.InfosVict(self.efGdh.getvalue(), self.efNum.getvalue(), self.eAge.get(), self.rbSexe.getvalue(), \ self.eNom.get(), self.cbNature.get(), self.cbVitale.get(), \ self.cbUrgence.get(), self.eAutre.get()) infosVict.ecrire(self.root) self.afficherListe(infosVict) # Ligne de MCI vTexte = "Victime : Num = " + self.efNum.getvalue() + \ ", Nature = " + self.cbNature.get() +", Urgence = " + self.cbUrgence.get() infosMCI = Commun.InfosMCI(self.efGdh.getvalue(), self.cbEmetteur.get(), self.cbDestinataire.get(),\ self.root.userData['URG_BILSEC'], " ", vTexte) infosMCI.ecrire(self.root) # Remise à Zéro du formulaire self.razSaisie()
def initSession(self): self.efSession.setvalue(Commun.getSession(self.root)) self.efSession.component('entry').config(state = DISABLED) self.efIntitule.setvalue(self.root.userData['INTITULE']) self.cbActiv.selectitem(self.root.userData['ACTIVATION']) self.efQrz.setvalue(self.root.userData['INDICATIF']) # Indicatif station self.efVille.setvalue(self.root.userData['LOCALITE']) # Ville self.eSrv.insert(0, self.root.userData['SERVICE']) # Indicatif station self.eDept.insert(0, self.root.userData['LIB_DPT']) # Indicatif station self.eMCI.insert(0,Commun.getFicMCI(self.root)) self.eVict.insert(0,Commun.getFicGVict(self.root)) self.eSater.insert(0,Commun.getFicGSat(self.root)) self.eCarto.insert(0,Commun.getFicGPoi(self.root)) self.cbUrgOBNT.selectitem(self.root.userData['URG_OBNT']) self.cbUrgDM.selectitem(self.root.userData['URG_DM']) self.cbUrgRMD.selectitem(self.root.userData['URG_RMD']) self.cbUrgTMD.selectitem(self.root.userData['URG_TMD']) self.cbUrgAMB.selectitem(self.root.userData['URG_BILAMB']) self.cbUrgSEC.selectitem(self.root.userData['URG_BILSEC']) self.cbUrgBT.selectitem(self.root.userData['URG_BT']) self.cbUrgSATER.selectitem(self.root.userData['URG_SATER']) self.cbUrgPOI.selectitem(self.root.userData['URG_POI']) vImprLog = self.root.userData['IMPR_LOG'] self.rbImprLog.invoke(vImprLog) # Demande d'impression des messages vImprMsg = self.root.userData['IMPR_MSG'] self.rbImprMsg.invoke(vImprMsg) # Demande d'impression des messages vTrace = self.root.userData['TRACE'] self.rbTrace.invoke(vTrace) # Demande d'impression des traces
def alimListe(self): try: fic = open( Commun.getFullPath(self.root, Commun.getFicMCI(self.root)), 'r') except IOError: return entete = fic.readline( ) # L'entête est la première ligne du fichier : on n'en fait rien for line in fic.readlines(): vData = line.split(';') vHeure = vData[0].split(" ") # Extraction et mise en forme des données vLigne = " " + vHeure[1].ljust(5)+" | " + vData[2].ljust(10)+" | " + \ vData[3].ljust(10)+" | " + vData[4].ljust(17)+" | " + vData[5].rstrip("\n") self.lbListe.insert('0', vLigne) # Colorisation de la ligne try: vIndex = self.root.cfgListe['DegUrg'].index(vData[4]) self.lbListe.itemconfig('0', fg=self.fgCol[vIndex]) self.lbListe.itemconfig('0', bg=self.bgCol[vIndex]) except ValueError: True fic.close() # Positionner la liste sur la première ligne self.lbListe.see('0')
def validerGSat(self, evt=None): "Traitement du bouton 'Valider'" #Contrôle de la validité des données if self.controleSaisie() == False: # Si erreur, on stoppe le traitement return False # Ligne SATER infosSATER = Commun.InfosSATER(self.efGdh.getvalue(), self.cbEmetteur.get(), self.cbDestinataire.get(), \ self.cbSysteme.get(), self.cbDatum.get(), self.efCoordX.getvalue(), \ self.efCoordY.getvalue(), self.efDir.getvalue(), self.efForce.getvalue(), \ self.efComment.getvalue()) infosSATER.ecrire(self.root) self.afficherListe(infosSATER) # Ligne de MCI vTexte = "Releve SATER : X = " + self.efCoordX.getvalue() + \ ", Y = " + self.efCoordY.getvalue() +", Dir = " + self.efDir.getvalue() infosMCI = Commun.InfosMCI(self.efGdh.getvalue(), self.cbEmetteur.get(), self.cbDestinataire.get(), \ self.root.userData['URG_SATER'], " ", vTexte) infosMCI.ecrire(self.root) # Remise à Zéro du formulaire self.razSaisie()
def sauveSession(appli): """Sauvegarde des paramètres de session""" vData = [] for cle, valeur in appli.userData.items(): vData.append(cle + " = " + valeur + "\n") fic = open(Commun.getFullPath(appli, Commun.getFicSession(appli)), 'w') fic.writelines(vData) fic.close()
def writeSession(self): """Sauvegarde des paramètres de session""" vData = [] for cle, valeur in self.root.userData.items(): vData.append(cle + " = " + valeur+"\n") fic = open(Commun.getFullPath(self.root,Commun.getFicSession(self.root)), 'w') fic.writelines(vData) fic.close()
def initSession(appli): """Initialisation de la session courante de GesADRA""" vTitre = appli.userData['LOGICIEL'] + " " + appli.userData['VERSION'] # Test de la présence du fichier de session pour la date du jour vChemin = Commun.getFullPath(appli, "") vFicSession = Commun.getFullPath(appli, Commun.getFicSession(appli)) vFicReseau = Commun.getFullPath(appli, Commun.getFicReseau(appli)) if os.path.isfile(vFicSession) == True: vMsg = "Reprise de session : \n Voulez-vous utiliser la session " + Commun.getSession( appli) + " en cours ?" if tkMessageBox.askyesno(vTitre, vMsg): # Ouverture des fichiers en cours appli.initUserData(Commun.getFullPath(appli, vFicSession)) appli.initNetData(Commun.getFullPath(appli, vFicReseau)) else: # fenêtre de configuration FormParam(appli, True) else: vMsg = "Nouvelle session : \n Voulez-vous utiliser les paramètres par défaut ?" if tkMessageBox.askyesno(vTitre, vMsg): # Création du répertoire de session os.mkdir(vChemin) # Création du fichier par défault à partir des éléments de GesADRA.ini appli.userData['INTITULE'] = appli.userData[ 'INTITULE'] + " " + datetime.datetime.now().strftime( "%d/%m/%Y") sauveSession(appli) Reseau.sauveReseau(appli) else: # fenêtre de configuration FormParam(appli, True)
def redigerPOI(self): # Nom du fichier self.vFicPOI = Commun.getFicPOI(self.root) # Fichier TXT self.txtFilePOI() # Fichier XML self.xmlFilePOI() # Ecriture d'une ligne dans la main courante vTexte = "Message " + self.vFicPOI infosMCI = Commun.InfosMCI(self.efGdh.getvalue(), self.cbEmetteur.get(), self.cbDestinataire.get(), \ self.cbDegUrg.get(), " ", vTexte) infosMCI.ecrire(self.root)
def redigerBILSEC(self): # Nom du fichier self.vFicBILSEC = Commun.getFicBILSEC(self.root) # Fichier TXT self.txtFileBILSEC() # Fichier XML self.xmlFileBILSEC() # Ecriture d'une ligne dans la main courante vTexte = "Message " + self.vFicBILSEC + \ " de " + self.efOrigine.getvalue() + " vers " + self.efDestAction.getvalue() infosMCI = Commun.InfosMCI(self.efGdh.getvalue(), self.cbEmetteur.get(), self.cbDestinataire.get(), \ self.cbDegUrg.get(), " ", vTexte) infosMCI.ecrire(self.root)
def validerBILSEC(self, evt=None): "Traitement du bouton 'Valider'" #Contrôle de la validité des données if self.controleSaisie() == False: # Si erreur, on stoppe le traitement return None # Recalcul des données variables (Gdh, N° message, etc...) if self.iGdh.get() == True: self.efGdh.setvalue("") vGdh = datetime.datetime.now().strftime("%d/%m/%y %H:%M") self.efGdh.setvalue(vGdh) # Rédaction du message self.redigerBILSEC() # Impression if self.root.userData['IMPR_MSG'] == "OUI": os.startfile( Commun.getFullPath(self.root, self.vFicBILSEC + ".TXT")) tkMessageBox.showinfo( 'Bilan Secouriste', 'Lancez une impression manuelle au format "Paysage" SVP') else: tkMessageBox.showinfo('Bilan Secouriste', 'Message créé : ' + self.vFicBILSEC)
def controleIndicatif(self, indice, message=None): # Message par défaut if message == None: message = "Nouvel indicatif :" # Si l'indicatif n'est pas dans le dictionnaire Réseau, on demande sa saisie indicatif = self.root.netData["STATION" + str(indice)] if indicatif == "": indicatif = tkSimpleDialog.askstring("Gestion SATER", message) # Si pas de saisie, on rend la main if indicatif == None: return "" # Contrôle par le validateur if Commun.indicatif3Validator(indicatif) == Pmw.OK: # Saisie correcte indicatif = indicatif.upper() self.root.netData["STATION" + str(indice)] = indicatif self.root.netData["STATUT" + str(indice)] = "Actif" vBulle = self.root.netData["OPERATEUR" + str( indice)] + "\n(" + self.root.netData["STATUT" + str(indice)] + ")" self.root.bulle.bind(self.boutonE[indice], vBulle.strip()) self.boutonE[indice].config(text=indicatif) else: # Erreur : relancer le contrôle de l'indicatif (récursivité) indicatif = self.controleIndicatif( indice, "Saisie incorrecte : l'indicatif doit être de 2 à 8 car.,\n" + "sans accent ni espace (tiret, slash et souligné permis) :" ) return indicatif
def txtFileOBNT(self): fic = open(Commun.getFullPath(self.root, self.vFicOBNT + ".TXT"), 'w') fic.write(self.vFicOBNT + "\n\n") fic.write( '################################################################################\n' ) fic.write('- ' + (self.root.userData['ACTIVATION'] + ' - ') * 3 + '\n') fic.write( '--------------------------------------------------------------------------------\n' ) # Informations transmission fic.write("GDH Emission : " + self.efGdh.getvalue() + "\n") fic.write("Emis par : " + self.cbEmetteur.get() + "\n") fic.write("Recu par : " + self.cbDestinataire.get() + "\n") fic.write("Instructions : " + self.eInstruc.get() + "\n") fic.write( '================================================================================\n' ) # Entête du message fic.write("MESSAGE OBNT".center(80) + "\n") fic.write("Origine : " + self.efOrigine.getvalue() + "\n") fic.write("Dest. Action : " + self.efDestAction.getvalue() + "\n") fic.write("Dest. Info : " + self.eDestInfo.get() + "\n") fic.write("Urgence : " + self.cbDegUrg.get() + "\n") fic.write( '--------------------------------------------------------------------------------\n' ) # Corps du message fic.write("Objet : " + self.efObjet.get() + "\n") fic.write("Référence : " + self.eRef.get() + "\n") fic.write("Message : \n\n") # découpage des lignes du message for ligne in self.stMessage.get(1.0, END).split("\n"): if len(ligne) > 79: for ligne in textwrap.wrap(ligne, 79): fic.write(ligne + "\n") else: fic.write(ligne + "\n") fic.write( '--------------------------------------------------------------------------------\n' ) # Final du message fic.write("GDH Dépôt : " + self.efGdhDep.getvalue() + "\n") fic.write("Demande A.R. : " + self.rbACK.getvalue() + "\n") fic.write("FIN DE MESSAGE".center(80) + "\n") fic.write( '================================================================================\n' ) fic.write('- ' + (self.root.userData['ACTIVATION'] + ' - ') * 3 + '\n') fic.write( '################################################################################\n' ) fic.close()
def validerOBNT(self, evt=None): "Traitement du bouton 'Valider'" #Contrôle de la validité des données if self.controleSaisie() == False: # Si erreur, on stoppe le traitement return None # Recalcul des données variables (Gdh, N° message, etc...) if self.iGdh.get() == True: self.efGdh.setvalue("") vGdh = datetime.datetime.now().strftime("%d/%m/%y %H:%M") self.efGdh.setvalue(vGdh) # Rédaction du message self.redigerOBNT() # Impression if self.root.userData['IMPR_MSG'] == "OUI": os.startfile(Commun.getFullPath(self.root, self.vFicOBNT + ".TXT"), "print") else: tkMessageBox.showinfo('Message OBNT', 'Message créé : ' + self.vFicOBNT) self.fenetre.destroy()
def __init__(self, appli): "Constructeur de la fenêtre OBNT" self.root = appli # Référence à l'application racine # Création de la nouvelle fenêtre self.fenetre = Commun.nouvelleFenetre(self.root, "Message standard OBNT") # Fermeture par la case système self.fenetre.protocol("WM_DELETE_WINDOW", self.quitterOBNT) # Composants de la fenêtre self.dessineOBNT() self.bulleAide() # Initialisations self.razSaisie() # Gestion des raccourcis clavier self.fenetre.bind('<Alt-v>', self.validerOBNT) self.fenetre.bind('<Return>', self.validerOBNT) self.fenetre.bind('<Alt-n>', self.annulerOBNT) self.fenetre.bind('<Escape>', self.annulerOBNT) self.fenetre.bind('<Alt-q>', self.quitterOBNT) self.stMessage.bind( '<Return>', self.notReturn ) # On ne valide pas par <Entrée> sur la zone stMessage
def xmlFilePOI(self): fic = open(Commun.getFullPath(self.root, self.vFicPOI+".XML"),'w') fic.write('<?xml version="1.0" encoding="iso-8859-15"?><?xml-stylesheet type="text/xsl" href="..\msgPOI.XSL"?>\n') fic.write('<msg>\n') fic.write('<form>Message POI</form>\n') fic.write('<soft>' + self.root.userData['LOGICIEL'] + '</soft>\n') fic.write('<vers>' + self.root.userData['VERSION'] + '</vers>\n') fic.write('<mode>' + self.root.userData['ACTIVATION'] + '</mode>\n') fic.write('<trans>\n') fic.write('<gdh>' + self.efGdh.getvalue()+'</gdh>\n') fic.write('<emis>' + self.cbEmetteur.get()+'</emis>\n') fic.write('<recu>' + self.cbDestinataire.get()+"</recu>\n") fic.write("<instr>" + self.eInstruc.get()+"</instr>\n") fic.write('</trans>\n') fic.write("<corps>\n") fic.write("<sys>" + self.cbSysteme.get()+"</sys>\n") fic.write("<datum>" + self.cbDatum.get()+"</datum>\n") fic.write("<coordx>" + self.efCoordX.getvalue()+"</coordx>\n") fic.write("<coordy>" + self.efCoordY.getvalue()+"</coordy>\n") fic.write("<typrel>" + self.cbTypReleve.get()+"</typrel>\n") fic.write("<detail>" + self.efDetail.getvalue()+"</detail>\n") fic.write("<txt>" + self.eTexte.get()+"</txt>\n") fic.write('</corps>\n') fic.write('</msg>\n') fic.close()
def __init__(self, appli): "Constructeur de la fenêtre Bilan Secouriste" self.root = appli # Référence à l'application racine self.ligneLesion = [] # Tableau des lignes "lésion" self.listeCkLesion = [ ] # Tableau des valeurs cochées par ligne "lésion" # Création de la nouvelle fenêtre self.fenetre = Commun.nouvelleFenetre(self.root, "Bilan Secouriste") # Fermeture par la case système self.fenetre.protocol("WM_DELETE_WINDOW", self.quitterBILSEC) # Composants de la fenêtre self.dessineBILSEC() self.bulleAide() # Initialisations self.razSaisie() # Gestion des raccourcis clavier self.fenetre.bind('<Alt-v>', self.validerBILSEC) self.fenetre.bind('<Return>', self.validerBILSEC) self.fenetre.bind('<Alt-n>', self.annulerBILSEC) self.fenetre.bind('<Escape>', self.annulerBILSEC) self.fenetre.bind('<Alt-q>', self.quitterBILSEC) self.stCirc.bind('<Return>', self.notReturn1 ) # On ne valide pas par <Entrée> sur la zone stCirc self.stGestes.bind( '<Return>', self.notReturn2 ) # On ne valide pas par <Entrée> sur la zone stGestes self.stSoins.bind( '<Return>', self.notReturn3 ) # On ne valide pas par <Entrée> sur la zone stSoins
def txtFileRMD(self): fic = open(Commun.getFullPath(self.root, self.vFicRMD+".TXT"),'w') fic.write(self.vFicRMD+"\n\n") fic.write('################################################################################\n') fic.write('- ' +(self.root.userData['ACTIVATION'] + ' - ')*3+'\n') fic.write('--------------------------------------------------------------------------------\n') # Informations transmission fic.write("GDH Emission : " + self.efGdh.getvalue()+ "\n") fic.write("Emis par : " + self.cbEmetteur.get()+ "\n") fic.write("Reçu par : " + self.cbDestinataire.get()+ "\n") fic.write("Instructions : " + self.eInstruc.get()+ "\n") fic.write('================================================================================\n') # Entête du message fic.write("MESSAGE RENSEIGNEMENT MATIERE DANGEUREUSE".center(80) + "\n") fic.write("Origine : " + self.efOrigine.getvalue()+"\n") fic.write("Dest. Action : " + self.efDestAction.getvalue()+"\n") fic.write("Dest. Info : " + self.eDestInfo.get()+"\n") fic.write("Urgence : " + self.cbDegUrg.get()+"\n") fic.write('--------------------------------------------------------------------------------\n') # Corps du message fic.write("Plaque DANGER \n") fic.write("Code Danger : " + self.efDanger.getvalue()+"\n") fic.write("Numero ONU : " + self.efNumOnu.getvalue()+"\n") fic.write("Picto. LOSANGE \n") fic.write("Code Panneau : " + self.cbPanneau.get()+"\n") fic.write("\n") fic.write("Etat matière : " + self.cbEtatMatiere.get()+"\n") fic.write("Si 'AUTRE' : " + self.eAutre.get()+"\n") fic.write("Couleur : " + self.eCouleur.get()+"\n") fic.write("Odeur : " + self.eOdeur.get()+"\n") fic.write("Commentaire : \n\n") # découpage des lignes du commentaire for ligne in self.stComment.get(1.0,END).split("\n"): if len(ligne) > 79: for ligne in textwrap.wrap(ligne,79): fic.write(ligne +"\n") else: fic.write(ligne + "\n") fic.write('--------------------------------------------------------------------------------\n') # Final du message fic.write("GDH Dépôt : " + self.efGdhDep.getvalue()+"\n") fic.write("Demande A.R. : " + self.rbACK.getvalue()+"\n") fic.write("FIN DE MESSAGE".center(80) + "\n") fic.write('================================================================================\n') fic.write('- ' +(self.root.userData['ACTIVATION'] + ' - ')*3+'\n') fic.write('################################################################################\n') fic.close()
def changerSession(self, appli): vDir = tkFileDialog.askdirectory( parent=self.vFen, title="Sélectionnez le répertoire de la session à utiliser", initialdir=Commun.getRepertoire(), mustexist=True) vFic = vDir + vDir[vDir.rfind("/"):] if os.path.isfile(vFic + ".ini") == True: # Ouverture des fichiers en cours appli.initUserData(Commun.getFullPath(appli, vFic + ".ini")) appli.initNetData(Commun.getFullPath(appli, vFic + ".net")) # initialisation des champs self.initChamps(appli) # Masquer les boutons Nouveau/Reprise et montrer les informations self.fNew.grid_remove() self.fStd.grid() else: tkMessageBox.showinfo( "Erreur", "Ce répertoire ne contient pas de session valide")
def validerMCI(self, evt=None): """Traitement du bouton 'Valider'""" # Contrôle de la validité des données if self.controleSaisie() == False: return None # Ligne de MCI infosMCI = Commun.InfosMCI(self.efGdh.getvalue(), self.efEmetteur.getvalue(), self.efDestinataire.getvalue(), \ self.cbDegUrg.get(), self.cbMoyTrans.get(), self.efTexte.getvalue()) infosMCI.ecrire(self.root) # Remise à Zéro du formulaire self.razSaisie()
def xmlFileRMD(self): fic = open(Commun.getFullPath(self.root, self.vFicRMD+".XML"),'w') fic.write('<?xml version="1.0" encoding="iso-8859-15"?><?xml-stylesheet type="text/xsl" href="..\msgRMD.XSL"?>\n') fic.write('<msg>\n') fic.write('<form>Message RMD</form>\n') fic.write('<soft>' + self.root.userData['LOGICIEL'] + '</soft>\n') fic.write('<vers>' + self.root.userData['VERSION'] + '</vers>\n') fic.write('<mode>' + self.root.userData['ACTIVATION'] + '</mode>\n') fic.write('<trans>\n') fic.write('<gdh>' + self.efGdh.getvalue()+'</gdh>\n') fic.write('<emis>' + self.cbEmetteur.get()+'</emis>\n') fic.write('<recu>' + self.cbDestinataire.get()+"</recu>\n") fic.write("<instr>" + self.eInstruc.get()+"</instr>\n") fic.write('</trans>\n') fic.write("<top>\n") fic.write("<from>" + self.efOrigine.getvalue()+"</from>\n") fic.write("<to>" + self.efDestAction.getvalue()+"</to>\n") fic.write("<info>" + self.eDestInfo.get()+"</info>\n") fic.write("<urg>" + self.cbDegUrg.get()+"</urg>\n") fic.write('</top>\n') fic.write("<corps>\n") fic.write("<danger>" + self.efDanger.getvalue()+"</danger>\n") fic.write("<numonu>" + self.efNumOnu.getvalue()+"</numonu>\n") fic.write("<panno>" + self.cbPanneau.get()+"</panno>\n") fic.write("<matiere>" + self.cbEtatMatiere.get()+"</matiere>\n") fic.write("<autre>" + self.eAutre.get()+"</autre>\n") fic.write("<couleur>" + self.eCouleur.get()+"</couleur>\n") fic.write("<odeur>" + self.eOdeur.get()+"</odeur>\n") # découpage des lignes du commentaire for ligne in self.stComment.get(1.0,END).split("\n"): if len(ligne) > 79: for ligne in textwrap.wrap(ligne,79): fic.write("<txt>" + ligne +"</txt>\n") else: fic.write("<txt>" + ligne + "</txt>\n") fic.write('</corps>\n') fic.write('<bot>\n') fic.write("<gdh>" + self.efGdhDep.getvalue()+"</gdh>\n") fic.write("<ack>" + self.rbACK.getvalue()+"</ack>\n") fic.write('</bot>\n') fic.write('</msg>\n') fic.close()
def xmlFileBilAmb(self): fic = open(Commun.getFullPath(self.root, self.vFicBilAmb + ".XML"), 'w') fic.write( '<?xml version="1.0" encoding="iso-8859-15"?><?xml-stylesheet type="text/xsl" href="..\msgBilAmb.XSL"?>\n' ) fic.write('<msg>\n') fic.write('<form>Message BilAmb</form>\n') fic.write('<soft>' + self.root.userData['LOGICIEL'] + '</soft>\n') fic.write('<vers>' + self.root.userData['VERSION'] + '</vers>\n') fic.write('<mode>' + self.root.userData['ACTIVATION'] + '</mode>\n') fic.write('<trans>\n') fic.write('<gdh>' + self.efGdh.getvalue() + '</gdh>\n') fic.write('<emis>' + self.cbEmetteur.get() + '</emis>\n') fic.write('<recu>' + self.cbDestinataire.get() + "</recu>\n") fic.write("<instr>" + self.eInstruc.get() + "</instr>\n") fic.write('</trans>\n') fic.write("<top>\n") fic.write("<from>" + self.efOrigine.getvalue() + "</from>\n") fic.write("<to>" + self.efDestAction.getvalue() + "</to>\n") fic.write("<info>" + self.eDestInfo.get() + "</info>\n") fic.write("<urg>" + self.cbDegUrg.get() + "</urg>\n") fic.write('</top>\n') fic.write("<corps>\n") fic.write("<obj>" + self.efObjet.get() + "</obj>\n") fic.write("<local>" + self.eLoc.get() + "</local>\n") # découpage des lignes du message for ligne in self.stBilan.get(1.0, END).split("\n"): if len(ligne) > 79: for ligne in textwrap.wrap(ligne, 79): fic.write("<txt>" + ligne + "</txt>\n") else: fic.write("<txt>" + ligne + "</txt>\n") fic.write('</corps>\n') fic.write('<bot>\n') fic.write("<gdh>" + self.efGdhDep.getvalue() + "</gdh>\n") fic.write("<ack>" + self.rbACK.getvalue() + "</ack>\n") fic.write('</bot>\n') fic.write('</msg>\n') fic.close()
def __init__(self, appli): "Constructeur de la fenêtre POI" self.root = appli # Référence à l'application racine # Création de la nouvelle fenêtre self.fenetre = Commun.nouvelleFenetre(self.root, "Message Point Particulier (POI)") # Paramétrage spécifique de la fenêtre self.fenetre.protocol("WM_DELETE_WINDOW", self.quitterPOI) # Composants de la fenêtre self.dessinePOI() # Initialisations self.razSaisie() # Gestion des raccourcis clavier self.fenetre.bind('<Alt-v>', self.validerPOI) self.fenetre.bind('<Return>', self.validerPOI) self.fenetre.bind('<Alt-n>', self.annulerPOI) self.fenetre.bind('<Escape>', self.annulerPOI) self.fenetre.bind('<Alt-q>', self.quitterPOI)
def openSess(self): if os.path.isdir(os.path.join(Commun.getRepertoire(self), Commun.getSession(self))): vRep = os.path.join(Commun.getRepertoire(self), Commun.getSession(self)) else: vRep = Commun.getRepertoire(self) vFile = tkFileDialog.askopenfile(parent = self, mode = 'r', title = "Sélectionnez le fichier de session à utiliser", initialdir = vRep, filetypes = [("Fichier ini", ".ini")], initialfile = "") if vFile != None: # Ouverture des fichiers en cours self.initUserData(vFile) # Forçage self.userData['REPTRAVAIL'] = os.path.dirname(vFile.name) self.userData['SESSION'] = os.path.basename(vFile.name)[:-4] writeSession(self) self.initNetData(Commun.getFullPath(self, Commun.getFicReseau(self)))
def txtFilePOI(self): fic = open(Commun.getFullPath(self.root, self.vFicPOI+".TXT"),'w') fic.write(self.vFicPOI+"\n\n") fic.write('################################################################################\n') fic.write('- ' +(self.root.userData['ACTIVATION'] + ' - ')*3+'\n') fic.write('--------------------------------------------------------------------------------\n') # Informations transmission fic.write("GDH Emission : " + self.efGdh.getvalue()+"\n") fic.write("Emis par : " + self.cbEmetteur.get()+"\n") fic.write("Recu par : " + self.cbDestinataire.get()+"\n") fic.write("Urgence : " + self.cbDegUrg.get()+"\n") fic.write("Instructions : " + self.eInstruc.get()+"\n") fic.write('================================================================================\n') # Corps du message fic.write("MESSAGE POINT PARTICULIER".center(80) + "\n") fic.write("Système : " + self.cbSysteme.get()+"\n") fic.write("Datum : " + self.cbDatum.get()+"\n") fic.write("Coordonnée X : " + self.efCoordX.getvalue()+"\n") fic.write("Coordonnée Y : " + self.efCoordY.getvalue()+"\n") fic.write("Type relevé : " + self.cbTypReleve.get()+"\n") fic.write("Caractérist. : " + self.efDetail.getvalue()+"\n") fic.write('--------------------------------------------------------------------------------\n') fic.write("Commentaire : \n") fic.write(self.eTexte.get()+"\n") fic.write('--------------------------------------------------------------------------------\n') # Final du message fic.write("FIN DE MESSAGE".center(80) + "\n") fic.write('================================================================================\n') fic.write('- ' +(self.root.userData['ACTIVATION'] + ' - ')*3+'\n') fic.write('################################################################################\n') fic.close()
def controleSaisie(self): if not (self.efGdh.valid() and self.cbEmetteur.valid() and self.cbDestinataire.valid()): tkMessageBox.showwarning( 'Contrôle', 'Les champs en rouge sont absents ou incorrects') self.fenetre.focus_set() return False if not self.efNum.valid(): tkMessageBox.showwarning('Contrôle', 'Numéro de victime incorrect') self.notebook.selectpage(0) self.efNum.focus_set() return False else: if self.efNum.getvalue() == 'Auto': self.efNum.setvalue(Commun.getNumVict(self.root)) else: self.efNum.setvalue(self.efNum.getvalue().zfill(5)) if self.rbSexe.getvalue() == None: tkMessageBox.showwarning('Contrôle', 'Indiquez le sexe de la victime') self.notebook.selectpage(0) self.rbSexe.component("H").focus_set() return False if not (self.efFreqVent.valid() and self.efFreqCirc.valid()): tkMessageBox.showwarning( 'Contrôle', 'Les champs en rouge sont absents ou incorrects') self.notebook.selectpage(1) self.fenetre.focus_set() return False if self.rbConsc.getvalue() == None: tkMessageBox.showwarning('Contrôle', 'Préciez l\'état de conscience') self.notebook.selectpage(1) self.rbConsc.component("Consciente").focus_set() return False return True
def __init__(self, appli): "Constructeur de la fenêtre RMD" self.root = appli # Référence à l'application racine # Création de la nouvelle fenêtre self.fenetre = Commun.nouvelleFenetre(self.root, "Message de Renseignements sur Matière Dangereuse") # Fermeture par la case système self.fenetre.protocol("WM_DELETE_WINDOW", self.quitterMD) # Composants de la fenêtre self.dessineRMD() # Initialisations self.razSaisie() # Gestion des raccourcis clavier self.fenetre.bind('<Alt-v>', self.validerMD) self.fenetre.bind('<Return>', self.validerMD) self.fenetre.bind('<Alt-n>', self.annulerMD) self.fenetre.bind('<Escape>', self.annulerMD) self.fenetre.bind('<Alt-q>', self.quitterMD) self.stComment.bind('<Return>', self.notReturn) # On ne valide pas par <Entrée> sur la zone stComment
def __init__(self, appli): "Constructeur de la fenêtre BT" self.root = appli # Référence à l'application racine # Création de la nouvelle fenêtre self.fenetre = Commun.nouvelleFenetre(self.root, "Message de Bilan Temporaire") # Fermeture par la case système self.fenetre.protocol("WM_DELETE_WINDOW", self.quitterBT) # Composants de la fenêtre self.dessineBT() # Initialisations self.razSaisie() # Gestion des raccourcis clavier self.fenetre.bind('<Alt-v>', self.validerBT) self.fenetre.bind('<Return>', self.validerBT) self.fenetre.bind('<Alt-n>', self.annulerBT) self.fenetre.bind('<Escape>', self.annulerBT) self.fenetre.bind('<Alt-q>', self.quitterBT)
def txtFileSATER(self): fic = open(Commun.getFullPath(self.root, self.vFicSATER+".TXT"),'w') fic.write(self.vFicSATER+"\n\n") fic.write('################################################################################\n') fic.write('- ' +(self.root.userData['ACTIVATION'] + ' - ')*3+'\n') fic.write('--------------------------------------------------------------------------------\n') # Informations transmission fic.write("GDH Emission : " + self.efGdh.getvalue()+"\n") fic.write("Emis par : " + self.cbEmetteur.get()+"\n") fic.write("Recu par : " + self.cbDestinataire.get()+"\n") fic.write("Urgence : " + self.cbDegUrg.get()+"\n") fic.write("Instructions : " + self.eInstruc.get()+"\n") fic.write('================================================================================\n') # Corps du message fic.write("MESSAGE RELEVE SATER".center(80) + "\n") fic.write("Système : " + self.cbSysteme.get()+"\n") fic.write("Datum : " + self.cbDatum.get()+"\n") fic.write("Coordonnée X : " + self.efCoordX.getvalue()+"\n") fic.write("Coordonnée Y : " + self.efCoordY.getvalue()+"\n") fic.write("Direction : " + self.efDir.getvalue()+"\n") fic.write("Force signal : " + self.eForce.get()+"\n") fic.write('--------------------------------------------------------------------------------\n') fic.write("Commentaire : \n") fic.write(self.eTexte.get()+"\n") fic.write('--------------------------------------------------------------------------------\n') # Final du message fic.write("FIN DE MESSAGE".center(80) + "\n") fic.write('================================================================================\n') fic.write('- ' +(self.root.userData['ACTIVATION'] + ' - ')*3+'\n') fic.write('################################################################################\n') fic.close()