PlatonOrg / platon

Platform for Learning and Teaching Online: Open Source Education Platform
Other
8 stars 0 forks source link

@include ne fonctionne pas sur des fichiers non textuels #131

Closed TheValber closed 3 months ago

TheValber commented 5 months ago

On ne peut pas utiliser le @include sur certains types de fichiers.

On a essayé avec png et mp3, dans les deux cas on obtient l'erreur suivante :

image

NewMeeh commented 5 months ago

@TheValber Est-ce que tu peux ajouter le code d'un exercice qui renvoie cette erreur stp

TheValber commented 5 months ago

Voici le code d'un exercice qui renvoie cette erreur. (peu importe l'exercice, si la première ligne est présente, cela provoque l'erreur)

@include image.png

sandbox = "python"

input = :wc-input-box
input.type = "number"
input.placeholder = "Entrez votre réponse ici"

builder==

==

grader==
grade = 0
feedback["type"] = "error"
feedback["content"] = "Mauvaise réponse"
if input["value"] == 0:
  grade = 100
  feedback["type"] = "success"
  feedback["content"] = "Bonne réponse"
==

title==
ZERO
==

statement ==
Entrez 0 ?
==

form==
{{input}}
==
NewMeeh commented 5 months ago

Le problème est l'enregistrement des fichiers non textuelles dans les Sessions, au moment de la prévisualisation ou du lancement d'un exercice tout les média sont ajoutés aux variables de la session. C'est une erreur.

Il faut rajouter une table qui va gérer les médias, cette table aux un champs sha256 et un blob avec le contenu du fichier. Dans les variable de la session on mettra l'id du média correspondant. Ce changement induis aussi un changement lors de l'envoie de l'environnement à la sandbox, il faudra résoudre les média et les ajoutés aux contenu de la requête

nimdanor commented 4 months ago

Je pense qu'il faut prioritiser cette issue.

NewMeeh commented 4 months ago

Dans la version de développement on peut maintenant envoyer des fichiers binaires mais il n'est pas possible de les récupérer.