コード例 #1
0
def retour():
    global idusr, fen_ChgPass, pfs
    fen_ChgPass.destroy()
    if pfs == 'Elève':
        elv.elv_accueil(idusr)
    elif pfs == 'Professeur':
        prf.prf_accueil(idusr)
    else:
        adm.adm_accueil(idusr)
コード例 #2
0
def check():
    global idusr, fen_Main, pso_nom, pso_prenom, pso_password
    mdp = pso_password.get()
    nmpnps = [pso_nom.get(),
              pso_prenom.get(),
              pso_password.get()
              ]  # passage du formulaire (nom et prénom) en tuple
    nompn = [pso_nom.get(), pso_prenom.get()]
    idusr = nompn
    nom = pso_nom.get()
    prenom = pso_prenom.get()

    # Construction du dictionnaire de tous les profils
    ## Découpage des entrées de la BDD clé / data (c.a.d. profil / nom-prénom)
    data_profils = open('data/data_profils.txt', 'r')
    dico_profils = decoup_valtuple(data_profils)
    data_profils.close()
    data_pass = open('data/data_pass.txt', 'r')
    dico_pass = decoup_cletuple(data_pass)
    data_pass.close()
    L1 = []
    L2 = []
    for key in dico_pass.keys():
        L1 = [key[0], key[1], dico_pass[key]]
        L2.append(L1)
    if nmpnps in L2:
        if mdp == 'ISN_2020':
            tk.messagebox.showwarning(
                'Bienvenue',
                'Il semble que ce soit votre première connexion à Visual Note.\nVeuillez modifier votre mot de passe.'
            )
            fen_Main.destroy()
            pss.chg_pass(nompn)
        else:
            fen_Main.destroy()

        pfs = gen.find_key(nompn, dico_profils)
        if pfs == 'Elève':
            elv.elv_accueil(nompn)
        elif pfs == 'Professeur':
            prf.prf_accueil(nompn)
        else:
            adm.adm_accueil(nompn)
    else:
        messagebox.showwarning(
            "ATTENTION",
            "Il y a une erreur dans votre nom, votre prénom ou le mot de passe.\n Merci de modifier votre saisie et de réessayer."
        )
コード例 #3
0
ファイル: adm_ajoupers.py プロジェクト: Thiplouv/visual-note
def save_matelv () :
    global idusr, fen_SaisiePerso, pso_lv1, pso_lv2, pso_spe, nompn, nomps, dico_profils
    ch_lv1 = pso_lv1.get()
    ch_lv2 = pso_lv2.get()
    ch_spe = pso_spe.get()

    if ch_lv1 == ch_lv2 :
        tk.messagebox.showerror("ERREUR", "Un élève ne peut pas faire " + ch_lv1 + " en LV1 et LV2.\nMerci de corriger.", parent=fen_SaisiePerso)
    else :
        ## Découpage des entrées de la BDD (LV1) clé / data (c.a.d. langue 1 / élève)
        data_lv1 = open('data/data_lv1.txt','r')
        dico_lv1 = decoup_valtuple (data_lv1)
        data_lv1.close()
        ## Découpage des entrées de la BDD (LV2) clé / data (c.a.d. langue 2 / élève)
        data_lv2 = open('data/data_lv2.txt','r')
        dico_lv2 = decoup_valtuple (data_lv2)
        data_lv2.close()
        ## Découpage des entrées de la BDD (SPE) clé / data (c.a.d. Spécialité / élève)
        data_spe = open('data/data_spe.txt','r')
        dico_spe = decoup_valtuple (data_spe)
        data_spe.close()
        # Ajout des nouvelles entrées aux dictionnaires LV1, LV2 et SPE
        ajout_dico(dico_lv1, nompn, ch_lv1)
        ajout_dico(dico_lv2, nompn, ch_lv2)
        ajout_dico(dico_spe, nompn, ch_spe)
        # Sauvegarde des dictionnaires dans les fichiers textes
        bdd = 'data/data_lv1.txt'
        save_valtuple (bdd, dico_lv1)
        bdd = 'data/data_lv2.txt'
        save_valtuple (bdd, dico_lv2)
        bdd = 'data/data_spe.txt'
        save_valtuple (bdd, dico_spe)
        # Ajout de la nouvelle entrée au dictionnaire
        ajout_dico (dico_profils, nomps, profil)
        # Sauvegarde du dictionnaire dans le fichier texte
        bdd = 'data/data_profils.txt'
        save_valtuple (bdd, dico_profils)
        save_pwd (nompn, 'ISN_2020')
        # Message de fin
        ask = tk.messagebox.askyesno("MERCI", nompn[1]+" "+nompn[0]+" a bien été enregistrée(e) dans la base.\n Souhaitez-vous ajouter une autre personne ?", parent=fen_SaisiePerso)
        fen_SaisiePerso.destroy()
        if ask == True :
            addpers(idusr)                              # retour sur la page d'ajout de personne
        else :
            adm.adm_accueil(idusr)                      # retour sur l'accueil d'admin
