"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"generer_mcd(mcd.recompenses,seed=3)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"def generer_mmd(domaine:str):\n",
" \"\"\"\n",
" Genère un graphe Mermaid Crowfoot notation à partir d'un domaine exprimé en MCD mocodo.\n",
" \n",
" :param domaine: Le domaine exprimé en MCD mocodo\n",
" :type domaine: str\n",
" \"\"\"\n",
"\n",
" return mocodo(f\"\"\"\n",
" %mocodo --colors ocean -t crow:mmd\n",
" {domaine}\n",
" \"\"\")\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/markdown": [
"\n",
"\n",
"
\n",
"\n",
"\n",
"mocodo_notebook/sandbox_erd_crow.mmd\n",
"\n",
"\n",
"\n"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"text/markdown": [
"```mmd\n",
"erDiagram\n",
" licence {\n",
" TYPE cle PK\n",
" TYPE date_utilisation\n",
" }\n",
" promotion {\n",
" TYPE code PK\n",
" TYPE date_de_creation\n",
" TYPE duree_reduction\n",
" TYPE reduction\n",
" TYPE conditions\n",
" }\n",
" abonnement {\n",
" TYPE nom_abonnement PK\n",
" TYPE prix\n",
" TYPE date_de_debut\n",
" TYPE date_de_fin\n",
" }\n",
" droit {\n",
" TYPE id_droit PK\n",
" TYPE niveau_d_access\n",
" TYPE nb_profil_cree\n",
" TYPE nb_user_invite\n",
" TYPE peut_modifier_profil\n",
" TYPE peut_supprimer_profil\n",
" TYPE peut_faire_activite\n",
" TYPE peut_faire_test\n",
" TYPE peut_consulter_hist_activite\n",
" TYPE peut_consulter_hist_test\n",
" }\n",
" questionnaire {\n",
" TYPE id_questionnaire PK\n",
" TYPE forme_rappel\n",
" TYPE disponibilite\n",
" TYPE reponses_questionnaire\n",
" }\n",
" probleme_signale {\n",
" TYPE id_prob PK\n",
" TYPE version_de_l_application\n",
" TYPE support\n",
" TYPE date_du_signalement\n",
" TYPE commentaire\n",
" }\n",
" question_posee {\n",
" TYPE id_quest PK\n",
" TYPE question\n",
" }\n",
" anonyme {\n",
" TYPE id PK\n",
" TYPE email\n",
" }\n",
" inviter {\n",
" TYPE date_invitation PK\n",
" TYPE \n",
" }\n",
" acheter {\n",
" TYPE date_d_achat PK\n",
" }\n",
" activite_ajoutee {\n",
" TYPE titre PK\n",
" TYPE caracteristiques_ia\n",
" }\n",
" historique_activite {\n",
" TYPE id PK\n",
" TYPE duree\n",
" TYPE date_de_realisation\n",
" TYPE note_difficulte\n",
" TYPE note_plaisir\n",
" TYPE note_concentration\n",
" TYPE note_duree\n",
" TYPE activite_proposee_par_algo\n",
" TYPE points_accordes\n",
" }\n",
" palier {\n",
" TYPE id_palier PK\n",
" TYPE nombre_de_points\n",
" }\n",
" defi {\n",
" TYPE id_defi PK\n",
" TYPE nom\n",
" TYPE objectif\n",
" TYPE date_limite\n",
" }\n",
" badge {\n",
" TYPE id_badge PK\n",
" TYPE nom\n",
" TYPE description\n",
" TYPE image\n",
" }\n",
" mot_cle {\n",
" TYPE mot PK\n",
" }\n",
" Ressource {\n",
" TYPE id_ress PK\n",
" TYPE titre\n",
" TYPE description\n",
" TYPE date_de_publication\n",
" TYPE type\n",
" TYPE niveau_d_access\n",
" }\n",
" video {\n",
" TYPE id_video PK\n",
" TYPE lien_vers_site_externe\n",
" }\n",
" article {\n",
" TYPE id_article PK\n",
" TYPE lien_vers_site_externe\n",
" }\n",
" test_de_positionnement {\n",
" TYPE id_testpos PK\n",
" TYPE consigne\n",
" TYPE caracteristiques_ia\n",
" }\n",
" historique_test {\n",
" TYPE id_entree PK\n",
" TYPE duree\n",
" TYPE score\n",
" TYPE temps_de_reaction_moyen\n",
" TYPE date_de_realisation\n",
" }\n",
" apprenant {\n",
" TYPE id_apprenant PK\n",
" TYPE nom\n",
" TYPE prenom\n",
" TYPE date_de_naissance\n",
" TYPE classe\n",
" TYPE reponses_questionnaire\n",
" }\n",
" compte {\n",
" TYPE login PK\n",
" TYPE email\n",
" TYPE password\n",
" TYPE etat\n",
" TYPE date_de_derniere_co\n",
" TYPE nom\n",
" TYPE prenom\n",
" TYPE mobile\n",
" TYPE date_de_creation\n",
" TYPE moyen_paiement\n",
" TYPE est_connecte\n",
" }\n",
" fiche_activite {\n",
" TYPE id_fiche PK\n",
" TYPE comp_travaille\n",
" TYPE pourquoi_travailler_comp\n",
" TYPE variantes\n",
" }\n",
" activite {\n",
" TYPE id_activite PK\n",
" TYPE caracteristiques_ia\n",
" }\n",
" inviter }o..|| compte: DF\n",
" inviter }o..|| compte: DF\n",
" inviter }o..|| apprenant: DF\n",
" inviter }o..|| droit: DF\n",
" inviter }o..|| licence: DF\n",
" compte }o--o| licence: utiliser\n",
" compte }o--o| questionnaire: repondre\n",
" compte }o--o{ apprenant: creer\n",
" acheter }o..|| compte: DF\n",
" acheter }o..|| promotion: DF\n",
" acheter }o..|| licence: DF\n",
" acheter }o..|| abonnement: DF\n",
" abonnement }o--|| droit: assigner\n",
" question_posee }o--|| anonyme: poser\n",
" question_posee }o--|| compte: poser\n",
" probleme_signale }o--|| anonyme: signaler\n",
" probleme_signale }o--|| compte: signaler\n",
" historique_activite }o--|| compte: realiser\n",
" historique_activite }o--|| activite: realiser\n",
" historique_activite }o--|| apprenant: realiser\n",
" historique_activite }o--|| compte: ajouter\n",
" historique_activite }o--|| activite_ajoutee: ajouter\n",
" historique_activite }o--|| apprenant: ajouter\n",
" historique_activite }o--|| apprenant: posseser\n",
" fiche_activite ||--o{ activite: decrire\n",
" apprenant }o--o{ palier: atteindre\n",
" apprenant }o--o{ defi: realiser\n",
" defi ||--o{ badge: debloquer\n",
" palier ||--o{ badge: debloquer\n",
" mot_cle }o--o{ Ressource: contenir\n",
" Ressource ||--o{ video: etre\n",
" Ressource ||--o{ article: etre\n",
" Ressource ||--o{ fiche_activite: etre\n",
" historique_test }o--|| compte: realiser2\n",
" historique_test }o--|| test_de_positionnement: realiser2\n",
" historique_test }o--|| apprenant: realiser2\n",
" historique_test }o--|| apprenant: posseser\n",
"\n",
"```"
],
"text/plain": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"generer_mmd(mcd.texte_complet)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"def generer_types(domaine:str):\n",
" \"\"\"\n",
" Infère les types des attribut d'un domaine exprimé en MCD mocodo.\n",
" \n",
" :param domaine: Le domaine exprimé en MCD mocodo\n",
" :type domaine: str\n",
" \"\"\"\n",
" return mocodo(f\"\"\"\n",
" %mocodo -t create:types=TODO --select rw\n",
" {domaine}\n",
" \"\"\")\n",
"\n",
"def generer_mld(domaine:str):\n",
" \"\"\"\n",
" Genère un MLD textuel à partir d'un domaine exprimé en MCD mocodo.\n",
" \n",
" :param domaine: Le domaine exprimé en MCD mocodo\n",
" :type domaine: str\n",
" \"\"\"\n",
" return mocodo(f\"\"\"\n",
" %mocodo -t mld\n",
" {domaine}\n",
" \"\"\")"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}