@@ -29,19 +29,20 @@ Afficher les notes des modules correspondants semestres précédents (au cas où
## 2 - Analyse du ticket
**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 que c'est une nouvelle feature. De plus, le ticket énumère différents critères pour une fonctionnalité, on en déduit que c'est bien une fonctionnalité à ajouter en suivant les critères donnés.
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.
### 2.1 - Contexte de l'implémentation
Tout d'abord on cherche à quel endroit sur scodoc sera ajouter la fonctionnalité.
Tout d'abord, nous cherchons à quel endroit sur Scodoc sera ajoutée la fonctionnalité.
Vu que le ticket nous demande d'ajouter une liste de modules où l'étudiant est inscrit, avec un formulaire de saisie de notes, il nous semble convenable d'implementer cette fonctionnalité sur la fiche étudiante.
Vu que le ticket nous demande d'ajouter une liste de modules où l'étudiant est inscrit, avec un formulaire de saisie de notes, il nous semble convenable d'implémenter cette fonctionnalité sur la fiche étudiante.
Accès à la page d'un étudiant :

Ensuite on a besoin de savoir où cette page est généré dans le code, pour cela on recherche dans le code la chaine de caractere `Adresse :` que l'on peut voir sur la page. Cela nous permet de trouver le fichier `/app/scodoc/sco_page_etud.py` dans lequel est générer tous le html pour la page.
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.
```python
adresse_template=(
...
...
@@ -64,7 +65,7 @@ adresse_template = (
)
```
Après une analyse du code, on observe que dans `/app/scodoc/sco_page_etud.py`, la fiche étudiante est créer dans une méthode "fiche_etud(etudid)", où différentes parties de l'HTML sont misent dans un tableau "info":
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`:
```python
ifhas_debouche:
...
...
@@ -82,8 +83,10 @@ if has_debouche:
</div>"""
```
La méthode renvois un "render_template" de flask à laquelle nous donnons:
une template j2 donnant la structure de base de la page, ainsi qu'une variable "tmpl" organisant le coeur des informations de la page qui viennent du tableau "info" ainsi que le tableau info, les classes CSS et le JavaScript de la page.
La méthode renvoie un `render_template` de Flask, auquel nous donnons :
- 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.
Nous avons réfléchi à la manière d'implémenter efficacement l'affichage de toutes les notes sur la page actuelle.
L'idée serait de reproduire ce que l'on retrouve sur la page `Bas de cas de jury` d'un semestre de l'étudiant, avec toutes les notes de chaque ressource, comprenant un champ modifiable pour chacune :

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.