amélioration et maj du YAML

This commit is contained in:
Aurelien PLANCKE 2021-06-02 16:22:09 +02:00
parent 09a80e8dd5
commit 9fe52f9960
4 changed files with 494 additions and 43 deletions

View File

@ -24,33 +24,40 @@ from selenium.webdriver.support.ui import Select, WebDriverWait
from selenium.webdriver.support.select import Select
URL_MATIERE = ""
URL_SEMESTRE = ""
URL = BASE_URL + NOM_DPT + "/Scolarite"
# Prérequis
class PythonOrgSearch(unittest.TestCase):
# Permet de se connecter et se remettre sur la page d'accueil avant chaque test
def setUp(self):
if NAVIGATEUR == "firefox":
self.driver = webdriver.Firefox()
else:
self.driver = webdriver.Chrome()
self.url = BASE_URL + NOM_DPT + "/Scolarite"
self.wait = WebDriverWait(self.driver, 10)
self.driver.get(BASE_URL)
self.driver.find_element_by_id("utilisateur_Vue").click()
self.driver.find_element_by_id("name").send_keys(SCODOC_ENS_ID)
self.driver.find_element_by_id("password").send_keys(SCODOC_ENS_PASS)
self.driver.find_element_by_id("submit").click()
self.driver.get(
"https://"
+ SCODOC_ADMIN_ID
+ ":"
+ SCODOC_ADMIN_PASS
+ "@"
+ BASE_NOT_SECURED_URL
+ "force_admin_authentication"
)
self.wait = WebDriverWait(self.driver, 10)
#self.driver.get(self.url)
#self.driver.find_element_by_id("name").send_keys(SCODOC_ENS_ID)
#self.driver.find_element_by_id("password").send_keys(SCODOC_ENS_PASS)
#self.driver.find_element_by_id("submit").click()
# Test : Vérifie s'il y a un semestre en cours
# @expected : La class listesems n'est pas vide et contient "Session en cours"
def test_010_semestre_en_cours(self):
driver = self.driver
url = self.url
driver.get(url)
time.sleep(1)
global URL
driver.get(URL)
#time.sleep(1)
self.assertTrue(
"Sessions en cours" in driver.find_element_by_class_name("listesems").text
)
@ -59,12 +66,14 @@ class PythonOrgSearch(unittest.TestCase):
# @expected : Le nom de la matière est présent dans le semestre préalablement testé
def test_020_matiere_existante(self):
driver = self.driver
url = self.url
driver.get(url)
driver.find_element_by_link_text("DUT Informatique semestre 4").click()
time.sleep(1)
global URL
driver.get(URL)
driver.find_element_by_link_text("semestre 4").click()
self.wait.until(EC.url_changes(URL))
try:
driver.find_element_by_class_name("formsemestre_status_ue")
global URL_SEMESTRE
URL_SEMESTRE = driver.current_url
self.assertTrue(True)
except NoSuchElementException:
self.assertFalse(False)
@ -73,19 +82,18 @@ class PythonOrgSearch(unittest.TestCase):
# @expected : Le nom de l'enseignant apparait désormais sur la page d'information du module
def test_030_ajout_enseignant_sur_module(self):
driver = self.driver
url = self.url
driver.get(BASE_URL)
driver.find_element_by_link_text("déconnecter").click()
driver.get(BASE_URL)
driver.find_element_by_id("name").send_keys(SCODOC_CHEF_ID)
driver.find_element_by_id("password").send_keys(SCODOC_CHEF_PASS)
driver.find_element_by_id("submit").click()
driver.get(url)
driver.find_element_by_link_text("DUT Informatique semestre 4").click()
#driver.get(BASE_URL)
#driver.find_element_by_link_text("déconnecter").click()
#driver.get(BASE_URL)
#driver.find_element_by_id("name").send_keys(SCODOC_CHEF_ID)
#driver.find_element_by_id("password").send_keys(SCODOC_CHEF_PASS)
#driver.find_element_by_id("submit").click()
#global URL_SEMESTRE
driver.get(URL_SEMESTRE)
driver.find_element_by_link_text("M4101C").click()
time.sleep(1)
global urlMatiere
urlMatiere = driver.current_url
global URL_MATIERE
URL_MATIERE = driver.current_url
driver.find_element_by_partial_link_text("modifier les enseignants").click()
time.sleep(1)
driver.find_element_by_id("ens_id").send_keys("ENSEIGNANT Test (enseignantUS)")
@ -112,10 +120,11 @@ class PythonOrgSearch(unittest.TestCase):
# driver.find_element_by_id("name").send_keys(SCODOC_CHEF_ID)
# driver.find_element_by_id("password").send_keys(SCODOC_CHEF_PASS)
# driver.find_element_by_id("submit").click()
driver.get(urlMatiere)
driver.get(URL_MATIERE)
time.sleep(1)
driver.find_element_by_link_text("Créer nouvelle évaluation").click()
time.sleep(1)
driver.find_element_by_name("jour").send_keys("31/05/2021")
driver.find_element_by_id("tf_description").send_keys(descriptionInterrogation)
driver.find_element_by_id("tf_coefficient").send_keys("2")
driver.find_element_by_id("tf_submit").click()
@ -126,7 +135,8 @@ class PythonOrgSearch(unittest.TestCase):
# @expected "Module" est présent dans le "formsemetre"
def test_050_interro_existante(self):
driver = self.driver
driver.get(urlMatiere)
global URL_MATIERE
driver.get(URL_MATIERE)
time.sleep(1)
self.assertTrue(
"Module" in driver.find_element_by_class_name("formsemestre").text
@ -136,7 +146,8 @@ class PythonOrgSearch(unittest.TestCase):
# @expected : "saisir note" est remplacé par "afficher" sur la page d'information de l'interrogation concernée
def test_060_entree_note(self):
driver = self.driver
driver.get(urlMatiere)
global URL_MATIERE
driver.get(URL_MATIERE)
time.sleep(1)
driver.find_element_by_class_name("notes_img").click()
time.sleep(1)
@ -152,7 +163,8 @@ class PythonOrgSearch(unittest.TestCase):
# @expected : Tout les étudiants on une note
def test_070_ajout_note_incomplete(self):
driver = self.driver
driver.get(urlMatiere)
global URL_MATIERE
driver.get(URL_MATIERE)
time.sleep(1)
driver.find_element_by_class_name("notes_img").click()
elements = driver.find_elements_by_class_name("note")
@ -173,7 +185,8 @@ class PythonOrgSearch(unittest.TestCase):
# @expected : La moyenne ne s'affiche plus, "afficher" disparait de la page d'information de l'interrogation
def test_080_suppression_note(self):
driver = self.driver
driver.get(urlMatiere)
global URL_MATIERE
driver.get(URL_MATIERE)
time.sleep(1)
driver.find_element_by_class_name("notes_img").click()
time.sleep(1)
@ -200,7 +213,8 @@ class PythonOrgSearch(unittest.TestCase):
driver.find_element_by_id("name").send_keys(SCODOC_CHEF_ID)
driver.find_element_by_id("password").send_keys(SCODOC_CHEF_PASS)
driver.find_element_by_id("submit").click()
driver.get(urlMatiere)
global URL_MATIERE
driver.get(URL_MATIERE)
time.sleep(1)
driver.find_element_by_link_text("Créer nouvelle évaluation").click()
time.sleep(1)
@ -225,7 +239,7 @@ class PythonOrgSearch(unittest.TestCase):
+ SCODOC_ADMIN_PASS
+ "@scodoc-dev-iutinfo.univ-lille.fr/force_admin_authentication"
)
driver.get(urlMatiere)
driver.get(URL_MATIERE)
time.sleep(1)
driver.find_element_by_partial_link_text("modifier les enseignants").click()
time.sleep(1)
@ -248,7 +262,7 @@ class PythonOrgSearch(unittest.TestCase):
+ "@scodoc-dev-iutinfo.univ-lille.fr/force_admin_authentication"
)
driver.get(urlMatiere)
driver.get(URL_MATIERE)
time.sleep(1)
elements = driver.find_elements_by_class_name("delete_img")
while elements:
@ -256,7 +270,7 @@ class PythonOrgSearch(unittest.TestCase):
time.sleep(1)
driver.find_element_by_id("tf_submit").click()
time.sleep(1)
driver.get(urlMatiere)
driver.get(URL_MATIERE)
time.sleep(1)
elements = driver.find_elements_by_class_name("delete_img")
@ -294,7 +308,16 @@ if __name__ == "__main__":
driver.get(BASE_URL + NOM_DPT + "/Scolarite")
driver.find_element_by_id("utilisateurs_Vue").click()
time.sleep(5)
if SCODOC_CHEF_ID not in driver.page_source:
noms = driver.find_elements_by_class_name("nom_fmt")
chefCree = False
ensCree = False
for nom in noms:
if(nom.text.lower() == SCODOC_CHEF_ID.lower()):
chefCree = True
if(nom.text.lower() == SCODOC_ENS_ID.lower()):
ensCree = True
if not chefCree:
time.sleep(5)
constructValue = "Ens" + NOM_DPT
driver.find_element_by_id("creer_Utilisateur").click()
driver.find_element_by_id("tf_nom").send_keys(SCODOC_CHEF_ID)
@ -306,16 +329,18 @@ if __name__ == "__main__":
driver.find_element_by_xpath("//input[@value='force:list']").click()
driver.find_element_by_id("tf_submit").click()
driver.find_element_by_id("utilisateurs_Vue").click()
if SCODOC_ENS_ID not in driver.page_source:
if not ensCree:
time.sleep(5)
constructValue = "Ens" + NOM_DPT
driver.find_element_by_id("creer_Utilisateur").click()
driver.find_element_by_id("tf_nom").send_keys(SCODOC_CHEF_ID)
driver.find_element_by_id("tf_user_name").send_keys(SCODOC_CHEF_ID)
driver.find_element_by_id("tf_nom").send_keys(SCODOC_ENS_ID)
driver.find_element_by_id("tf_user_name").send_keys(SCODOC_ENS_ID)
driver.find_element_by_id("tf_prenom").send_keys("ens")
driver.find_element_by_id("tf_passwd").send_keys(SCODOC_CHEF_PASS)
driver.find_element_by_id("tf_passwd2").send_keys(SCODOC_CHEF_PASS)
driver.find_element_by_id("tf_passwd").send_keys(SCODOC_ENS_PASS)
driver.find_element_by_id("tf_passwd2").send_keys(SCODOC_ENS_PASS)
driver.find_element_by_xpath("//input[@value='" + constructValue + "']").click()
driver.find_element_by_xpath("//input[@name='force:list']").click()
driver.find_element_by_id("tf_submit").click()
driver.find_element_by_id("utilisateurs_Vue").click()
unittest.main()
driver.close()
unittest.main(warnings='ignore')

