🔤 refactor(mcd_mocodo.py): replace French accentuated characters with non-accentuated ones for better compatibility

🔧 fix(mcd_mocodo.py): rename 'fiche_activite' to 'fiche_pedagogique' and update its attributes for better clarity
🔧 fix(mcd_mocodo.py): update 'activite' attributes to include 'consigne' and 'duree'
🔧 fix(mcd_mocodo.py): update 'historique_activite' attributes to include 'note_difficulte', 'note_plaisir', 'note_concentration', 'note_duree'
🔧 fix(mcd_mocodo.py): add 'date_debloquement' attribute to 'debloquer' relation
🔧 fix(mcd_mocodo.py): update 'test_de_positionnement' and 'historique_test' attributes to include more detailed information
🔧 fix(mcd_mocodo.py): add 'historique_test_medical' entity with detailed attributes
🔧 fix(mcd_mocodo.py): add 'posseder3' relation to link 'historique_test_medical' with 'apprenant'
🔧 fix(mcd_mocodo.py): rename 'entités' to 'entites' for consistency with non-accentuated naming
This commit is contained in:
Djalim Simaila 2024-04-10 16:28:57 +02:00 committed by Djalim
parent 604d0b305d
commit 07a86e94dc
3 changed files with 878 additions and 835 deletions

View File