コード例 #4
0
ファイル: adm_suppers.py プロジェクト: Thiplouv/visual-note
def save_suppers():
    global idusr, fen_SupprPers, usr_nom, usr_profil
    spn = usr_nom.get()
    sup_usr = spn.split(' ')
    sup_profil = usr_profil.get()

    # Suppression de l'utilisateur de la base data_profils
    data_profils = open('data/data_profils.txt', 'r')
    dico_profils = gen.decoup_valtuple(data_profils)
    data_profils.close()
    LU = dico_profils[sup_profil]
    LU.remove(sup_usr)
    del dico_profils[sup_profil]
    dico_profils[sup_profil] = LU
    bdd = 'data/data_profils.txt'
    gen.save_valtuple(bdd, dico_profils)

    # Suppression de l'utilisateur de la base data_pass
    data_pass = open('data/data_pass.txt', 'r')
    dico_pass = gen.decoup_cletuple(data_pass)
    data_pass.close()
    del dico_pass[tuple(sup_usr)]
    bdd = 'data/data_pass.txt'
    gen.save_cletuple(bdd, dico_pass)

    # Suppression des notes de l'utilisateur dans data_notes
    data_notes = open('data/data_notes.txt', 'r')
    dico_notes = gen.decoup_cletvalt(data_notes)
    data_notes.close()
    if tuple(sup_usr) in dico_notes:
        del dico_notes[tuple(sup_usr)]
        bdd = 'data/data_notes.txt'
        gen.save_cletvalt(bdd, dico_notes)

    # Suppression de l'utilisateur de la base data_LV1
    data_lv1 = open('data/data_lv1.txt', 'r')
    dico_lv1 = gen.decoup_valtuple(data_lv1)
    dico_oldlv1 = dico_lv1.copy()
    data_lv1.close()
    for k in dico_oldlv1:
        L1 = dico_lv1[k]
        if sup_usr in L1:
            sup_lv1 = k
            LLV1 = dico_lv1[sup_lv1]
            LLV1.remove(sup_usr)
            del dico_lv1[sup_lv1]
            dico_lv1[sup_lv1] = LLV1
            bdd = 'data/data_lv1.txt'
            gen.save_valtuple(bdd, dico_lv1)

    # Suppression de l'utilisateur de la base data_LV2
    data_lv2 = open('data/data_lv2.txt', 'r')
    dico_lv2 = gen.decoup_valtuple(data_lv2)
    dico_oldlv2 = dico_lv2.copy()
    data_lv2.close()
    for k in dico_oldlv2:
        L2 = dico_lv2[k]
        if sup_usr in L2:
            sup_lv2 = k
            LLV2 = dico_lv2[sup_lv2]
            LLV2.remove(sup_usr)
            del dico_lv2[sup_lv2]
            dico_lv2[sup_lv2] = LLV2
            bdd = 'data/data_lv2.txt'
            gen.save_valtuple(bdd, dico_lv2)

    # Suppression de l'utilisateur de la base data_SPE
    data_spe = open('data/data_spe.txt', 'r')
    dico_spe = gen.decoup_valtuple(data_spe)
    dico_oldspe = dico_spe.copy()
    data_spe.close()
    for k in dico_oldspe:
        LS = dico_spe[k]
        if sup_usr in LS:
            sup_spe = k
            LSPE = dico_spe[sup_spe]
            LSPE.remove(sup_usr)
            del dico_spe[sup_spe]
            dico_spe[sup_spe] = LSPE
            bdd = 'data/data_spe.txt'
            gen.save_valtuple(bdd, dico_spe)

    # Suppression de l'utilisateur (Professeur exclusivement) de la base data_com
    data_com = open('data/data_com.txt', 'r')
    dico_com = gen.decoup_valtuple(data_com)
    dico_oldcom = dico_com.copy()
    data_com.close()
    for k in dico_oldcom:
        LC = dico_com[k]
        if sup_usr in LC:
            sup_com = k
            LCOM = dico_com[sup_com]
            LCOM.remove(sup_usr)
            del dico_com[sup_com]
            dico_com[sup_com] = LCOM
            bdd = 'data/data_com.txt'
            gen.save_valtuple(bdd, dico_com)

    ask = tk.messagebox.askyesno(
        "MERCI",
        "Cet utilisateur a bien été supprimé.\n Souhaitez-vous en supprimer un autre ?",
        parent=fen_SupprPers)
    fen_SupprPers.destroy()
    if ask == True:
        del_perso(idusr)  # retour sur la page d'ajout de personne
    else:
        adm.adm_accueil(idusr)  # retour sur l'accueil d'admin
