LabNbook-code issueshttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues2024-03-14T16:57:25+01:00https://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1080Zwibbler : sauvegarde d'un labdoc alors qu'un texte est en édition2024-03-14T16:57:25+01:00Sebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frZwibbler : sauvegarde d'un labdoc alors qu'un texte est en éditionLorsqu'un texte est en édition dans un labdoc de type dessin, la validation du labdoc ne sauvegarde pas ce texte.
reprise d'un message de @dhamc :
-----------------------------------------------------------
Pour résoudre le pb des ét...Lorsqu'un texte est en édition dans un labdoc de type dessin, la validation du labdoc ne sauvegarde pas ce texte.
reprise d'un message de @dhamc :
-----------------------------------------------------------
Pour résoudre le pb des étudiants de Hélène, j'imagine qu'il faut ajouter (report.js ligne 888) :
```javascript
else if (global_tab_ld[id_ld].ld_type == "drawing") {
// validate any text panel that may be still opened
}
```
mais je n'arrive ni à trigger un click dans le canvas : $("#labdoc_4556 .zwibbler-main-canvas").trigger("click")
ni à trouver comment valider un textarea avec l'API Zwibbler : https://zwibbler.com/docs/#introduction
-----------------------------------------------------------Sebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frSebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frhttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1074Grilles critériées : problème css2024-02-29T11:28:10+01:00Sebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frGrilles critériées : problème cssDans le fichier `scoring.css`, on donne aux input de type `number` un style particulier.
Le sélecteur de style utilisé est trop générique et affecte aussi les autres input de type `number` situés sur la même page.
Même chose pour les b...Dans le fichier `scoring.css`, on donne aux input de type `number` un style particulier.
Le sélecteur de style utilisé est trop générique et affecte aussi les autres input de type `number` situés sur la même page.
Même chose pour les boutons `.lb_btn_danger`, `.lba_icon_default`, `.right_btn`.Sebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frSebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frhttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1068Ajouter la trace freeze_report2024-02-29T11:28:10+01:00Cedric d'HamAjouter la trace freeze_report+ Role : enseignant
+ Page(s) / Url(s) : /report/xxx?sc=follow
+ Comportement attendu : une trace doit être ajoutée quand l'enseignant freeze le rapport
+ Proposition technique : action = freeze_report ; action_type = t_report+ Role : enseignant
+ Page(s) / Url(s) : /report/xxx?sc=follow
+ Comportement attendu : une trace doit être ajoutée quand l'enseignant freeze le rapport
+ Proposition technique : action = freeze_report ; action_type = t_reportSebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frSebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frhttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1058Connexion CAS : un enseignant ne devrait pas voir son inst_number mis à jour2024-02-20T16:02:15+01:00Sebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frConnexion CAS : un enseignant ne devrait pas voir son inst_number mis à jourOn a rencontré le cas suivant :
- une ancienne étudiante avait un compte labnbook non lié au CAS avec un `inst_number`.
- elle est désormais enseignante et dispose d'un compte CAS. Le ldap a conservé son `inst_number`.
- a la première c...On a rencontré le cas suivant :
- une ancienne étudiante avait un compte labnbook non lié au CAS avec un `inst_number`.
- elle est désormais enseignante et dispose d'un compte CAS. Le ldap a conservé son `inst_number`.
- a la première connexion, son compte labnbook a été créé (sans renseigner le `inst_number`) et elle a réussi à se connecter.
- lors des connexions suivantes, impossible de se connecter : labnbook essayait en vain de mettre à jour son `inst_number`, une contrainte d'unicité `(id_inst, inst_number)` la rendant impossible.
Solution : supprimer le `inst_number` du compte étudiant.
A faire : ne pas mettre à jour le `inst_number` d'un enseignant.Sebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frSebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frhttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1052Remove blank lines at the end of saved TinyMCE texts2024-03-14T16:57:25+01:00Cedric d'HamRemove blank lines at the end of saved TinyMCE textsDans les fonctions qui sauvent les textes TinyMCE, à savoir :
- les consignes de parties de rapport `validateEditRP()` de `mission_edit.js`
- les LD textes `saveLocalLDVersion()` de `labdoc.js`
il faut supprimer les lignes inutiles en ...Dans les fonctions qui sauvent les textes TinyMCE, à savoir :
- les consignes de parties de rapport `validateEditRP()` de `mission_edit.js`
- les LD textes `saveLocalLDVersion()` de `labdoc.js`
il faut supprimer les lignes inutiles en fin de texte du style : `<p style="text-align: left;"> </p>`
Faire un regexp qui cherche `<p...>n_espaces</p>` et les supprimer en fin de texteRemi Colin De VerdiereRemi Colin De Verdierehttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1050Connexion par le CAS : vérifier si un étudiant a acquis un statut enseignant2024-02-08T13:43:19+01:00Cedric d'HamConnexion par le CAS : vérifier si un étudiant a acquis un statut enseignantOn a souvent des utilisateurs qui ont travaillé sur LabNbook durant leurs études et qui enseignent quand ils arrivent en thèse. Il faudrait upgrader automatiquement leur statut.
A chaque connexion d'un utilisateur par le CAS UGA, il fau...On a souvent des utilisateurs qui ont travaillé sur LabNbook durant leurs études et qui enseignent quand ils arrivent en thèse. Il faudrait upgrader automatiquement leur statut.
A chaque connexion d'un utilisateur par le CAS UGA, il faut vérifier si son statut n'est pas passé de étudiant à enseignant dans le CAS. Si c'est le cas, il faut octroyer les droits enseignants à l'utilisateur dans LNB et le prévenir par un alertGently.Sebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frSebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frhttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1046Traces : le test de refresh de page ne fonctionne pas2024-02-08T15:21:17+01:00Sebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frTraces : le test de refresh de page ne fonctionne pasLorsqu'un enseignant est dans un rapport et qu'il rafraîchit la page, on n'enregistre pas une nouvelle trace `follow_report` en BD.
Pour tester le rafraîchissement, on dispose de `\App\Helper::requestIsARefresh()` qui regarde la variabl...Lorsqu'un enseignant est dans un rapport et qu'il rafraîchit la page, on n'enregistre pas une nouvelle trace `follow_report` en BD.
Pour tester le rafraîchissement, on dispose de `\App\Helper::requestIsARefresh()` qui regarde la variable `HTTP_CACHE_CONTROL`.
Cette fonction ne remplit pas son rôle sur toutes les machines (elle ne détecte pas le refresh).
Cela cause l'échec du test `AnnotationCest`.
Ce problème se retrouve en prod (la capture montre 3 refreshs successifs) :
![image](/uploads/d7a5ba50b1992aec63c356e27b655c74/image.png)David BeniamineDavid Beniaminehttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1036Grille critériées GC : bug à l'affichage du 0 dans le tableau récapitulatif d...2023-12-07T09:32:31+01:00Cedric d'HamGrille critériées GC : bug à l'affichage du 0 dans le tableau récapitulatif des notes+ Role : enseignant
+ Page(s) / Url(s) : /teacher/reports
+ Comportement actuel (si besoin) : un étudiant qui a tout faux n'a pas de note
+ Comportement attendu : il faudrait afficher 0
![image.png](/uploads/34678e51c913e58928864f84960c...+ Role : enseignant
+ Page(s) / Url(s) : /teacher/reports
+ Comportement actuel (si besoin) : un étudiant qui a tout faux n'a pas de note
+ Comportement attendu : il faudrait afficher 0
![image.png](/uploads/34678e51c913e58928864f84960cc33b/image.png)David BeniamineDavid Beniaminehttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1031LDAP détection de doublons : le nouveau compte n'est pas toujours crée2023-11-17T00:17:52+01:00David BeniamineLDAP détection de doublons : le nouveau compte n'est pas toujours créeLors d'une recherche LDAP sur un login étudiant, si son numéro étudiant est renseigné dans LNB mais n'est plus dans le ldap son compte est renommé `login.1`.
Dans le cas de l'ajout à une classe par numéro ldap, un nouveau compte `login` ...Lors d'une recherche LDAP sur un login étudiant, si son numéro étudiant est renseigné dans LNB mais n'est plus dans le ldap son compte est renommé `login.1`.
Dans le cas de l'ajout à une classe par numéro ldap, un nouveau compte `login` devrait être crée et ajouté à la classe, mais c'est le compte `login.1` qui est ajouté.
Résultat l'enseignant a fait sa part du travail, mais l'étudiant ne peut pas se connecter.David BeniamineDavid Beniaminehttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1028LDAP detection des réutilisation de login trop de faux positifs2023-11-14T11:05:13+01:00David BeniamineLDAP detection des réutilisation de login trop de faux positifsIl y a trop de faux positifs à la détection de réutilisation de login, il faudrait chercher le login inst connu de LNB dans les tous id institutionnels du LDAP avant de considérer que c'est une réutilisation de comptesIl y a trop de faux positifs à la détection de réutilisation de login, il faudrait chercher le login inst connu de LNB dans les tous id institutionnels du LDAP avant de considérer que c'est une réutilisation de comptesDavid BeniamineDavid Beniaminehttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1027Grilles critériées : remplacer le chevron des descripteurs par quelque chose ...2023-11-30T14:27:22+01:00Sebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frGrilles critériées : remplacer le chevron des descripteurs par quelque chose de plus légerActuellement :
![image](/uploads/ce47485c9a89391d8675eebfc201f511/image.png)
Souhaité :
![image](/uploads/f12ccbe64f39042d45229edcf298ca2e/image.png)Actuellement :
![image](/uploads/ce47485c9a89391d8675eebfc201f511/image.png)
Souhaité :
![image](/uploads/f12ccbe64f39042d45229edcf298ca2e/image.png)Novembre 2023Sebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frSebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frhttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1026Import de labdocs dans une mission, problème de filtre2023-11-17T00:17:46+01:00Isabelle GiraultImport de labdocs dans une mission, problème de filtre+ Role : étudiant
+ Page(s) / Url(s) : https://uga.labnbook.fr/report/84734?
+ Comportement actuel (si besoin) : dans la 1ere partie du rapport, j'ai filtré avec la mission MEP101-TD8_2021 et cela a bien fonctionné. J'ai pu importer le s...+ Role : étudiant
+ Page(s) / Url(s) : https://uga.labnbook.fr/report/84734?
+ Comportement actuel (si besoin) : dans la 1ere partie du rapport, j'ai filtré avec la mission MEP101-TD8_2021 et cela a bien fonctionné. J'ai pu importer le seul LD proposé. Dans la 2eme partie de rapport, en filtrant avec la même mission, j'ai beaucoup de LD qui appartiennent à une autre mission (en revanche le type de LD proposé correspond à ce qui est attendu). J'ai sélectionné un LD qui appartient à la mission MEP101-TD8_21) et il n'est pas importé (Q1- Principe de la DEAE)
+ En revenant dessus, j'ai réussi à avoir le bon comportement dans la partie 2, lorsque je n'ai pas utilisé l'import de LD dans la partie 1 !!
+ Comportement attendu : Ne voir que les LD de la mission MEP101-TD8_2021 et pouvoir les importer.
+ Proposition technique :David BeniamineDavid Beniaminehttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1024Test administratifs via cron : faux positif sur "code localement modifié"2023-11-09T22:59:22+01:00David BeniamineTest administratifs via cron : faux positif sur "code localement modifié"Lorsque les tests administratif sont executés via cron, une des comamndes git retourne une erreur `Code localement modifié alors que l'environement est 'production'` bien que cette affirmation soit fausse.
Le même test executé via charg...Lorsque les tests administratif sont executés via cron, une des comamndes git retourne une erreur `Code localement modifié alors que l'environement est 'production'` bien que cette affirmation soit fausse.
Le même test executé via chargement de la page d'administration n'affiche pas d'erreur
## TODO
+ [ ] Logger la sortie de cette commande pour en comprendre la raisonDavid BeniamineDavid Beniaminehttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1023Grille critérié : Pas de propagate à la création de critères / groupes de cri...2023-10-27T21:24:05+02:00David BeniamineGrille critérié : Pas de propagate à la création de critères / groupes de critères+ Role : enseignant
+ Page(s) / Url(s) : `/mission/<id>`
+ Comportement actuel (si besoin) : Edition d'une grille critériée : ajout de critères / groupes de critères
+ Comportement attendu : Les critères et groupes sont propagés aux asse...+ Role : enseignant
+ Page(s) / Url(s) : `/mission/<id>`
+ Comportement actuel (si besoin) : Edition d'une grille critériée : ajout de critères / groupes de critères
+ Comportement attendu : Les critères et groupes sont propagés aux assessment. Peut être le même soucis sur les descrobs et les delete ?
**TODO** notifier Claire Rist après mise en production
+ Proposition technique :David BeniamineDavid Beniaminehttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1021Grille critérié possibilité de créer des critères non groupés2023-11-09T09:39:13+01:00David BeniamineGrille critérié possibilité de créer des critères non groupésLes bétas testeurs ont réussit à créer des critères non groupés ce qui n'est normalement plus permis et les a surpris lors de l'évaluation puisques ces critères ne sont plus visible dans a la vue de création / modification de grille.Les bétas testeurs ont réussit à créer des critères non groupés ce qui n'est normalement plus permis et les a surpris lors de l'évaluation puisques ces critères ne sont plus visible dans a la vue de création / modification de grille.David BeniamineDavid Beniaminehttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1020Grille critériée : indication sur la liste des rapports2023-10-26T15:32:09+02:00David BeniamineGrille critériée : indication sur la liste des rapportsAjouter une colone évaluation contenant une pastille de couleur par évaluation : Non commencé / En cours / Publié
+ Icone `fa-circle-stop` pour non commencé + couleur rouge
+ Icone `fa-circle-play` pour en cours + couleur orange
+ Icone...Ajouter une colone évaluation contenant une pastille de couleur par évaluation : Non commencé / En cours / Publié
+ Icone `fa-circle-stop` pour non commencé + couleur rouge
+ Icone `fa-circle-play` pour en cours + couleur orange
+ Icone `fa-circle-check` pour publié + couleur vertDavid BeniamineDavid Beniaminehttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1019Grille critérié : interface de stats petits correctifs2023-10-26T15:25:06+02:00David BeniamineGrille critérié : interface de stats petits correctifs+ [x] BUG : Impossible de charger les stats d'un rapport avec tous les étudiants absents
+ [x] BUG : Ne pas mettre de couleur sur les lignes des étudiants absents
+ #1017 :
+ [x] CdH Amélioration : mettre une largeur et hauteur max +...+ [x] BUG : Impossible de charger les stats d'un rapport avec tous les étudiants absents
+ [x] BUG : Ne pas mettre de couleur sur les lignes des étudiants absents
+ #1017 :
+ [x] CdH Amélioration : mettre une largeur et hauteur max + ascenseurs sur la fenêtre de widget ou mieux (?) utiliser un nouvel onglet du navigateur
+ [x] CdH Amélioration CSS : Enlever le bold des 2 premières colonnesDavid BeniamineDavid Beniaminehttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1008Rappatrier le backend des grilles critériées dans LabNbook2024-03-21T11:45:00+01:00David BeniamineRappatrier le backend des grilles critériées dans LabNbookLe backend est actuellement un outil externe, il semble plus pertinent de passer les tables dans LabNbook, l'outil pouvant être externalisé dans son entièreté comme une application Laravel.
Au passage, les processus de sauvegarde d'éval...Le backend est actuellement un outil externe, il semble plus pertinent de passer les tables dans LabNbook, l'outil pouvant être externalisé dans son entièreté comme une application Laravel.
Au passage, les processus de sauvegarde d'évaluation et de grille critériée devraient être atomiques : si une partie plante on annule tout et laisse l'utilisateur en mode édition
## TODO
+ Ajout d'une commande `./gc backup_only_data` dans le backend qui fait `mysqldump --no-create-info`
+ Ajout des tables en BD
+ [X] Query SQL raw
+ Migration Laravel **attention aux contraintes**
1. [X] Recrée la structure
2. [X] Importe les données exportées via `./gc backup_only_data` plante si pas de données
3. [X] Fait le ménage et calcul de `id_rubric`, `id_assessment` sur les `criteria_group`
+ [X] Transformation des RemoteModel en Model
+ [X] Adaptation des contrôleurs et processus
+ Controllers
+ [X] AssesmentController
+ [X] RubricController
+ Processus
+ [X] UpdateRubric
+ [X] UpdateAssessment
+ [X] ComputeGradeStat
+ [X] S'assurer du respect des tris effectuée par les ressources
+ [X] `Assessed_students` : `id_assessment`, `id_student`
+ [X] `criteria_group` : `position`, `id_criteria_group`
+ [X] `Criterion` : `id_criteria_group`, `position` (changement par rapport au backend actuel)
+ [X] `Descrob` : `position`, `id_descrob`
+ [ ] Test de chacune des interfaces
+ [ ] Création / modification de gc
+ [X] Création de gc
+ [X] duplication de gc
+ [X] Modification de gc
+ [ ] **Propagate** : reprendre Create / Update / Delete
+ [x] Etat sur le tableu des rapports
+ [x] Visualisation des scores
+ [X] Évaluation
+ [x] Reinitialisation
+ [x] Sauvegarde
+ [X] Publication
+ [X] Visualisation de l'évaluation
+ [X] Visualisation de la grille (étudiant)
+ [X] `propagate` : récupérer le code / adapter ajout d'une clé sur les criteria_group pour faciliter
+ [X] `norelated` : ajout ou non de `with` dans la query laravel
+ [X] Ajout de relation avec les objet LabNbook (mission, report, student)
+ [X] Nettoyage du `.env` **et de la config** s'assurer qu'il ne reste plus de traces dans le code
+ [X] `SCORING_MOCK` + données de mockup
+ [X] `SCORING_URL_PREFIX`
+ [X] `SCORING_SECRET`
+ [X] `SCORING_URL`
+ [X] Nettoyage `./lnb` virer ce qui concerne le scoring
## TODO après mise en prod
+ [x] Supprimer le vhost
+ [x] Supprimer la BD backend (après avoir fait un backup complet)
+ [x] Supprimer le code backend
+ [x] Supprimer le projet backendDecembre 2023David BeniamineDavid Beniaminehttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1003Grilles critériées : mise en forme de l'interface de correction2023-10-26T16:22:58+02:00Sebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frGrilles critériées : mise en forme de l'interface de correction- [x] Maquette graphique
- [x] Validation de l'équipe
- [x] Intégration html- [x] Maquette graphique
- [x] Validation de l'équipe
- [x] Intégration htmlSebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frSebastien Rebaudosebastien.rebaudo@univ-grenoble-alpes.frhttps://gricad-gitlab.univ-grenoble-alpes.fr/labnbook/labnbook/-/issues/1001Grilles critériées : vue stat prise en comptes des critères neutralisés2023-10-12T16:50:08+02:00David BeniamineGrilles critériées : vue stat prise en comptes des critères neutralisésDans le calcul des moyennes et des écarts types il faudrait prendre en compte
1. Le fait que certains critères peuvent ne pas être sur toutes les évaluations (changement de la grille entre deux évaluation)
2. Certains critères peuvent ...Dans le calcul des moyennes et des écarts types il faudrait prendre en compte
1. Le fait que certains critères peuvent ne pas être sur toutes les évaluations (changement de la grille entre deux évaluation)
2. Certains critères peuvent être neutralisés sur une partie des évaluations
## TODO
+ [x] Critères pas dans toutes les évals = NA, pas utilisé dans moyenne / ectype
+ [x] Critère neutralisé = Neutralisé, pas utilisé dans moyenne / ectype
+ [x] Critère à poids 0 => affiché normalement
+ [x] Critère normal : on affiche le $\tilde{S_{ci}}$ avec en fond une couleur liée a ce score
+ [x] Header en bleue
+ [x] Arrière plan dépendant du %age
## Retours demo du 12/10/2023
+ [x] Neutralisé / NA pas de background
+ [x] Arrondir les % à l'unité pas de virgule
+ [x] Ecart type en %
+ [x] NA devient `-` et au survol `Non concerné`
+ [x] Nb notes : devient nombre de valeurs
+ [x] Rajouter une colonne équipe
+ [x] Trier par nom étudiant alphabétique
+ ~~Datatable voir si faisable en juste 5 minute là dessus~~
+ [x] **BUG** Neutralisé ne compte pas dans le nombre de valeur
+ [x] Pas de bonus malus mettre à 0
+ [x] Faire disparaitre bonus malus si bonus max = bonus min = 0
+ [x] Header critère largeur max + overflow-y
+ [x] Bonus / malus devient Bonus Malus
+ [x] Export CSV retirer les unités et mettre dans l'entête
+ [x] Bonus Malus préfixer avec + ou -
+ [x] Taille des boutons
+ [x] Note sur : si toutes eval même barême => rien faire / sinon normaliser au note sur de la grille courante
+ [x] Fond sur les moyennes HSDavid BeniamineDavid Beniamine