426
UserStoryNew.yaml Normal file
View File

@ -0,0 +1,426 @@
aliases:
EtatInitial1: &DeptCreated Le département est créé
EtatInitial2: &ProgramCreated Le programme est créé
EtatInitial3: &MatiereCreated Les matières sont créées
EtatInitial4: &EtudiantCreated Un etudiant dans chaque semestre est créé
Role1: &Admin Admin
Role2: &Secretaire Secretaire
Role3: &Prof Professeur
Role4: &AdminDPT AdminDepartement
Page1: &Accueil Accueil
Champs: [&champTest test]
Page2: &Absence Absence
Page3: &Departement Departement
Page4: &Notes Notes
Page5: &Connexion Connexion
Page6: &ConnexionAdmin ConnexionAdmin
Page7: &Scolarite Scolarite
test1:
intitulé: "Connexion en admin"
operation: Acceder à la page scodoc_admin avec les identifiants admin;
resultat: Connexion établie (h3 = page Administration de scodoc)
etat: *DeptCreated
page: *Connexion
champsModifie: null
champsInteractions: null
role: *Admin
createur: Aurélien
test2:
intitulé: Création d'un département
operation:
Accès à la page scodoc_admin,
séléctionner un département dans création département,
clicker sur créer département,
valider sur la page suivante
resultat: Apparition du lien du département sur la page d'accueil
etat: *DeptCreated
page: *ConnexionAdmin
champs:
role: *Admin
createur: Aurélien
test3:
intitulé: Suppression d'un département
operation:
Accès à la page scodoc_admin,
séléctionner un département dans suppresion département,
clicker sur supprimer et valider
resultat: Disparition du lien du département sur la page d'accueil
etat: *DeptCreated
page: *ConnexionAdmin
champs:
role: *Admin
createur: Aurélien
test4:
intitulé: Création d'une formation
operation:
Accès à la page ScoDoc/[nom_dpt]/Scolarite/Notes/formation_create,
Remplir et soumettre le formulaire
resultat: la page sur laquelle on est dirigée contient un tableau avec la formation crée, dont un id avec titre_nom_formation
etat: *DeptCreated
page: *Notes
champs: "titre_" + acronyme
role: *AdminDPT
createur: Aurélien
test5:
intitulé: Changer le nom d'une formation
operation:
Accès à la page /ScoDoc/[nom_dpt]/Scolarite/Notes
Selectionner la formation à modifier en clickant sur son titre
Remplir et soumettre le formulaire
resultat: la page sur laquelle on est dirigée contient une class formation_descr
etat: *DeptCreated
page: *Notes
champs:
role: *AdminDPT
createur: Aurélien
test6:
intitulé: Création d'une formation avec le même nom qu'une autre
operation:
Accès à la page ScoDoc/[nom_dpt]/Scolarite/Notes/formation_create,
Remplir et soumettre le formulaire
resultat: la page sur laquelle on est dirigée contient un message d'erreur indiquant que le nom est dupliqué, la formation n'est pas créée
etat: *DeptCreated
page: *Notes
champs: errorMessage
role: *AdminDPT
createur: Aurélien
test7:
intitulé: Ajout d'une UE à la formation créée
operation:
Accès à la page de création d'UE dans la formation précédemment créée
Remplir et soumettre le formulaire
Soumettre le formulaire;
resultat: La page sur laquelle on est dirigée contient "Info Informatique"
etat: *DeptCreated
page: *Notes
champs:
role: *AdminDPT
createur: Aurélien
test8:
intitulé: Suppresion d'une formation
operation:
Accès à la page ScoDoc/[nom_dpt]/Scolarite/Notes/,
Supprimer chaque semestre qui compose cette formation,
Supprimer la formation
resultat: La formation disparait du tableau des formations
etat: *DeptCreated
page: *Notes
champs: errorMessage
role: *AdminDPT
createur: Aurélien
test9:
intitulé: Creer un étudiant
operation:
Scolarite/etudident_create_form
Remplir les champs et soumettre le formulaire
resultat: La page contient ficheEtud avec un h2 contenant M. Normal UnEtudiant
etat: *ProgramCreated
page: *Scolarite
champs:
role: *AdminDPT
createur: Aurélien
test10:
intitulé: Creer un étudiant avec le même nip qu'un autre
operation:
Scolarite/etudident_create_form
Remplir les champs et utiliser le même NIP qu'un autre étudiant et soumettre le formulaire
resultat: Redirection vers une page contenant COde étudiant dupliqué, l'étudiant n'est pas créé
etat: *ProgramCreated
page: *Scolarite
champs: titleError
role: [*AdminDPT,*Secretaire]
createur: Aurélien
test11:
intitulé: Modifier l'adresse d'un étudiant
operation:
Se rendre sur la fiche étudiante d'un étudiant avec l'aide de la recherche à l'id in-expnom(sidebar)
Clicker sur changer de coordonnées
Remplir le formulaire et le soumestre
resultat: L'élèment à l'id adresse_etudiant contient désormais les informations mise à jour.
etat: *ProgramCreated
page: *Scolarite
champs: adresse_etudiant
role: [*AdminDPT,*Secretaire]
createur: Aurélien
test12:
intitulé: Inscrire un étudiant à un semestre
operation: Rechercher l'étudiant et l'inscrire au semestre courant
resultat: La fiche etu de l'étudiant contient maintenant le semstre courant
etat: *ProgramCreated
page: *Scolarite
champs:
role: *Secretaire
createur: Aurélien
test14:
intitulé: Supprimer un étudiant
operation: Chercher l'étudiant, et utiliser le formulaire etudident_delete?etudid= en ajoutant l'euid de cette étudfiant
resultat: Cette étudiant est supprimé, aucun résultat n'apparait avec une recherche sur son nom
etat: *EtudiantCreated
page: *ficheEtud
champs:
role: [*AdminDPT,*Secretaire]
createur: Aurélien
test15:
intitulé: Trouver un étudiant
operation: Utiliser la barre latéral pour entrer le nom de l'étudiant
resultat: Redirection vers la fiche de l'étudiant en question
etat: *EtudiantCreated
page: *Absence
champs: in-expnom
role: [*AdminDPT,*Secretaire]
createur: Aurélien
test16:
intitulé: Creer une absence non justifiée
operation: Affecter une absence à un étudiant depuis sa fiche étudiant, et utiliser 'Ajouter' dans la barre latérale
resultat: La page absence de cet étudiant contient l'absence créée
etat: *EtudiantCreated
page: *Absence
champs:
role: *Secretaire
createur: Aurélien
test17:
intitulé: Creer une absence justifiée
operation: Affecter une absence à un étudiant depuis sa fiche étudiant, et utiliser 'Ajouter' dans la barre latérale, cocher est justifiée
resultat: La page absence de cet étudiant contient l'absence créée
etat: *EtudiantCreated
page: *Absence
champs:
role: *Secretaire
createur: Aurélien
test18:
intitulé: Justifier une absence
operation: Justifier une absence et la confirmer
resultat: Ces absences apparaissent comme justifiée sur la page des absences de cet étudiant
etat: *EtudiantCreated
page: *Absence
champs:
role: *Secretaire
createur: Aurélien
test19:
intitulé: Supprimer une absence
operation: Supprimer une absence d'un étudiant depuis sa fiche étudiant, et utiliser 'Supprimer' dans la barre latérale, remplir le formulaire avec les dates des absences à justifier
resultat: Ces absences apparaissent comme justifiée sur la page des absences de cet étudiant
etat: *EtudiantCreated
page: *Absence
champs:
role: *Secretaire
createur: Aurélien
test20:
intitulé: Vérifier qu'une matière existe
operation: Se rendre sur le semestre en cours correspondant depuis /Scolarité , controler si la matière en question est presente dans la liste des matières
resultat: La matière est présente
etat: *MatiereCreated
page: *Scolarite
champs: formsemestre_status_ue
role: *Testeur
createur: Aurélien
test21:
intitulé: Créer une interrogation
operation: Se rendre sur la matière de notre choix, ajouter une interogation, remplir le formulaire et le soumettre
resultat: L'interrogation apparait désormais dans le tableau récapitulatif de cette matière
etat: *MatiereCreated
page: Notes
champs:
role: *AdminDPT
createur: Aurélien
test22:
intitulé: Ajouter un enseignant sur un module
operation: Se rendre sur la matière de notre choix, clicker sur ajouter un enseignant, remplir le formulaire en recherchant l'enseignant voulu
resultat: Le nom de l'enseignant apparait désormais lorsqu'on se rends sur cette matière à coté d'"enseignants"
etat: *MatiereCreated
page: Notes
champs:
role: *AdminDPT
createur: Aurélien
test23:
intitulé: Entrer des notes pour une partie des élèves
operation: Se rendre sur la matière de notre choix, selectionner une interogation et entrer les notes pour une partie des élèves
resultat: ATT apparait désormais à coté de l'interrogation en question sur la page de la matières concernée
etat: *MatiereCreated
page: Notes
champs:
role: *Prof
createur: Aurélien
test24:
intitulé: Entrer des notes pour tout les élèves
operation: Se rendre sur la matière de notre choix, selectionner une interogation et entrer les notes pour chaque élève
resultat: La moyenne apparait désormais directement à côté de l'interrogation en question, les notes apparaissent dans le bulletin des élèves concernés
etat: *MatiereCreated
page:
champs:
role: *Prof
createur: Aurélien
test25:
intitulé: Signaler un élève excusé pour une intérogation
operation: Se rendre sur la matière de notre choix, selectionner une interogation et entrer "EXC" pour l'élève voulu
resultat: La moyenne apparait désormais directement à côté de l'interogation en question, un compteur montre le nombre d'élève excusé
etat: *MatiereCreated
page:
champs:
role: *Prof
createur: Aurélien
test26:
intitulé: Compléter les notes manquantes
operation: Se rendre sur la matière de notre choix, selectionner une interogation et entrer les notes manquantes
resultat: La moyenne apparait désormais directement à côté de l'interogation en question, celle ci n'est plus remplacée par "ATT"
etat: *MatiereCreated
page:
champs:
role: *Prof
createur: Aurélien
test27:
intitulé: Supprimer la note d'un étudiant
operation: Se rendre sur la matière de notre choix, selectionner une interogation et entrer "SUPPR" pour l'étudiant voulu
resultat: La moyenne n'apparait plus sur la page des matières, la note est supprimée de la fiche de l'étudiant concerné
etat: *MatiereCreated
page:
champs:
role: *Prof
createur: Aurélien
testX:
intitulé: Ajout d'une matière à l'UE créée
operation: Soumettre le formulaire d'ajout de matière
resultat: La page sur laquelle on est dirigée contient la classe notes_matiere_list et un de ses enfants contient Systeme
etat: *MatiereCreated
page: *Notes
champs:
role: *AdminDPT
createur: Aurélien
testX:
intitulé: Ajouter une session
operation: Verifier que la liste de formation est présente
Se rendre sur la page correspondante "Mise en place d'un semestre de formation" à la formation
Vérifier que grtcontent h2 existe et qu'il contient "Mise en place d'un semestre de formation""
Soumettre le formulaire après l'avoir rempli
resultat: La page sur laquelle on est dirigée contient une classe head_message avec nouveau semestre créé
etat: *ProgramCreated
page: *Notes
champs:
role: *AdminDPT
createur: Aurélien
testX:
intitulé: Générer les absences pour une journée
operation: Généner le récapitulatif des absences
resultat: La page générée contient les absences préalablement créée
etat: *EtudiantCreated
page: *Absence
champs:
role: *Secretaire
createur: Aurélien
testX:
intitulé: Export XML de la formation
operation: Génération de l'export XML, vérifier s'il contient les informations de la formations
resultat: Le xml généré contient les informations demandées
etat: *ProgramCreated
page: *Notes
champs:
role: *AdminDPT
createur: Aurélien
testX:
intitulé: Export JSON de la formation
operation: Génération de l'export JSON, vérifier s'il contient les informations de la formations
resultat: Le JSON généré contient les informations demandées
etat: *ProgramCreated
page: *Notes
champs:
role: *AdminDPT
createur: Aurélien
testX:
intitulé: Verifier la génération du récapitulatif
operation: Se rendre sur la page table récapitulative de la formation
resultat: La page contient toutes les UE et matière précédemment créées
etat: *ProgramCreated
page: *Notes
champs:
role: *AdminDPT
createur: Aurélien
testX:
intitulé: Décision recommandé de validation de semestre pour un etudiant assidu
operation: Selectionner la validation de semestre dans les opérations scolarité, séléctionner étudiant assidu et valider
resultat: L'état ATT apparait sur la fiche de l'étudiant concerné
etat: *ProgramCreated
page: *Notes
champs:
role: *Secretaire
createur: Aurélien
testX:
intitulé: Décision recommandé de validation de semestre pour un etudiant non assidu
operation: Selectionner la validation de semestre dans les opérations scolarité, séléctionner problème d'assiduité et valider
resultat: L'état ATT apparait sur la fiche de l'étudiant concerné et la mention (non ass.) apparait sur la page de parcours de l'étudiant
etat: *ProgramCreated
page: *Notes
champs:
role: *Secretaire
createur: Aurélien
testX:
intitulé: Effectuer la démission d'un étudiant
operation: Selectionner la demission dans les opérations scolarité, entrer une date et confirmer
resultat: La mention "Démission le xx" apparait sur la fiche de l'étudiant concerné
etat: *EtudiantCreated
page: *Scolarite
champs:
role: *Secretaire
createur: Aurélien
testX:
intitulé: Affecter des absences à un étudiant depuis la gestion des absences
operation: Selectionner la semaine concernée et cocher les cases correspondantes pour un étudiant
resultat: Le compteur d'absence de l'étudiant à été mis à jour
etat: *EtudiantCreated
page: *Scolarite
champs:
role: [*Secretaire, *Prof]
createur: Aurélien
testX:
intitulé: Créer une répartition
operation: Dans le menu modifier créer des groupes, rentrer le nom de la partition et clicker sur nouvelle partition
resultat: Le tableau contient une nouvelle ligne avec le nom de la partition préalablement rempli
etat: *ProgramCreated
page: *Notes
champs:
role: [*Secretaire, *AdminDPT]
createur: Aurélien
testX:
intitulé: Créer un groupe
operation: Dans le menu modifier/créer des groupes, clicker sur répartir à coté de la partition concernée, remplir groupName et appuyer sur créer groupe
resultat: Le groupe apprait dans la div groups
etat: *EtudiantCreated
page: *Notes
champs:
role: [*Secretaire, *AdminDPT]
createur: Aurélien
testX:
intitulé: Affecter des étudiants à un groupe
operation: Dans une répartition, déplacer des étudiants de étudiants sans groupe au groupe souhaité, enregister ces groupes
resultat: Le groupe (discretelink) apparait maintenant sur la fiche des étudiants correspondant
etat: *EtudiantCreated
page: *Notes
champs:
role: *Secretaire
createur: Aurélien
test25:
intitulé: Verifier le calcul des notes
operation:
resultat:
etat:
page:
champs:
role:
createur: Aurélien
test26:
intitulé: Ajouter un module optionnel
operation:
resultat:
etat:
page:
champs:
role:
createur: Aurélien
test27:
intitulé: Ajouter une note optionnelle
operation:
resultat:
etat:
page:
champs:
role:
createur: Aurélien

Binary file not shown.

Binary file not shown.