コード例 #5
0
ファイル: adm_suppers.py プロジェクト: Thiplouv/visual-note
def retour():
    global idusr, fen_SupprPers
    fen_SupprPers.destroy()
    adm.adm_accueil(idusr)
コード例 #6
0
ファイル: adm_ajoumat.py プロジェクト: Thiplouv/visual-note
def checkmat():
    global idusr, fen_SaisieMat, mat_coef, mat_nom, mat_prf
    chm_nom = mat_nom.get()
    chm_prf = mat_prf.get()
    chm_coef = mat_coef.get()

    ## Découpage des entrées de la BDD (mots de passe) clé / data (élève / notes et arguments)
    data_matieres = open('data/data_matieres.txt', 'r')
    dico_matieres = gen.decoup_valtuple(data_matieres)
    data_matieres.close()

    LM = []
    for k in dico_matieres:
        for i in range(0, len(dico_matieres[k])):
            LM.append(dico_matieres[k][i][0])

    if chm_nom == '' or chm_prf == '' or chm_coef == '':
        tk.messagebox.showwarning(
            'ATTENTION',
            'Tous les champs doivent être remplis !\nMerci de corriger.',
            parent=fen_SaisieMat)
    else:
        ret = check_num(chm_coef)
        res = check_alpha(chm_nom)
        if ret != 'ok':
            tk.messagebox.showwarning('ATTENTION', ret, parent=fen_SaisieMat)
        elif int(chm_coef) < 1 or int(chm_coef) > 20:
            tk.messagebox.showwarning(
                'ATTENTION',
                'Merci de saisir un coeffficient valide (compris entre 1 et 20).',
                parent=fen_SaisieMat)
        elif res != 'ok':
            tk.messagebox.showwarning('ATTENTION', res, parent=fen_SaisieMat)
        elif chm_nom in LM:
            tk.messagebox.showwarning(
                'ATTENTION',
                'Cette matière existe déjà.\nMerci de corriger.',
                parent=fen_SaisieMat)
        else:
            if chm_prf == 'Matière Commune':
                key = 'com'
            elif chm_prf == 'LV1':
                key = 'lv1'
            elif chm_prf == 'LV2':
                key = 'lv2'
            else:
                key = 'spe'

            val = [chm_nom, chm_coef]

            # Ajout des nouvelles entrées au dictionnaire Matières
            gen.ajout_dico(dico_matieres, val, key)
            # Sauvegarde des dictionnaires dans le fichier texte
            bdd = 'data/data_matieres.txt'
            gen.save_valtuple(bdd, dico_matieres)
            ask = tk.messagebox.askyesno(
                "MERCI",
                "Cette matière a bien été ajoutée.\nSouhaitez-vous en ajouter une autre ?",
                parent=fen_SaisieMat)
            fen_SaisieMat.destroy()
            if ask == True:
                addmat(idusr)  # retour sur la page d'ajout de personne
            else:
                adm.adm_accueil(idusr)  # retour sur l'accueil d'admin
