Esempio n. 1
0
    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
Esempio n. 2
0
    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()
Esempio n. 3
0
    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()
Esempio n. 4
0
 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
Esempio n. 5
0
    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')
Esempio n. 6
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()
Esempio n. 7
0
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()
Esempio n. 8
0
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()
Esempio n. 9
0
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)
Esempio n. 10
0
    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)
Esempio n. 11
0
    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)
Esempio n. 12
0
    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)
Esempio n. 13
0
    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
Esempio n. 14
0
    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()
Esempio n. 15
0
    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()
Esempio n. 16
0
    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
Esempio n. 17
0
    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()
Esempio n. 18
0
    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
Esempio n. 19
0
    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()
Esempio n. 20
0
    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")
Esempio n. 21
0
    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()
Esempio n. 22
0
    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()
Esempio n. 23
0
    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()
Esempio n. 24
0
    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)
Esempio n. 25
0
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)))
Esempio n. 26
0
    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()
Esempio n. 27
0
    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
Esempio n. 28
0
    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
Esempio n. 29
0
    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)
Esempio n. 30
0
    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()