@ -1,110 +1,113 @@
"""
Domaines de l'application exprimés en MCD mocodo
Domaines de l'application exprimes en MCD mocodo
"""
apprenant = "apprenant:id_apprenant,nom,prenom,date_de_naissance,classe,reponses_questionnaire\n"
compte = "compte:login,email,password,état,date_de_derniere_co,nom,prenom,mobile,date_de_création,moyen_paiement,est_connecté\n"
apprenant = "apprenant:id_apprenant [TEXT],nom [TEXT],prenom [TEXT],date_de_naissance [DATE],classe [TEXT],est_actif [BOOL],peut_faire_test [BOOL],reponses_questionnaire [TODO]\n"
compte = "compte:login [TEXT],email [TEXT],password [TEXT],etat [TEXT],date_de_derniere_co [DATE],nom [TEXT],prenom [TEXT],mobile [NUMBER],date_de_creation [DATE],moyen_paiement [TODO],est_connecte [BOOL]\n"
auth = f"""
{compte}
{apprenant}
licence:clé,date_utilisation
licence_medicale:clé_medicale,date_utilisation,
promotion:code, date_de_création,durée_reduction,reduction,conditions
abonnement:nom_abonnement,prix,date_de_début,date_de_fin
droit:id_droit,niveau_d_access,nb_profil_crée,nb_user_invite,peut_modifier_profil,peut_supprimer_profil, peut_faire_activité, peut_faire_test, peut_consulter_hist_activité, peut_consulter_hist_test
questionnaire: id_questionnaire,forme_rappel, disponibilité,reponses_questionnaire
probleme_signalé:id_prob,version de l'application,support,date du signalement,commentaire
question_posée:id_quest,question
anonyme:id,email
licence:cle [TEXT],date_utilisation [DATE]
licence_medicale:cle_medicale [TEXT],date_utilisation [DATE],
promotion:code [TEXT],date_de_creation [DATE],duree_reduction [NUMBER],reduction [NUMBER],conditions [TEXT]
abonnement:nom_abonnement [TEXT],prix [NUMBER],
droit:id_droit [TEXT],nb_profil_cree [NUMBER],nb_user_invite [NUMBER],peut_modifier_profil [BOOL],peut_supprimer_profil [BOOL], peut_faire_activite [BOOL], peut_faire_test [BOOL], peut_consulter_hist_activite [BOOL], peut_consulter_hist_test [BOOL]
questionnaire: id_questionnaire [TEXT],forme_rappel [TEXT], disponibilite [TODO],reponses_questionnaire [TODO]
probleme_signale:id_prob [TEXT],version_de_l_application [TEXT],support [TEXT],date du_signalement [DATE],commentaire [TODO]
question_posee:id_quest [TEXT],question [TEXT]
anonyme:id [TEXT],email [TEXT]
posséder2,01 licence_medicale,0N apprenant,0N droit
inviter,0N compte,0N compte,0N apprenant,0N droit,0N licence: date invitation,
utiliser,01 compte,0N licence : date_utilisation
posseder2,01 licence_medicale,0N apprenant,0N droit
inviter,0N compte,0N compte,0N apprenant,0N droit,0N licence: date_invitation [DATE],
utiliser,01 compte,0N licence : date_utilisation [DATE]
repondre, 01 compte, 0N questionnaire
créer, 0N compte,0N apprenant : date_creation
acheter, 0N compte, 0N promotion, 0N licence, 0N abonnement : date d'achat
creer, 0N compte,0N apprenant : date_creation [DATE]
acheter, 0N compte, 0N promotion, 0N licence, 0N abonnement : date_d_achat [DATE], date_de_fin [DATE]
assigner, 11 abonnement, 0N droit
poser, 11 question_posée, 0N anonyme
poser1, 11 question_posée, 0N compte
signaler, 11 probleme_signalé, 0N anonyme
signaler1, 11 probleme_signalé, 0N compte
poser, 11 question_posee, 0N anonyme
poser1, 11 question_posee, 0N compte
signaler, 11 probleme_signale, 0N anonyme
signaler1, 11 probleme_signale, 0N compte
"""
fiche_activite = "fiche_activité:id_fiche,comp_travaillé,pourquoi_travailler_comp,variantes\n"
activite = "activité: id_activité, caracteristiques ia\n"
fiche_pedagogique = "fiche_pedagogique:id_fiche,contenu\n"
activite = "activite: id_activite, consigne, durée, caracteristiques ia\n"
activites = f"""
{apprenant}
{compte}
{activite}
{fiche_activite}
activité_ajoutee: titre, caracteristiques ia
historique_activité: id, durée, date de réalisation, note difficulté,note plaisir,note concentration, note durée, activité proposée par algo
réaliser, 0N compte, 0N activité, 11 historique_activite, 0N apprenant : points accordés
ajouter, 0N compte,0N activité_ajoutee, 11 historique_activité , 0N apprenant
posséser, 11 historique_activité, 0N apprenant
decrire, 0N fiche_activite, 11 activité
{fiche_pedagogique}
historique_activite: id [TEXT], duree [NUMBER], date_de_realisation [DATE], note_difficulte [NUMBER],note_plaisir [NUMBER],note_concentration [NUMBER], note_duree [NUMBER], activite_proposee_par_algo [BOOL]
realiser, 0N compte, 0N activite, 11 historique_activite, 0N apprenant : points_accordes [NUMBER]
debloquer3, 0N activite, 0N apprenant : date_debloquement [DATE]
posseder, 11 historique_activite, 0N apprenant
decrire, 0N fiche_pedagogique, 11 activite
"""
recompenses = f"""
{apprenant}
{compte}
palier:id_palier,nombre de points
defi:id_defi,nom,objectif,date limite
badge: id_badge,nom,description,image
palier:id_palier [TEXT],nombre_de_points [TEXT]
defi:id_defi [TEXT],nom [TEXT],objectif [TEXT],date_limite [DATE]
badge: id_badge [NUMBER],nom [TEXT],description [TEXT],image [BLOB]
{activite}
atteindre, 0N apprenant, 0N palier
réaliser, 0N compte, 0N activité, 0N apprenant : points accordés
réaliser3, 0N apprenant, 0N defi
realiser, 0N compte, 0N activite, 0N apprenant : points_accordes
realiser3, 0N apprenant, 0N defi
debloquer, 0N defi, 11 badge
debloquer1, 0N palier, 11 badge
"""
#la relation réaliser est dupliquée entre des deux domaines, je garde un version sans pour la concatenation finale
#la relation realiser est dupliquee entre des deux domaines, je garde un version sans pour la concatenation finale
recompenses_nr = f"""
{apprenant}
{compte}
palier:id_palier,nombre de points
defi:id_defi,nom,objectif,date limite
badge: id_badge,nom,description,image
palier:id_palier [TEXT],nombre_de_points [TEXT]
defi:id_defi [TEXT],nom [TEXT],objectif [TEXT],date_limite [DATE]
badge: id_badge [NUMBER],nom [TEXT],description [TEXT],image [BLOB]
{activite}
atteindre, 0N apprenant, 0N palier
réaliser3, 0N apprenant, 0N defi
realiser3, 0N apprenant, 0N defi
debloquer, 0N defi, 11 badge
debloquer1, 0N palier, 11 badge
"""
ressources = f"""
mot_clé: mot
Ressource:id_ress,titre,description,date_de_publication,type,niveau_d_access
vidéo:id_video,lien_vers_site_externe
article:id_article,lien_vers_site_externe
{fiche_activite}
mot_cle: mot [TEXT]
Ressource:id_ress [TEXT],titre [TEXT],description [TEXT],date_de_publication [DATE],type [TEXT]
video:id_video [TEXT],lien_vers_site_externe [TEXT]
article:id_article [TEXT],lien_vers_site_externe [TEXT]
{fiche_pedagogique}
contenir,0N mot_clé,0N Ressource
etre1, 0N Ressource, 11 vidéo
contenir,0N mot_cle,0N Ressource
etre1, 0N Ressource, 11 video
etre2, 0N Ressource, 11 article
etre3, 0N Ressource, 11 fiche_activité
etre3, 0N Ressource, 11 fiche_pédagogique
"""
test =f"""
test_de_positionnement: id_testpos, consigne, caracteristiques ia
historique_test: id_entree, durée, score, temps de réaction moyen, date de réalisation
test_de_positionnement: id_testpos [TEXT], consigne [TEXT], caracteristiques_ia [TEST]
historique_test_pos: id_entree [TEST], duree [NUMBER], score [NUMBER], temps_de_reaction_moyen [NUMBER], date_de_realisation [DATE], font_utilisée [TEXT]
historique_test_medical: id_entree_medical [TEXT], date_realisation [DATE], Deficit_phonologique [BOOL], Deficit_lexical [BOOL], Deficit_articulatoire [BOOL], Deficit_ortho_optique [BOOL], Deficit_visio_attentionnel [TEXT], Deficit_visio_spacial [BOOL], Deficit_visio motrice [BOOL], Deficit_attention/concentration [BOOL]
{apprenant}
{compte}
réaliser2, 0N compte,0N test_de_positionnement, 11 historique test, 0N apprenant
posséser1, 11 historique_test, 0N apprenant
realiser2, 0N compte,0N test_de_positionnement, 11 historique_test_pos, 0N apprenant
posseder1, 11 historique_test_pos, 0N apprenant
posseder3, 11 historique_test_medical, 0N apprenant
"""
entités = [
entites = [
apprenant,
compte,
fiche_activite,
fiche_pedagogique,
activite,
]
@ -116,16 +119,16 @@ domaines = [
test,
]
def generer_texte_complet(domaines, entités):
def generer_texte_complet(domaines, entites):
texte_complet = ""
for domaine in domaines:
for entite in entités:
for entite in entites:
if entite in domaine:
domaine = domaine.replace(entite, "")
texte_complet += domaine
for entite in entités:
for entite in entites:
texte_complet += entite
return texte_complet
texte_complet = generer_texte_complet(domaines, entités)
texte_complet = generer_texte_complet(domaines, entites)

File diff suppressed because it is too large Load Diff

View File

@ -33,7 +33,9 @@ def generer_mcd(domaine:str,nom:str,ga:bool=False,seed:float=1):
"""
with open(f"{nom}.mcd", "w") as f:
f.write(domaine)
result = mocodo(f'-i {nom} --colors ocean -t arrange{":algo=ga" if ga else ""} --seed {seed} --detect_overlaps')
#result = mocodo(f'-i {nom} --colors ocean -t arrange{":algo=ga" if ga else ""} --seed {seed} --detect_overlaps')
#print(result)
result = mocodo(f'-i {nom} -t mld --colors mondrian -t diagram')
print(result)
if SUPPRIMER_FICHERTEXTE : pathlib.Path(f"{nom}.mcd").unlink(missing_ok=True)
if SUPPRIMER_GEOJSON : pathlib.Path(f"{nom}_geo.json").unlink(missing_ok=True)