コード例 #7
0
ファイル: adm_ajoumat.py プロジェクト: Thiplouv/visual-note
def retour():
    global idusr, fen_SaisieMat
    fen_SaisieMat.destroy()
    adm.adm_accueil(idusr)
コード例 #8
0
ファイル: adm_ajoupers.py プロジェクト: Thiplouv/visual-note
def save_matprof () :
    global idusr, fen_SaisiePerso, nompn, dico_profils
    # Récupération des données du formulaire
    ch_com = []
    sel_com = pso_com.curselection()
    for val in sel_com :
        ch_com.append(dico_matieres['com'][val])
    ch_lv1 = []
    sel_lv1 = pso_lv1.curselection()
    for val in sel_lv1 :
        ch_lv1.append(dico_matieres['lv1'][val])
    ch_lv2 = []
    sel_lv2 = pso_lv2.curselection()
    for val in sel_lv2 :
        ch_lv2.append(dico_matieres['lv2'][val])
    ch_spe = []
    sel_spe = pso_spe.curselection()
    for val in sel_spe :
        ch_spe.append(dico_matieres['spe'][val])
    if ch_com != '' :               # test sur la valeur saisie afin de ne pas manipuler un dictionnaire pour lequel il n'y aurait pas de nouvelle entrée
        ## Découpage des entrées de la BDD (COM) clé / data (c.a.d. matière commune / professeur)
        data_com = open('data/data_com.txt','r')
        dico_com = decoup_valtuple (data_com)
        data_com.close()
        # Ajout des nouvelles entrées au dictionnaire COM
        for val in ch_com :
            ajout_dico(dico_com, nompn, val[0])
        # Sauvegarde des dictionnaires dans le fichier texte
        bdd = 'data/data_com.txt'
        save_valtuple (bdd, dico_com)
    if ch_lv1 != '' :               # test sur la valeur saisie afin de ne pas manipuler un dictionnaire pour lequel il n'y aurait pas de nouvelle entrée
        ## Découpage des entrées de la BDD (LV1) clé / data (c.a.d. LV1 / professeur)
        data_lv1 = open('data/data_lv1.txt','r')
        dico_lv1 = decoup_valtuple (data_lv1)
        data_lv1.close()
        # Ajout des nouvelles entrées au dictionnaire COM
        for val in ch_lv1 :
            ajout_dico(dico_lv1, nompn, val[0])
        # Sauvegarde des dictionnaires dans le fichier texte
        bdd = 'data/data_lv1.txt'
        save_valtuple (bdd, dico_lv1)
    if ch_lv2 != '' :               # test sur la valeur saisie afin de ne pas manipuler un dictionnaire pour lequel il n'y aurait pas de nouvelle entrée
        ## Découpage des entrées de la BDD (LV1) clé / data (c.a.d. LV1 / professeur)
        data_lv2 = open('data/data_lv2.txt','r')
        dico_lv2 = decoup_valtuple (data_lv2)
        data_lv2.close()
        # Ajout des nouvelles entrées au dictionnaire COM
        for val in ch_lv2 :
            ajout_dico(dico_lv2, nompn, val[0])
        # Sauvegarde des dictionnaires dans le fichier texte
        bdd = 'data/data_lv2.txt'
        save_valtuple (bdd, dico_lv2)
    if ch_spe != '' :               # test sur la valeur saisie afin de ne pas manipuler un dictionnaire pour lequel il n'y aurait pas de nouvelle entrée
        ## Découpage des entrées de la BDD (LV1) clé / data (c.a.d. LV1 / professeur)
        data_spe = open('data/data_spe.txt','r')
        dico_spe = decoup_valtuple (data_spe)
        data_spe.close()
        # Ajout des nouvelles entrées au dictionnaire COM
        for val in ch_spe :
            ajout_dico(dico_spe, nompn, val[0])
        # Sauvegarde des dictionnaires dans le fichier texte
        bdd = 'data/data_spe.txt'
        save_valtuple (bdd, dico_spe)
    # Ajout de la nouvelle entrée au dictionnaire
    ajout_dico (dico_profils, nomps, profil)
    # Sauvegarde du dictionnaire dans le fichier texte
    bdd = 'data/data_profils.txt'
    save_valtuple (bdd, dico_profils)
    save_pwd (nompn, 'ISN_2020')
    # Message de fin
    ask = tk.messagebox.askyesno("MERCI", nompn[1]+" "+nompn[0]+" a bien été enregistrée(e) dans la base.\n Souhaitez-vous ajouter une autre personne ?", parent=fen_SaisiePerso)
    fen_SaisiePerso.destroy()
    if ask == True :
        addpers(idusr)                              # retour sur la page d'ajout de personne
    else :
        adm.adm_accueil(idusr)                      # retour sur l'accueil d'admin
