cisstech / platon

Platform for Learning and Teaching Online
Other
14 stars 3 forks source link

Probleme d'affichage de certains webComponents #37

Closed Ofghanirre closed 1 year ago

Ofghanirre commented 1 year ago

Salut j'espère que tu vas bien! On se retrouve face à des problèmes d'affichages de certains WebComponents.

Sont concernés:

  • CheckBoxGroup
  • SortList
  • Autres???

Output console :

Pas d'erreurs, un warning en local, pas sur le serveur preprod:

Could not find Angular Material core theme. Most Material components may not work as expected. For more info refer to the theming guide: https://material.angular.io/guide/theming

Sur l'inspecteur je remarque que le contenu des webcomponents semblent correcte, il y a le composant joué et la solution... Mais non chargées...

Capture d’écran 2023-08-28 à 10 20 10

Et on obtient l'affichage suivant:

image

Pistes possibles:

Point étranges:

Lien rapide vers la doc d'un composant: https://platon-preprod.univ-eiffel.fr/docs/pages/widgets/wc-chart-viewer-radar

Voilà j'espère avoir bien décris le problème :/ Si tu as besoin de quoi que ce soit fais le moi savoir!

En attendant je te souhaite une bonne journée

Ofghanirre commented 1 year ago

Fichier utiliser pour faire un exercice CheckBoxGroup:

sandbox="python"

checkBox = :wc-checkbox-group

cBSolution = :wc-checkbox-group
cBSolution.disabled = true

good == 
réponse1
réponse2
==

bad ==
réponse3
réponse4
réponse5
réponse6
==

/* total de réponses disponibles pour le user*/
amountBad = 2
amountGood= 2

horizontal = False

builder==#!lang=python
checkBox["disabled"] = False

from random import shuffle, sample

good_list = good.split("\n")

result = sample(good_list, amountGood)
result += sample(bad.split("\n"), amountBad)
shuffle(result)

checkBox["items"] = [{"content": choix} for choix in result]
cBSolution["items"] = [{
  "content": choix, 
  "checked": choix in good_list, 
  "css": "border-color: green;" if choix in good_list else "border-color: red; opacity: 0.5;"
} for choix in result]

if horizontal:
  checkBox["horizontal"] = True
  cBSolution["horizontal"] = True
==

grader==#!lang=python
grade = 0
feedback["type"] = "error"
feedback["content"] = "Mauvaise réponse"

list1 = list(map(lambda el: bool(el.get("checked")), checkBox["items"]))
list2 = list(map(lambda el: bool(el.get("checked")), cBSolution["items"]))

if list1 == list2:
  grade = 100
  feedback["type"] = "success"
  feedback["content"] = "Bonne réponse"

#checkBox = cBSolution
for i in range(len(checkBox["items"])):
  checkBox["items"][i]["css"] = cBSolution["items"][i]["css"]
checkBox["disabled"] = True
==

title==
Addition aléatoire
==

statement ==
Pitié marche
==

form==
{{checkBox}}
==

solution==
{{cBSolution}}
==

Note:

Je me demande si c'est pas lié au ngemarkdown, vu qu'il y a eu une maj. et que les composants sont affichés dans une balise ngemarkdown... On creuse avec thomas en même temps J'ai essayé depuis ta branche main, et même problème :/

mciissee commented 1 year ago

Salut @Ofghanirre, le problème est désormais fix sur master, c'était dû à un non appel du détecteur de changement d'angular lorsque l'état d'un composant changeait dans certains cas.

Capture d’écran 2023-08-28 à 12 13 35

Par ailleurs, si vous faites un merge de master, vos 3 composants qui utilisent la lib ngx-charts ne fonctionneront pas car j'ai update d3 à sa dernière version (7), Il y avait une différence de 3 à 4 versions majeurs avec la version de ngx-charts. Pour cette raison j'ai retiré la lib ngx-charts du projet pour la remplacer par echarts qui est plus stable, a une meilleure maintenance et contient de meilleurs composants.

Capture d’écran 2023-08-28 à 11 34 34
Ofghanirre commented 1 year ago

ça marche merci beaucoup pour les explications, j'ai regardé echarts, mise à part leur site ça a l'air très pratique