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