コード例 #9
0
ファイル: adm_ajoupers.py プロジェクト: Thiplouv/visual-note
def retour() :
    global idusr, fen_SaisiePerso
    fen_SaisiePerso.destroy()
    adm.adm_accueil(idusr)
コード例 #10
0
ファイル: adm_ajoupers.py プロジェクト: Thiplouv/visual-note
def checkpers() :
    global idusr, fen_SaisiePerso, fr1, fr2, fr3, pso_lv1, pso_lv2, pso_spe, pso_com, pso_profil, nomps, nompn, profil, dico_matieres, dico_profils
    nomps = [pso_nom.get(),pso_prenom.get(),'ISN_2020']  # passage du formulaire (nom, prénom, password) en tuple
    nompn = [pso_nom.get(),pso_prenom.get()]  # passage du formulaire (nom et prénom) en tuple
    profil = pso_profil.get()               # passage du formulaire (profil) en variables
    
    # Vérification des caractères alphabétiques dans la saisie
    res = check_alpha(nompn[0])
    if res != 'ok' :
        tk.messagebox.showwarning('ATTENTION', res, parent = fen_SaisiePerso)
    else :
        ret = check_alpha(nompn[1])
        if ret != 'ok' :
            tk.messagebox.showwarning('ATTENTION', ret, parent = fen_SaisiePerso)
        else :
            # Construction du dictionnaire de tous les profils
            ## Découpage des entrées de la BDD clé / data (c.a.d. profil / nom-prénom)
            data_profils=open('data/data_profils.txt','r')
            dico_profils = decoup_valtuple (data_profils)
            data_profils.close()
            
            # Vérification de l'existence de la nouvelle entrée dans la BDD
            L1 = []
            for key in dico_profils.keys() :        # Création d'une liste de tous les tuples [nom,prénom] pour recherche d'un existant
                L1.extend(dico_profils[key])
            if nomps in L1 :
                tk.messagebox.showwarning("ATTENTION", "Cette personne est déjà enregistrée", parent=fen_SaisiePerso)
                fen_SaisiePerso.mainloop()          # retour sur le même écran
            else :
                if profil == 'Elève' :
                    for elt in fr2.winfo_children() :                    # RAZ de la fenêtre d'affichage
                        elt.destroy()
                    for elt in fr3.winfo_children() :                    # RAZ de la fenêtre d'affichage
                        elt.destroy()
                    fr2.pack(fill=X)
                    fr3.pack(fill=X)
                    # Saisie des LV1, LV2 et SPE
                    txt_titre = tk.Label(fr2, text="Saisie des matières optionnelles", font=("Calibri",18), bg="white", fg="black")
                    txt_titre.grid(row=0)
                    # Construction du dictionnaire des matières
                    ## Découpage des entrées de la BDD clé / data (c.a.d. type / matière)
                    data_matieres=open('data/data_matieres.txt','r')
                    dico_matieres = decoup_valtuple (data_matieres)
                    data_matieres.close()
                    # Mise en place des combobox de choix des matières
                    pso_com=''
                    lst_lv1 =[]
                    for i in range (0, len(dico_matieres['lv1'])) :
                        val = dico_matieres['lv1'][i][0]
                        lst_lv1.append(val)
                    lst_lv2 =[]
                    for i in range (0, len(dico_matieres['lv2'])) :
                        val = dico_matieres['lv2'][i][0]
                        lst_lv2.append(val)
                    lst_spe =[]
                    for i in range (0, len(dico_matieres['spe'])) :
                        val = dico_matieres['spe'][i][0]
                        lst_spe.append(val)
                    txt_lv1 = tk.Label(fr2, text="LV1", font=("Calibri",16), bg="white", fg="black")
                    pso_lv1 = ttk.Combobox(fr2, values=lst_lv1, state="readonly")
                    txt_lv1.grid(row=1)
                    pso_lv1.current(0)                      # Anglais par défaut
                    pso_lv1.grid(row=1, column=1)
                    txt_lv2 = tk.Label(fr2, text="LV2", font=("Calibri",16), bg="white", fg="black")
                    pso_lv2 = ttk.Combobox(fr2, values=lst_lv2, state="readonly")
                    pso_lv2.current(1)                      # Espagnol par défaut
                    txt_lv2.grid(row=2)
                    pso_lv2.grid(row=2, column=1)
                    txt_spe = tk.Label(fr2, text="Spécialité", font=("Calibri",16), bg="white", fg="black")
                    pso_spe = ttk.Combobox(fr2, values=lst_spe, state="readonly")
                    txt_spe.grid(row=3)                     # Pas de spécialité par défaut
                    pso_spe.grid(row=3, column=1)
                    bt_valider = tk.Button(fr3, text='Valider', font = ("Calibri", 15), bg="white", fg="black", command=save_matelv)
                    bt_valider.pack(fill=X)
                    bt_annuler = tk.Button(fr3, text='Annuler', font = ("Calibri", 15), bg="white", fg="black", command=annuler)
                    bt_annuler.pack(fill=X)
                    fen_SaisiePerso.mainloop()
                elif profil == 'Professeur' :
                    for elt in fr2.winfo_children() :                    # RAZ de la fenêtre d'affichage
                        elt.destroy()
                    for elt in fr3.winfo_children() :                    # RAZ de la fenêtre d'affichage
                        elt.destroy()
                    fr2.pack(fill=X)
                    fr3.pack(fill=X)
                    # Saisie des matières enseignées
                    txt_titre = tk.Label(fr2, text="Saisie des matières enseignées", font = ("Calibri", 18), bg="white", fg="black")
                    txt_titre.grid(row=0)
                    # Construction du dictionnaire des matières
                    ## Découpage des entrées de la BDD clé / data (c.a.d. type / matière)
                    data_matieres=open('data/data_matieres.txt','r')
                    dico_matieres = decoup_valtuple (data_matieres)
                    data_matieres.close()
                    # Mise en place des listes de choix des matières
                    txt_com = tk.Label(fr2, text="Matières communes", font = ("Calibri", 15), bg="white", fg="black")
                    pso_com = tk.Listbox(fr2, height=5, selectmode='multiple', exportselection=0)
                    for i in range (0, len(dico_matieres['com'])) :
                        pso_com.insert(i, dico_matieres['com'][i][0])
                    txt_com.grid(row=1, column=0)
                    pso_com.grid(row=2, column=0)
                    txt_lv1 = tk.Label(fr2, text="LV1", font = ("Calibri", 15), bg="white", fg="black")
                    pso_lv1 = tk.Listbox(fr2, height=5, selectmode='multiple', exportselection=0)
                    for i in range (0, len(dico_matieres['lv1'])) :
                        pso_lv1.insert(i, dico_matieres['lv1'][i][0])
                    txt_lv1.grid(row=1, column=1)
                    pso_lv1.grid(row=2, column=1)
                    txt_lv2 = tk.Label(fr2, text="LV2", font = ("Calibri", 15), bg="white", fg="black")
                    pso_lv2 = tk.Listbox(fr2, height=5, selectmode='multiple', exportselection=0)
                    for i in range (0, len(dico_matieres['lv2'])) :
                        pso_lv2.insert(i, dico_matieres['lv2'][i][0])
                    txt_lv2.grid(row=1, column=3)
                    pso_lv2.grid(row=2, column=3)
                    txt_spe = tk.Label(fr2, text="Spécialité", font = ("Calibri", 15), bg="white", fg="black")
                    pso_spe = tk.Listbox(fr2, height=5, selectmode='multiple', exportselection=0)
                    for i in range (0, len(dico_matieres['spe'])) :
                        pso_spe.insert(i, dico_matieres['spe'][i][0])
                    txt_spe.grid(row=1, column=4)
                    pso_spe.grid(row=2, column=4)
                    bt_valider = tk.Button(fr3, text='Valider', font = ("Calibri", 15), bg="white", fg="black", command=save_matprof)
                    bt_valider.pack(fill=X)
                    bt_annuler = tk.Button(fr3, text='Annuler', font = ("Calibri", 15), bg="white", fg="black", command=annuler)
                    bt_annuler.pack(fill=X)
                    fen_SaisiePerso.mainloop()

                else :
                    # Ajout de la nouvelle entrée au dictionnaire
                    ajout_dico (dico_profils, nomps, profil)
                
                    # Sauvegarde du dictionnaire dans le fichier texte
                    bdd = 'data/data_profils.txt'
                    save_valtuple (bdd, dico_profils)
                    save_pwd (nompn, 'ISN_2020')

                    ask = tk.messagebox.askyesno("MERCI", nompn[1]+" "+nompn[0]+" a bien été enregistrée(e) dans la base.\n Souhaitez-vous ajouter une autre personne ?", parent=fen_SaisiePerso)
                    fen_SaisiePerso.destroy()
                    if ask == True :
                        addpers(idusr)                              # retour sur la page d'ajout de personne
                    else :
                        adm.adm_accueil(idusr)                      # retour sur l'accueil d'admin
