Greffe l'envoi de statements xAPI vers un LRS configurable par le créateur du jeu, en parallèle du reporting SCORM existant : réglages stockés en base (_meta), formulaire dans la modale d'export, injection dans le paquet exporté. Relié aussi bien à l'action de flow "Modifier un score/statut" qu'au parcours quête/quiz (qui alimentait déjà le SCORM classique via un chemin séparé). L'export ne se lance plus automatiquement à l'ouverture de la modale, pour laisser le temps d'enregistrer les réglages xAPI avant de générer le paquet.
25 lines
1.0 KiB
Python
25 lines
1.0 KiB
Python
from ..connection import connect
|
|
|
|
|
|
def set_xapi_settings(slug, endpoint, login, password=None):
|
|
"""Enregistre les réglages xAPI de CE jeu (voir get_xapi_settings.py).
|
|
`password=None` (champ laissé vide côté formulaire, voir
|
|
routes/publish/xapi_settings.py) laisse le mot de passe déjà
|
|
enregistré INCHANGÉ — jamais écrasé par une chaîne vide, pour ne pas
|
|
obliger à le retaper à chaque modification de l'URL/du login, et pour
|
|
que la route GET puisse ne jamais renvoyer sa valeur au navigateur
|
|
(juste un booléen "déjà configuré")."""
|
|
conn = connect(slug)
|
|
conn.execute(
|
|
"INSERT OR REPLACE INTO _meta (key, value) VALUES ('xapi_lrs_endpoint', ?)", (endpoint or "",)
|
|
)
|
|
conn.execute(
|
|
"INSERT OR REPLACE INTO _meta (key, value) VALUES ('xapi_lrs_login', ?)", (login or "",)
|
|
)
|
|
if password is not None:
|
|
conn.execute(
|
|
"INSERT OR REPLACE INTO _meta (key, value) VALUES ('xapi_lrs_password', ?)", (password,)
|
|
)
|
|
conn.commit()
|
|
conn.close()
|