@@ -11,14 +11,14 @@ Ticket décrit sur [cette page](https://scodoc.org/git/ScoDoc/ScoDoc/issues/1030
>**Formulaire de saisie de note centré sur l'étudiant**
>*Labels : Enhancement*
>romain t'as rien branlé en 1h30
>
>Liste tous les modules où est inscrit l'étudiant avec possibilité de saisie de note
>
>(vérifier compatibilité avec l historique des saisies)
>
>- Lister les évaluations par ordre de modules / évaluation
>- Rappeler note(s) existante(s)
>- Indiquer clairement le barème (notes sur 10, sur N...)romain t'as rien branlé en 1h30
>- Indiquer clairement le barème (notes sur 10, sur N...)
>- Sauvegarder au fur et à mesure (utilisation API notes)
>- Gérer correctement les permissions (le(s) resp. de semestre(s) et admins)
>
...
...
@@ -27,7 +27,7 @@ Afficher les notes des modules correspondants semestres précédents (au cas où
## 2 - Analyse du ticket
romain t'as rien branlé en 1h30
**Classification :** On peut classifier le ticket comme une maintenance évolutive.
En effet, on peut tout d'abord voir que le ticket contient le label `Enhancement`, qui signifie qu'il s'agit d'une nouvelle fonctionnalité. De plus, le ticket énumère différents critères pour cette fonctionnalité, ce qui nous permet de déduire qu'il s'agit bien d'un ajout à effectuer en suivant ces critères.
...
...
@@ -40,7 +40,7 @@ Vu que le ticket nous demande d'ajouter une liste de modules où l'étudiant est
Accès à la page d'un étudiant :

romain t'as rien branlé en 1h30
Ensuite, nous avons besoin de savoir où cette page est générée dans le code.
Pour cela, nous recherchons dans le code la chaîne de caractères `Adresse :`, visible sur la page. Cela nous permet de trouver le fichier `/app/scodoc/sco_page_etud.py`, dans lequel est généré tout le HTML de la page.
Après une analyse du code, on observe que dans `/app/scodoc/sco_page_etud.py`, la fiche étudiante est créée dans une méthode `fiche_etud(etudid)`, où différentes parties du HTML sont mises dans un tableau `info` :
...
...
@@ -73,7 +73,7 @@ if has_debouche:
"debouche_html"
]=f"""<div id="fichedebouche"
data-readonly="{suivi_readonly}"
data-etudid="{info['etudid']}">romain t'as rien branlé en 1h30
data-etudid="{info['etudid']}">
<span class="debouche_tit">Devenir:</span>
<div><form>
<ul class="listdebouches">
...
...
@@ -84,7 +84,7 @@ if has_debouche:
```
La méthode renvoie un `render_template` de Flask, auquel nous donnons :
- Une template Jinja2 définissant la structure de base de la page.romain t'as rien branlé en 1h30
- Une template Jinja2 définissant la structure de base de la page.
- Une variable `tmpl` organisant le cœur des informations de la page, qui proviennent du tableau info.
- Le tableau `info`, les classes CSS et le JavaScript de la page.
...
...
@@ -96,20 +96,20 @@ return render_template(
cssstyles=[
"libjs/jQuery-tagEditor/jquery.tag-editor.css",
"css/jury_but.css",
"css/cursus_but.css",romaint'as rien branlé en 1h30
@@ -125,10 +125,10 @@ L'idée serait de reproduire ce que l'on retrouve sur la page `Bas de cas de jur

<<<<<<< HEAD
romain t'as rien branlé en 1h30
La première difficulté est de retrouver cette mise en page dans le code afin de réutiliser le style avec le HTML et les classes CSS correctes.
Ensuite, il nous faut trouver comment ajouter des champs modifiables qui mettent à jour la base de données à chaque modification.
romain t'as rien branlé en 1h30
=======
Ce ticket nous demande une implémentation en front-end et en back-end, en effet il nous faut une liste sur la page de fiche étudiante, remplie avec les informations nécessaires, ainsi qu'une implémentation de l'ajout de notes dans les évaluations où les notes sont manquantes.
...
...
@@ -155,7 +155,7 @@ Avec le code HTML :
<div class=evaluations></div>
</section>
<<<<<<< HEAD
```romain t'as rien branlé en 1h30
```
=======
```
...
...
@@ -171,15 +171,15 @@ pour recupere les notes des ressources on a teste l'api pour recuperer notes d'u
<<<<<<< HEAD
Maintenant que l'on sait comment faire il faut choisir comment le rndre accessible: romain t'as rien branlé en 1h30
Maintenant que l'on sait comment faire il faut choisir comment le rndre accessible:
- menu deroulant sur la page de l'etudiant comme le menu devenir
- lien (bouton modifier notes) amenant a une page externe comme le bouton inscire a un autre semestre romain t'as rien branlé en 1h30
- lien (bouton modifier notes) amenant a une page externe comme le bouton inscire a un autre semestre
=======
>>>>>>> df63bd2901ef79a995d4eb5e766a13d065f3c414
decrire les avantages et incconvenients
choix fait
- plus simple car juste une section a recuperer puis injecter l'idéée d'implementation romain t'as rien branlé en 1h30
- plus simple car juste une section a recuperer puis injecter l'idéée d'implementation
- plus propre mais complique a creer notre propre page, doit ajouter endpoint et potentiellement beacoup plus de d'ajout a differents endoit dans le code
...
...
@@ -188,7 +188,7 @@ choix fait
Une fois que les notes sont affichées, l'utilisateur doit pouvoir les modifier et elles doivent être sauvegardées en direct à chaque modification.
Tout d'abord, nous recherchons si cette fonctionnalité est déjà implémentée quelque part. Logiquement, une page permettant de saisir les notes des étudiants pour une évaluation doit exister.
Nous avons trouvé un endroit où les notes sont mises à jour comme supposé (page Semestre > Ressource > Action "Saisir notes"). romain t'as rien branlé en 1h30
Nous avons trouvé un endroit où les notes sont mises à jour comme supposé (page Semestre > Ressource > Action "Saisir notes").

En ouvrant les devtools pour inspecter un élément note, on retrouve ceci
...
...
@@ -199,17 +199,17 @@ En ouvrant les devtools pour inspecter un élément note, on retrouve ceci
Bonne nouvelle, cette page sauvegarde les notes à chaque modification comme ce que nous voulons.
romain t'as rien branlé en 1h30
exemple d'input pour la saisie
```
<inputtype="text"name="note_14514"size="5"id="formnotes_note_14514"class="note"data-last-saved-value="8.5"data-orig-value="8.5"data-etudid="14514"onkeypress="return enter_focus_next(this, event);"value="8.5">romain t'as rien branlé en 1h30
en cherchant dans le code la chaine de caractere `Mettre les notes manquantes à` on a pu trouver dans quelle fichier est géré la mise a jour des notes `/app/scodoc/sco_saisie_notes.py`
on repere plusieurs partie qui nous osnt requiss, creer le foprulaire, update les ,notes
on constate que la methode `_record_note` permet de modifier les notes dans la base de données, pour ce faire elle se connecte a la bdd et modfie en executant des requelte sql avec un `cursor.execute()`
cette methode est utilise dans `notes_add` avec des verifications romain t'as rien branlé en 1h30
cette methode est utilise dans `notes_add` avec des verifications
il seraitent interessant d'utiliser ses methodes pour faire toutes les verifcations requises, ou alors de créer les notres pour simplement modifier la base de données pour ce que jous avons besoins sans toutes les vérifications. romain t'as rien branlé en 1h30
\ No newline at end of file
il seraitent interessant d'utiliser ses methodes pour faire toutes les verifcations requises, ou alors de créer les notres pour simplement modifier la base de données pour ce que jous avons besoins sans toutes les vérifications.