コード例 #11
0
ファイル: adm_supmat.py プロジェクト: Thiplouv/visual-note
def check_supMat():
    global idusr, fen_SupMat, mat_type, mat_mat
    sup_mat = mat_mat.get()
    nt = mat_type.get()

    if sup_mat == '' or nt == '':
        ask = tk.messagebox.showwarning(
            "ATTENTION",
            "Tous les champs doivent être remplis.\nMerci de corriger.",
            parent=fen_SupMat)
    else:
        data_not = open('data/data_notes.txt', 'r')
        dico_not = gen.decoup_valtuple(data_not)
        data_not.close()
        xy = 'ok'
        for k in dico_not:
            for i in range(0, len(dico_not[k])):
                if dico_not[k][i][0] == sup_mat:
                    xy = 'ko'
        if xy != 'ko':
            ask = tk.messagebox.askyesno(
                "ATTENTION",
                "Cette opération va supprimer la matière dans TOUTES les bases de données.\nÊtes-vous sûr(e) de vouloir continuer ?",
                parent=fen_SupMat)
            if ask == True:
                # Suppression de l'utilisateur de la base data_com, data_lv1, data_lv2, data_spe
                if nt == 'Matière Commune':
                    sup_type = 'com'
                elif nt == 'Spécialité':
                    sup_type = 'spe'
                else:
                    sup_type = nt.lower()

                tp = 'data/data_' + sup_type + '.txt'
                data_typ = open(tp, 'r')
                dico_typ = gen.decoup_valtuple(data_typ)
                data_typ.close()

                if sup_mat in dico_typ.keys():
                    del dico_typ[sup_mat]
                    bdd = 'data/data_' + sup_type + '.txt'
                    gen.save_valtuple(bdd, dico_typ)

                # Suppression de l'utilisateur de la base data_matieres
                data_matieres = open('data/data_matieres.txt', 'r')
                dico_matieres = gen.decoup_valtuple(data_matieres)
                data_matieres.close()
                LM = dico_matieres[sup_type].copy()
                for i in range(0, len(dico_matieres[sup_type])):
                    if dico_matieres[sup_type][i][0] == sup_mat:
                        LM.remove(dico_matieres[sup_type][i])
                del dico_matieres[sup_type]
                dico_matieres[sup_type] = LM
                bdd = 'data/data_matieres.txt'
                gen.save_valtuple(bdd, dico_matieres)
                ask = tk.messagebox.askyesno(
                    "MERCI",
                    "Cette matière a bien été supprimée.\n Souhaitez-vous en supprimer une autre ?",
                    parent=fen_SupMat)
                fen_SupMat.destroy()
                if ask == True:
                    del_mat(idusr)  # retour sur la page d'ajout de personne
                else:
                    adm.adm_accueil(idusr)  # retour sur l'accueil d'admin
        else:
            tk.messagebox.showerror(
                "ERREUR",
                "Des élèves ont des notes dans cette matière.\nVous devez retirer les notes AVANT de supprimer une matière.",
                parent=fen_SupMat)