diff --git a/docs/administration/internships.md b/docs/administration/internships.md
deleted file mode 100644
index 994c3f168a91c06b3d8c7f0de7edc760642eb101..0000000000000000000000000000000000000000
--- a/docs/administration/internships.md
+++ /dev/null
@@ -1 +0,0 @@
-# Interships
diff --git a/docs/communication/alumni.md b/docs/communication/alumni.md
deleted file mode 100644
index 457bf8a22c943c50c7f73ce07717ec2720f5c890..0000000000000000000000000000000000000000
--- a/docs/communication/alumni.md
+++ /dev/null
@@ -1,19 +0,0 @@
-# Alumni
-
-
-## education/AcademicYear
-
-- university:references
-- program:references
-- year:integer
-- from:date
-- to:date
-
-## education/Cohort
-
-- name:string
-- university:references
-- program:references
-- academic_year:references
-
-https://english.stackexchange.com/questions/41673/what-is-the-group-name-for-students-who-entered-left-university-in-the-same
diff --git a/docs/communication/blocks.md b/docs/communication/blocks.md
deleted file mode 100644
index d7251e6e01f7e53322b87b0e3a1e4b49178d2222..0000000000000000000000000000000000000000
--- a/docs/communication/blocks.md
+++ /dev/null
@@ -1,97 +0,0 @@
-# Blocks
-
-Blocs de contenus ajoutés à un objet (page, post, program...),
-avec des templates (organigramme, partenaires...).
-
-Il faut lister les dépendances des blocs et les ajouter à l'objet about.
-
-## Dev
-
-### Model
-
-```
-communication/website/Block
-- university:references
-- about:references (polymorphic)
-- template:integer (enum)
-- position:integer
-- data:jsonb
-```
-
-Pour commencer, les valeurs de l'enum seront :
-- 100, organization_chart
-- 200, partners
-
-### Partial about
-Un partial que l'on peut ajouter à un show d'objet, avec :
-- la liste des blocs utilisés (avec boutons show et edit)
-- la possibilité de les ordonner (position)
-- un bouton pour ajouter un bloc
-
-```
-views/admin/communication/blocks/_list.html.erb
-```
-
-### Show
-Le show du bloc utilise le partial de son template
-```
-views/admin/communication/blocks/templates/partners/_show.html.erb
-```
-
-### Edit
-L'edit du bloc utilise le partial de son template
-```
-views/admin/communication/blocks/templates/partners/_edit.html.erb
-```
-
-### Concern
-Tous les objets ayant des blocs utilisent le concern `WithBlocks`, qui ajoute la méthode `blocks` (la liste des blocs, dans l'ordre).
-
-### Export statique
-Les blocs sont exportés dans le frontmatter grâce au partial
-```
-views/admin/communication/blocks/_static.html.erb
-```
-qui donne ce type de résultat
-```
-blocks:
-  - template: partners
-    data:
-      - name: Partner 1
-        url: https://partner1.com
-        logo: "e09f3794-44e5-4b51-be02-0e384616e791"
-```
-Les générateurs de chaque type suivent l'organisation :
-```
-views/admin/communication/blocks/templates/partners/_static.html.erb
-```
-Attention, il faut 6 espaces pour respecter l'indentation du front-matter :
-```
-      - name: Partner 1
-        url: https://partner1.com
-        logo: "e09f3794-44e5-4b51-be02-0e384616e791"
-```
-
-### Dépendances
-
-Il faut créer une classe pour chaque template, avec le nom au singulier (partners devient partner.rb, et la class Partner) :
-
-```
-models/communication/block/partner.rb
-```
-avec une structure de type :
-```
-class Communication::Block::Partner < Communication::Block::Template
-  def git_dependencies
-    ...
-  end
-end
-```
-
-## Pour créer un bloc
-
-1. Déclarer le template dans l'enum du modèle block
-2. Créer l'edit, le show et le static dans la vue du template
-3. Créer la classe du template pour gérer les dépendances
-4. Créer la vignette dans les images
-5. Ecrire les locales fr et en
diff --git a/docs/communication/extranets.md b/docs/communication/extranets.md
deleted file mode 100644
index a3c46362a75b6821ddc360a0f21f340d81cf7b9c..0000000000000000000000000000000000000000
--- a/docs/communication/extranets.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# Extranets
-
-En plus des sites statiques, il est possible d'utiliser Osuny pour gérer des extranets, avec des utilisateurs authentifiés.
-
-Un extranet permet d'utiliser les fonctions suivantes :
-- alumni
-- stages
-- trombinoscopes
-- news privées ?
-- événements privés ?
diff --git a/docs/communication/models.md b/docs/communication/models.md
deleted file mode 100644
index 7493cdb6a8717b259901acee2a0956419658d5ac..0000000000000000000000000000000000000000
--- a/docs/communication/models.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Communication
-
-## Models
-
-### communication/website/Event
-
-- university:references
-- communication_website:references
-- communication_website_event_kind:references
-- name:string
-- description:text
-- text:html
-- published:boolean
-- published_at:datetime
-
-### communication/website/event/Kind
-
-- university:references
-- communication_website:references
-- name:string
-- position:integer
diff --git a/docs/communication/websites/customs.md b/docs/communication/websites/customs.md
deleted file mode 100644
index 6dad14a7c768d87fbc433d1ebe871fd088aec5da..0000000000000000000000000000000000000000
--- a/docs/communication/websites/customs.md
+++ /dev/null
@@ -1,52 +0,0 @@
-# Customs
-
-Au-delà des pages et des actualités, les sites ont souvent besoin d'objets spécifiques, au cas par cas.
-Le site https://www.osuny.org/ présente des fonctionnalités, avec un statut.
-Le site https://cyberneticproject.eu/ présente des fiches techniques, avec des synonymes, des téléchargements, un récapitulatif, des références bibliographiques...
-
-
-Afin de permettre cette souplesse, nous utilisons des types personnalisés (custom types).
-Le type définit une nouvelle sorte d'objets (ex: feature, technical_sheet...).
-Chaque type a des propriétés (title, description, summary, status, references...), qui génèrent un formulaire à la volée.
-Le type s'ajoute au menu du site, et permet de créer des éléments.
-Les éléments s'exportent en statique en utilisant la structure définie par les propriétés.
-
-## Modèles
-
-communication/website/custom/Type
-- university:references
-- website:references
-- name:string
-- identifier:string
-- position:integer
-- order:boolean
-- tree:boolean
-- date:boolean
-
-
-Si order est true, les éléments de ce type peuvent être classés par position (js sortable).
-Si tree est true, les éléments peuvent être organisés en arbre, avec des parents et des enfants.
-Si date est true, les élément peuvent être publiés à une date donnée.
-
-
-communication/website/custom/type/Property
-- university:references
-- website:references
-- type:references
-- name:string
-- identifier:string
-- kind:integer (enum)
-- position
-
-
-communication/website/custom/Element
-- university:references
-- website:references
-- type:references
-- name:string
-- slug:string
-- published:boolean
-- published_at:datetime
-- parent:references
-- position:integer
-- data:jsonb
diff --git a/docs/communication/websites/export.md b/docs/communication/websites/export.md
deleted file mode 100644
index efc0e03e90c7229394896b52ee73b0b87cbf1d6f..0000000000000000000000000000000000000000
--- a/docs/communication/websites/export.md
+++ /dev/null
@@ -1,146 +0,0 @@
-# Export Hugo
-
-## Contexte
-
-Chaque website peut avoir un repository git.
-Tous les objets de ce website doivent être synchronisés sur le repository.
-Les publications doivent se font en asynchrone parce qu'elles peuvent être longues.
-
-
-Certains objets peuvent appartenir à plusieurs websites, donc plusieurs repositories, comme par exemple les programs.
-Certains objets ont des dépendances, par exemple les pages enfants, les auteurs, les catégories ou les médias.
-
-
-Les fichiers renommés doivent être déplacés sur git.
-Les fichiers supprimés ou dépubliés doivent être supprimés sur git.
-Il faut veiller à limiter le nombre de commits et à éviter les commits vides.
-
-## Setup
-
-### GitHub
-
-- Créer un repository à partir du template suivant : https://github.com/noesya/osuny-hugo-template
-- Une fois le repository créé, générer un personal access token ici : https://github.com/settings/tokens
-  - Permission à accorder : `repo`
-  - Durée : pour une bonne sécurité, il n'est pas recommandé de créer un token permanent, notez simplement qu'il faut le régénérer régulièrement.
-- Copier le personnal access token
-- Dans le back-office d'Osuny, créer ou modifier un website et renseignez les 2 champs relatifs à Git :
-  - Repository : `username/repo`
-  - Access token : `ghp_xxxxxxxxxxxxxxxxxxxx`
-
-### Déploiement (Netlify)
-
-- Créer un site sur Netlify lié au repository du site
-- Dans "Site settings", "Build & deploy", "Environment", "Environment variables", ajouter :
-  - `HUGO_VERSION` avec pour valeur la dernière version (ex: `0.92.1`)
-
-La récupération du thème se fait via SSH par défaut. Pour que le déploiement fonctionne correctement, vous pouvez :
-- Changer le remote du submodule pour qu'il utilise HTTPS.
-- Garder le SSH, cependant il faut :
-  - Générer et copier la deploy key du site sur Netlify (dans "Site settings", "Build & deploy" puis "Deploy key").
-  - L'ajouter dans la section "Deploy keys" du repository contenant le thème (ici : https://github.com/noesya/osuny-hugo-theme/settings/keys).
-
-## Architecture
-
-Les git::providers permettent de dialoguer avec les services comme Github et Gitlab.
-Le git::repository sert de façade et abstrait le provider.
-
-
-Chaque objet publiable utilise un objet active record Communication::Website::GitFile qui garde la trace du dernier chemin et du SHA.
-
-## Flux
-
-### Version 1
-
-Lors de l'enregistrement d'un objet, il faut, pour chaque website :
-- créer éventuellement le git_file (1 pour chaque website)
-- envoyer le git_file (add_to_batch)
-- modifier ses dépendances, qui créent leur git_files pour chaque repository
-- envoyer les git_files des dépendances aux repositories respectifs (add_to_batch)
-- pour chaque website, si au moins un fichier a été ajouté :
-    - déclencher une modification (touch), qui génère une action asynchrone :
-        - pour chaque file :
-            - générer le fichier statique
-            - calculer le SHA
-            - comparer au SHA stocké
-            - needs_sync si SHA différent ou path différent
-        - si au moins un needs_sync :
-            - créer un commit pour tout ça
-            - push
-            - mettre à jour les previous_path et les SHA des git_files
-
-Ce flux cause un problème majeur : tout ce qui est analysé disparaît en asynchrone.
-
-### Version 2
-
-Après l'enregistrement d'un objet, il faut lancer une tâche asynchrone de synchronisation.
-Cette tâche est lancée par les controllers, et intégrée dans le partial `WithGit`.
-```
-def create
-  if @page.save_and_sync
-    ...
-  end
-end
-
-def update
-  if @page.update_and_sync(page_params)
-    ...
-  end
-end
-
-def destroy
-  @page.destroy_and_sync
-end
-```
-
-
-Pour les reorder, chaque objet doit avoir ses siblings en dépendance, donc il suffit de synchroniser un objet déplacé pour qu'il gère l'ensemble :
-```
-def reorder
-  ...
-  pages.first.sync_with_git
-end
-```
-
-## Code
-
-### Website::WithRepository
-
-Le website a un trait WithRepository qui gère son rapport avec le repository Git, quel que soit le provider (Github, Gitlab...).
-
-### Objets exportables vers Git
-
-Tous les objets qui doivent être exportés vers Git :
-- doivent utiliser le concern `WithGit`, qui gère l'export vers les repositories des objets et de leurs dépendances
-- peuvent intégrer le concern `WithMedia` s'il utilise des médias (`featured_image` et/ou images dans des rich texts)
-- peuvent présenter une méthode `identifiers` qui liste les identifiants des git_files à générer, pour les objets qui créent plusieurs fichiers (le fichier par défaut s'appelle `static`)
-- peuvent présenter une méthode `git_dependencies_static` qui liste les dépendances de l'identifiant par défaut `static`
-- peuvent présenter une méthode `git_destroy_dependencies_static` qui liste les dépendances à supprimer en cascade de l'identifiant par défaut `static`
-- peuvent présenter des méthodes `git_dependencies_author` et/ou `git_destroy_dependencies_author` qui liste les dépendances de l'identifiant `author`
-
-### Modèle Communication::Website::GitFile
-
-La responsabilité de la synchronisation repose sur Communication::Website::GitFile, notamment :
-- l'information est-elle intègre, synchronisée avec le repo ? (previous_sha et previous_path cohérents avec le repo git)
-- le fichier doit-il être créé ? (pas à supprimer et (non intègre, ou pas de previous_sha/previous_path))
-- le fichier doit-il être mis à jour ? (pas à supprimer et (non intègre, ou previous_sha/previous_path différent du sha/path))
-- le fichier doit-il être supprimé ? (path nil ou marquage à détruire)
-
-
-Pour cela, le git_file dispose des propriétés suivantes :
-- previous_path (le chemin à la dernière sauvegarde, nil si pas encore créé, ou détruit)
-- previous_sha (le hash de la précédente version, utile pour savoir si le fichier a changé)
-- identifier (l'identifiant du fichier à créer, `static` par défaut, pour les objets créant plusieurs fichiers)
-
-
-Pour informer sur les actions à mener, il dispose des méthodes interrogatives suivantes :
-- synchronized_with_git? (pour évaluer l'intégrité vs le repository)
-- should_create? (pour savoir s'il faut créer ou pas)
-- should_update? (pour savoir s'il faut régénérer ou pas)
-- should_destroy? (pour savoir s'il faut supprimer)
-
-
-Pour générer les fichiers, il dispose des méthodes :
-- to_s (pour générer le fichier statique à jour)
-- sha (pour calculer le hash du fichier à jour)
-- path (pour générer le chemin à jour)
diff --git a/docs/communication/websites/import.md b/docs/communication/websites/import.md
deleted file mode 100644
index 50f270657cb2098bc2908245fac3e6b1c67a11f2..0000000000000000000000000000000000000000
--- a/docs/communication/websites/import.md
+++ /dev/null
@@ -1,94 +0,0 @@
-# Import WordPress
-
-## Contexte
-
-L'objectif est de fluidifier la transition depuis un site déjà en place, notamment WordPress. Deux approches sont possibles : interne, avec un accès BDD, et externe, en passant par le site lui-même. Nous privilégierons l'approche externe dans un premier temps, pour permettre l'approche avant-vente (présenter un site pré-migré).
-
-## Problématiques
-
-1. Détection des pages
-2. Extraction des contenus bruts
-3. Distingo entre pages et posts, et autres types d'objets
-4. Identification des menus
-
-## Approche externe
-
-Plusieurs possibilités :
-- le crawling
-- le sitemap
-- le flux RSS
-- l'api
-
-## Approche interne
-
-Plugin, connexion à la BDD, export JSON ou connexion API.
-
-## Développement
-
-Communication::Website::Imported::Website
-- university:references
-- website:references (has_one Communication::Website)
-- status:integer (enum)
-
-Communication::Website::Imported::Page
-- university:references
-- website:references (has_one Communication::Website::Imported::Website)
-- page:references (has_one Communication::Website::Page)
-- status:integer (enum)
-
-Etapes :
-1. Création du site, avec son URL
-2. Lancement de l'import (création de Communication::Website::Imported::Website)
-3. Import des sitemaps (création de Communication::Website::Imported::Page)
-4. Import du contenu brut des pages importées
-5. Analyse du contenu des pages importées et création / mise à jour des pages
-
-## Import depuis WordPress
-
-### Media
-1. On importe les media depuis l'API
-2. On crée des objets en DB (Communication::Website::Imported::Medium)
-
-### Pages
-1. On importe les pages depuis l'API
-2. On crée des objets en DB (Communication::Website::Imported::Page)
-3. Les objets importés créent ou mettent à jour les objets réels (Communication::Website::Page)
-    3.1 sans écraser de modifs locales
-    3.2 uniquement si l'import a bougé
-    3.3 Le contenu de l'html est filtré
-        3.3.1 enlever les balises problématiques
-        3.3.2 supprimer les classes
-        3.3.3 supprimer les ids
-        3.3.4 décaler les titres si h1
-    3.4 la featured image est transformée en attachment
-    3.5 si pas de featured image, la première image est enlevée du texte et devient featured
-    3.6 les medias dans le texte html sont transformés en action text attachments
-        3.6.1 lister les files dans le domaine
-        3.6.2 identifier le media master correspondant (via data:jsonb)
-        3.6.3 s'il n'existe pas, le créer (le cas se produit il ?)
-        3.6.4 crée l'attachment
-        3.6.5 on remplace le code du media par l'action text attachement
-
-### Posts
-Idem pages
-
-## Exemples
-
-### Condé
-
-- https://ecoles-conde.com/sitemap_index.xml
-- https://ecoles-conde.com/wp-json/wp/v2/posts
-- https://ecoles-conde.com/wp-json/wp/v2/pages
-
-### IUT Bordeaux Montaigne
-
-- https://www.iut.u-bordeaux-montaigne.fr/wp-sitemap.xml
-- https://www.iut.u-bordeaux-montaigne.fr/wp-sitemap-posts-post-1.xml
-- https://www.iut.u-bordeaux-montaigne.fr/wp-sitemap-posts-page-1.xml
-- https://www.iut.u-bordeaux-montaigne.fr/wp-json/wp/v2/posts
-- https://www.iut.u-bordeaux-montaigne.fr/wp-json/wp/v2/pages
-
-## Recherches
-
-- https://kinsta.com/fr/blog/api-rest-wordpress/
-- https://getshifter.io/
diff --git a/docs/communication/websites/readme.md b/docs/communication/websites/readme.md
deleted file mode 100644
index 3847269f881807fa55c1105e66bdad61d05249a4..0000000000000000000000000000000000000000
--- a/docs/communication/websites/readme.md
+++ /dev/null
@@ -1,89 +0,0 @@
-# Websites
-
-## websites/Site
-
-Attributes:
-- university:references
-- name:string
-- domain:string
-
-## websites/Post
-
-Attributes:
-- university:references
-- website:references
-- title:string
-- description:text
-- text:text
-- published:boolean
-- published_at:datetime
-
-## websites/Page
-
-Attributes:
-- university:references
-- website:references
-- title:string
-- description:text
-- text:text
-- parent:references
-- published:boolean
-
-## websites/Document
-
-Est-ce vraiment dans ce namespace ? Peut-être un DAM ?
-
-1 document peut concerner :
-- toute l'université (charte numérique)
-- 1 école (règlement intérieur de l'école)
-- 1 campus (règlement intérieur du campus)
-- 1 formation (contrat d'alternance type)
-- 1 session (calendrier pédagogique de l'année en cours)
-
-Attributes:
-- university:references
-- name:string
-- school:references (optional)
-- campus:references (optional)
-- program:references (optional)
-- session:references (optional)
-
-## websites/Menu
-
-Attributes:
-- university:references
-- website:references
-- title:string
-- identifier:string
-
-## websites/menu/Item
-
-Attributes:
-- university:references
-- website:references
-- menu:references
-- title:string
-- parent:references
-- position:integer
-- kind:integer (enum: page, url)
-- about:references (polymorphic)
-
-## Export du menu
-
-/_data/menus.yml
-
-```yaml
-primary:
-    - title: Accueil
-      target: /
-    - title: Formations
-      target: /formations
-      children:
-          - title: DUT
-            target: /formations/dut
-    - title: ENT
-      target: https://ent.u-bordeaux3.fr
-legal:
-    - title: Mentions légales
-      target: /mentions-legales
-```
diff --git a/docs/communication/websites/templates.md b/docs/communication/websites/templates.md
deleted file mode 100644
index 1d03ffb132ec9ce1ee7c0fc6805275f85fdbf162..0000000000000000000000000000000000000000
--- a/docs/communication/websites/templates.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# Templates
-
-## Thème
-
-https://github.com/noesya/osuny-hugo-theme
-
-## Template
-
-https://github.com/noesya/osuny-hugo-template
-
-Pour faire la mise à jour :
-
-```
-git remote add template git@github.com:noesya/osuny-hugo-template.git
-git fetch --all
-git merge template/master --allow-unrelated-histories
-```
-
-## Site d'un journal
-
-https://github.com/osuny-org/clermontauvergne-journal-degrowth
-
-Pour faire la mise à jour :
-
-```
-git remote add template git@github.com:noesya/osuny-hugo-template.git
-git fetch --all
-git merge template/master --allow-unrelated-histories
-```
diff --git a/docs/communication/websites/wysiwyg.md b/docs/communication/websites/wysiwyg.md
deleted file mode 100644
index 43a4073f8ce6b5f9dba18a129d93a3c481119621..0000000000000000000000000000000000000000
--- a/docs/communication/websites/wysiwyg.md
+++ /dev/null
@@ -1,135 +0,0 @@
-# WYSIWYG
-
-## Quels enjeux ?
-
-Permettre l'édition, mais limiter les options graphiques (ni couleurs, ni tailles, ni typos).
-
-Fonctionnalités :
-- intégration d'images dans le corps du texte, en gardant la trace du blob active storage, et en les intégrant dans la liste des dépendances.
-- intégration de vidéos.
-- intégration d'autres formats (Tweets...).
-
-## Solutions techniques
-
-### ActionText
-
-Avantages :
-- active storage intégré
-- Trix intégré
-
-Inconvénients :
-- Pas de modèle (polymorphic)
-
-### Trix
-
-Avantages :
-- intégré à ActionText
-- très limité
-
-Inconvénients :
-- très limité (target blank, 1 seul niveau de titre, pas d'embed, pas de code source)
-- pas extensible
-
-### Summernote
-
-Avantages :
-- vaste
-- extensible
-
-Inconvénients :
-- dépendance jQuery
-- pas intégré à ActionText
-- moyennement robuste quand on le torture
-
-### Page builder custom
-
-Avantages :
-- puissant
-- souple
-
-Inconvénients :
-- compliqué à construire et maintenir
-- compliqué à utiliser
-
-
-## Benchmark
-
-[Refinery](https://www.refinerycms.com/)
-
-
-[Spina](https://spinacms.com/)
-
-
-[Alchemy CMS](https://alchemy-cms.com/)
-
-
-[Locomotive CMS](https://www.locomotivecms.com/)
-
-
-## Méthode
-
-### action-text-attachment
-
-Dans la BDD, on stocke cette balise :
-```
-<action-text-attachment sgid="BAh[...]1df3"
-                        content-type="image/jpeg"
-                        url="http://demo.osuny:3000/rails/active_storage/blobs/redirect/eyJf[...]0f4a1/domenico_bruno_de_lobkowitz_watchingwindows_com_08.jpg" filename="domenico_bruno_de_lobkowitz_watchingwindows_com_08.jpg"
-                        filesize="352931"
-                        width="588"
-                        height="746"
-                        previewable="true"
-                        presentation="gallery">
-</action-text-attachment>
-```
-
-A l'édition, la balise est "remplie" avant affichage, pour avoir une preview.
-A l'enregistrement, la balise est vidée.
-
-Etapes normales
--[x] A l'import d'une image, ajouter l'action-text-attachement autour de l'img
--[ ] A la suppression d'une image dans l'éditeur, supprimer l'action-text-attachement autour de l'img
--[x] A l'enregistrement, déshydrater les action-text-attachements
--[x] A l'édition, réhydrater les action-text-attachements
--[ ] Après l'enregistrement mettre à jour les blobs attachés à l'objet parent (le post, par exemple)
-
-Si un programme a 5 champs Summernote avec 3 images dans chaque champ, cela fait 15 attachments à lier au programme.
-Si on enlève une image d'un champ, il faut mettre à jour la liste pour avoir les 14 bons attachments.
-
-Actions de dev
--[ ] Coder les ajouts aux modèles dans Osuny
--[ ] Coder le JS dans Osuny
--[ ] Une fois que c'est fait, déplacer le Ruby et le JS dans summernote-rails
-
-Migration phase 1
--[x] Ajouter des champs _new
--[x] Au rails app:fix, transformer le markup Trix en markup Summernote (application_record) dans les propriétés _new
-Migration phase 2
--[ ] Supprimer les champs ActionText dans les modèles
--[ ] Supprimer la table d'ActionText
--[ ] Renommer les champs en enlevant _new
-
-### Le pdf
-
-Autoriser dans summernote
-
-### Code HTML cible
-
-```
-<h2>Titre</h2>
-<p>
-  Texte normal<br>
-  <b>Texte en gras</b><br>
-  <i>Texte en italique</i>
-  <action-text-attachment sgid="BAh7CEkiCGdpZAY6BkVUSSJUZ2lkOi8vb3N1bnkvQWN0aXZlU3RvcmFnZTo6QmxvYi9hYWUyNDI5OC1kNDE2LTQ2YWMtYTRlNS02ZjY4ZGU2MjFiZDE_ZXhwaXJlc19pbgY7AFRJIgxwdXJwb3NlBjsAVEkiD2F0dGFjaGFibGUGOwBUSSIPZXhwaXJlc19hdAY7AFQw--7e8ead4d79f455499f1d73e8d53a4b8e81a21df3" content-type="image/jpeg" url="http://demo.osuny:3000/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibW...df8140070f4a1/domenico_bruno_de_lobkowitz_watchingwindows_com_08.jpg?website_id=6d8fb0bb-0445-46f0-8954-0e25143e7a58" filename="domenico_bruno_de_lobkowitz_watchingwindows_com_08.jpg" filesize="352931" width="588" height="746" previewable="true" presentation="gallery">
-    <figure class="attachment attachment--preview attachment--jpg">
-      <picture>
-        <source srcset="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOns...XJpYXRpb24ifX0=--7d11fdd26322fef8959415f46d5e2c6d6763b4c0/domenico_bruno_de_lobkowitz_watchingwindows_com_08.jpg 100w, /rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaE...527eb11f95949a389acb1c/domenico_bruno_de_lobkowitz_watchingwindows_com_08.jpg 200w" type="image/webp">
-        <source srcset="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibW...9fd77765da7c4f647d453b2/domenico_bruno_de_lobkowitz_watchingwindows_com_08.jpg?website_id=6d8fb0bb-0445-46f0-8954-0e25143e7a58 100w, /rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsibW...bb3bc14127bc06ce0d1e32/domenico_bruno_de_lobkowitz_watchingwindows_com_08.jpg?website_id=6d8fb0bb-0445-46f0-8954-0e25143e7a58 200w" type="image/jpeg">
-        <img src="/rails/active_storage/representations/redirect/eyJfcmFpbHMiOnsi...190ffccd8/domenico_bruno_de_lobkowitz_watchingwindows_com_08.jpg?website_id=6d8fb0bb-0445-46f0-8954-0e25143e7a58" loading="lazy" decoding="async" width="800">
-      </picture>
-    </figure>
-  </action-text-attachment>
-  <a href="https://www.u-bordeaux-montaigne.fr/fr/actualites/vie-etudiante/soutenir-les-etudiant-e-s-les-aides-de-l-universite.html">Lien</a>
-</p>
-```
diff --git a/docs/education/qualiopi/guide-lecture-referentiel-qualite.pdf b/docs/education/qualiopi/guide-lecture-referentiel-qualite.pdf
deleted file mode 100644
index c1f804a1460335cc081147c47400352d1dcc1893..0000000000000000000000000000000000000000
Binary files a/docs/education/qualiopi/guide-lecture-referentiel-qualite.pdf and /dev/null differ
diff --git a/docs/education/qualiopi/qualiopi.md b/docs/education/qualiopi/qualiopi.md
deleted file mode 100644
index 1c8f921f4589565b052723abafbafd2c29524f1f..0000000000000000000000000000000000000000
--- a/docs/education/qualiopi/qualiopi.md
+++ /dev/null
@@ -1,142 +0,0 @@
-# Qualiopi
-
-Les vérifications se font pour chaque programme.
-
-## Indicateur 1
-
-Vérification de la présence des champs dans les programmes
-
-## Indicateur 2
-
-- 1 champ libre + documents joints dans le programme dont on vérifie la présence
-- des stats extraites de l'alumni
-
-## Indicateur 3
-
-- 1 champ libre + documents joints dans le programme dont on vérifie la présence
-- des stats extraites de l'alumni
-
-## Indicateur 4
-
-1 champ libre + documents joints dans le programme dont on vérifie la présence
-
-## Indicateur 5
-
-1 champ libre + documents joints dans le programme dont on vérifie la présence
-
-## Indicateur 6
-
-Présence de cours suffisamment détaillés et complets
-
-## Indicateur 7
-
-1 champ libre + documents joints analysant l'adéquation avec la certification (il faudra modéliser la certification vs RNCP)
-
-## Indicateur 8
-
-- 1 champ libre + documents joints dans le programme dont on vérifie la présence
-- procédure directement intégrée dans la gestion des admissions
-
-## Indicateur 9
-
-1 champ libre + documents joints dans le programme dont on vérifie la présence
-
-## Indicateur 10
-
-? Différence avec 6 ?
-
-## Indicateur 11
-
-- 1 champ libre + documents joints dans le programme dont on vérifie la présence
-- Alumni
-
-## Indicateur 12
-
-- 1 champ libre + documents joints dans le programme dont on vérifie la présence
-- Statistiques d'abandon extraites des profils étudiants
-
-## Indicateur 13
-
-- 1 champ libre + documents joints dans le programme dont on vérifie la présence
-- Statistiques et outils de suivi issus des profils étudiants (module alternance à fabriquer)
-
-## Indicateur 14
-
-1 champ libre + documents joints dans le programme dont on vérifie la présence
-
-## Indicateur 15
-
-Proche 9
-
-Qualifier les documents en fonction de leur contenu vs indicateurs, puis évaluer la présence
-
-## Indicateur 16
-
-Lier les programmes aux certifications, documenter les conditions de présentation
-
-## Indicateur 17
-
-Documents confidentiels à fournir.
-Créer un espace sécurisé de dialogue avec l'auditeur ?
-
-## Indicateur 18
-
-Organigramme avec les postes et les champs (pédagogique, technique, commercial, social)
-
-## Indicateur 19
-
-Ressources éducatives libres, accès à des ressources privées pour les étudiants, bibliographies
-
-## Indicateur 20
-
-Documents et personnes dans l'organigramme
-
-## Indicateur 21
-
-1. Définition des compétences nécessaires
-2. CV et compétences des formateurs
-3. Plan de formation des formateurs
-
-## Indicateur 22
-
-Preuves de formation des formateurs
-
-## Indicateur 23
-
-Preuves de veille légale et réglementaire
-
-## Indicateur 24
-
-Preuves de veille compétences, métiers, emplois
-
-## Indicateur 25
-
-Preuves de veille technologique et pédagogique
-
-## Indicateur 26
-
-Liste des partenaires handicap
-
-## Indicateur 27
-
-Preuves de conformité des sous-traitants
-
-## Indicateur 28
-
-Réseau de partenaires socio-économiques et preuves de coopération
-
-## Indicateur 29
-
-Preuves d'actions orientées insertion professionnelle et poursuite d'études
-
-## Indicateur 30
-
-Feedback des parties prenantes
-
-## Indicateur 31
-
-Gestion des réclamations et suivi de la satisfaction
-
-## Indicateur 32
-
-Preuve d'action correctives sur 31
diff --git a/docs/education/readme.md b/docs/education/readme.md
deleted file mode 100644
index 0cc8a71377ca450e1ed026d2b2aaa3c4e4ec4e23..0000000000000000000000000000000000000000
--- a/docs/education/readme.md
+++ /dev/null
@@ -1,48 +0,0 @@
-# Education
-
-## education/Program
-
-https://schema.org/EducationalOccupationalProgram
-
-Bachelor Universitaire de Technologie Métiers du Multimédia et de l'Internet
-
-- university:references
-- name:string
-- level:integer (enum)
-- capacity:integer
-- ects:integer
-- continuing:boolean
-- prerequisites:text
-- objectives:text
-- duration:text
-- registration:text
-- pedagogy:text
-- evaluation:text
-- accessibility:text
-+ schools:habtm
-+ campuses:habtm
-
-## education/Course
-
-30 heures d'histoire de l'art en année 1
-
-- program:references
-- academic_year:references
-- name:string
-- syllabus:text
-- hours:integer
-
-## qualiopi/Criterion
-
-- number:integer
-- name:text
-- description:text
-
-## qualiopi/Indicator
-- criterion:references
-- number:integer
-- name:text
-- level_expected:text
-- proof:text
-- requirement:text
-- non_conformity:text
diff --git a/docs/education/rncp/README.md b/docs/education/rncp/README.md
deleted file mode 100644
index 585382a4d2948e7b597ba6509468e7b5d5b03a80..0000000000000000000000000000000000000000
--- a/docs/education/rncp/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-# RNCP
-
-https://www.data.gouv.fr/fr/datasets/repertoire-national-des-certifications-professionnelles-et-repertoire-specifique/
diff --git a/docs/research/journals.md b/docs/research/journals.md
deleted file mode 100644
index a897003057699a5108c411017e5c435b5376c446..0000000000000000000000000000000000000000
--- a/docs/research/journals.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Journals
-
-## References
-
-http://infolit.be/CoMLiS/ch02s03.html
-
-
-Authors biography is fixed per article. The biography does not evolve, it is set in time (by the time of publication).
diff --git a/docs/research/laboratories.md b/docs/research/laboratories.md
deleted file mode 100644
index 927694980d3284c99284f84e600fe9c280fd6f85..0000000000000000000000000000000000000000
--- a/docs/research/laboratories.md
+++ /dev/null
@@ -1,98 +0,0 @@
-# Laboratories
-
-## Axes (research axis/axes) ou équipes
-
-Projet scientifique sur plusieurs années, avec des thèmes (ou thématiques) de recherche
-
-## Personnes
-
-- Prénom
-- Nom
-- Photo
-- Poste : Professeur des Universités
-- Responsabilités : Co-Directeur du Laboratoire, Responsable de l'axe ICIN
-- Statut : statutaire ou doctorant ou associé
-- Axe : ICIN
-- Disciplines : Sciences de l'info (71e CNU)
-- Année de rattachement : 2015
-- Université de rattachement : Université de Bordeaux
-- Mail
-- Thèmes de recherche
-- Responsabilités (administratives et d'enseignement)
-- Publications
-- HDR ou pas
-
-### Doctorant
-
-- Sujet de thèse
-- Direction de thèse
-- Inscription en thèse
-
-## Evénements
-
-Pour le MICA, autour d'une dizaine par mois, avec un pic en novembre
-
-### Appels à contribution
-
-### Parutions
-
-### Séminaires
-
-### Soutenances
-
-Thèses et HDR
-
-Import depuis theses.fr ?
-
-## Programmes de recherche
-
-- Nom : CyberNeTic. Se prémunir des mécanismes du cyberharcèlement.
-- Portée : région, national, international
-- Nature : Projet Région Nouvelle-Aquitaine
-- Durée : 3 ans (2020-2022)
-- Pilotage : Marlène Dulaurans
-- Co-Responsabilité : personnes et postes
-- Partenaires extérieurs : Orange...
-- Présentation
-- URL
-
-## Partenaires
-
-- Catégorie (pays par ex)
-- Nom
-- Logo (éventuellement, si dispo)
-- URL
-
-Alphabétique parfois, classé parfois
-
-## Bibliographies
-
-DOI, HAL, researchgate
-
-
-Import depuis HAL
-
-## Publications
-
-Avec décompte pour l'Hcéres
-
-
-Publier automatiquement sur :
-- HAL
-- Arxiv
-- DOI
-- Researchgate
-- Academia
-- autres sites mineurs
-
-## Newsletter
-
-Collecte de mails, gestion avec Sendinblue
-
-## Don
-
-Fonctionnalité nouvelle au MICA, page d'explication (pas de don en ligne)
-
-## SEO
-
-Plan de redirection
diff --git a/docs/research/readme.md b/docs/research/readme.md
deleted file mode 100644
index 36b8e6529ac3dd09e0c50097fcc4bbc16d553964..0000000000000000000000000000000000000000
--- a/docs/research/readme.md
+++ /dev/null
@@ -1,48 +0,0 @@
-## Models
-
-### university/person/Researcher (extends university/Person)
-
-... ajouté à university/Person
-- habilitation:boolean
-- tenure:boolean
-
-### research/Laboratory
-
-- university:references
-- name:string
-- address:string
-- zipcode:string
-- city:string
-- country:string
-
-### research/laboratory/Axis
-
-- university:references
-- research_laboratory:references
-- name:string
-- short_name:string
-- position:integer
-- description:text
-- text:html
-
-### research/Thesis
-
-- university:references
-- research_laboratory:references
-- author:references (person)
-- director:references (person)
-- title:string
-- abstract:text
-- started_at:date
-- completed:boolean
-- completed_at:date
-
-### research/laboratory/Involvement (tbc)
-
-- university:references
-- research_laboratory:references
-- university_person:references
-- research_axis:references
-- status:enum (statutaire, doctorant, associé)
-- description:string
-- themes:html