From 0053380c964e9ecd5a3b5679783ba5afe1325a7d Mon Sep 17 00:00:00 2001 From: viennet Date: Sun, 22 Aug 2021 08:14:55 +0200 Subject: [PATCH] =?UTF-8?q?d=C3=A9but=20de=20mise=20=C3=A0=20jour=20pour?= =?UTF-8?q?=20ScoDoc=209?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ConseilServeurDev.md | 9 +++++-- docs/GuideDeveloppeurs.md | 35 ++++++++++++++++++++++----- docs/GuideInstallDebian11.md | 36 +++++++++++++++++++++++++++ docs/ScoDocAPI.md | 2 +- docs/ScoDocApogee.md | 2 +- docs/TestsScoDoc.md | 47 ++++++++++++++++++++++++++++++++++++ docs/TestsScoDoc7.md | 36 --------------------------- docs/index.md | 9 +++---- 8 files changed, 125 insertions(+), 51 deletions(-) create mode 100644 docs/GuideInstallDebian11.md create mode 100644 docs/TestsScoDoc.md delete mode 100644 docs/TestsScoDoc7.md diff --git a/docs/ConseilServeurDev.md b/docs/ConseilServeurDev.md index c6fd0de0..8814ae9a 100644 --- a/docs/ConseilServeurDev.md +++ b/docs/ConseilServeurDev.md @@ -4,10 +4,11 @@ Quelques indications pour développer avec ScoDoc 7.x, à adapter à vos goûts # Machine virtuelle -Il est confortable de développer dans une VM (un container Docker ferait aussi bien l'affaire, mais Docker a été créé bien après ScoDoc ! Les utilisateurs étant dans des VM, on a l'avantage d'être dans les mêmes conditions qu'eux). +Il est confortable de développer dans une VM (un container Docker ferait +aussi bien l'affaire). ## Conseils pour VirtualBox -[VirtualBox](https://www.virtualbox.org/) est facile à installer sur Mac, Linux ou Windows. Créer une VM avec Debian 10, et suivre la [procédure habituelle d'installation de ScoDoc](GuideInstallDebianDix.md). +[VirtualBox](https://www.virtualbox.org/) est facile à installer sur Mac, Linux ou Windows. Créer une VM avec Debian 10, et suivre la [procédure habituelle d'installation de ScoDoc](GuideInstallDebian11.md). XXX En général, vous préférez développer sur la machine hôte pour disposer de votre éditeur préféré. Mais vous exécutez ScoDoc dans la VM. @@ -52,6 +53,10 @@ Une autre solution (que j'utilise sur mon MacBook), est de laisser le source (cl Dans VirtualBox / config. VM / Dossiers partagés, ajouter un partage. Par exemple, vous mettez vos sources sur l'hôte dans `~/src`, et dans la VM sur `/src`. Dans ScoDoc, `/opt/scodoc/Products/ScoDoc` est alors un lien symbolique vers votre `src/ScoDoc`. +Pour pouvoir utiliser des liens symboliques dans le partage: + + VBoxManage setextradata "Debian11" VBoxInternal2/SharedFoldersEnableSymlinksCreate/src 1 + Attention, VirtualBox gère mal les droits/permissions du répertoire partagé. les utilisateurs linux (dans la VM) doit être dans le groupe `vboxsf`: usermod -a -G vboxsf root diff --git a/docs/GuideDeveloppeurs.md b/docs/GuideDeveloppeurs.md index 9efc18b9..064ab937 100644 --- a/docs/GuideDeveloppeurs.md +++ b/docs/GuideDeveloppeurs.md @@ -5,7 +5,8 @@ Informations pour les développeurs souhaitant étendre ou modifier ScoDoc. ## Informations générales - * S'abonner aux [listes de diffusion](ListesDeDiffusion.md) + * S'abonner aux [listes de diffusion](ListesDeDiffusion.md). Il y a aussi + un serveur Discord ouvert sur invitation aux développeur actifs. Contacter Emmanuel. * [Générer de nouveaux formats de bulletins PDF](ApiGenerationBulletinsPdf.md) * [Créer de nouveaux types de "parcours"](ApiCreationParcours.md) * [API](ScoDocAPI.md) : API JSON ou XML pour interfaçage avec d'autres applications @@ -14,7 +15,7 @@ Informations pour les développeurs souhaitant étendre ou modifier ScoDoc. * [Anciennes discussions sur la gestion des plannings](IdeesGestionPlannings.md) -## Développer sur ScoDoc 7 et 8 +## Développer sur ScoDoc Quelques conseils, indications et mémos pour les développeurs sur ScoDoc version 7.x et 8. @@ -22,7 +23,8 @@ Quelques conseils, indications et mémos pour les développeurs sur ScoDoc versi [Quelques conseils mouvants pour configurer votre serveur de développement](ConseilServeurDev.md) ### Style et formatage du code -L'ancienneté de la base de code a rendu le style peu cohérent. +L'ancienneté de la base de code a rendu le style un peu incohérent, mais cela +s'améliore avec ScoDoc 9 (respect PEP 8). Le code doit être formatté avec [`black`](https://black.readthedocs.io/) avant tout commit (configurez votre éditeur pour appeler `black` à l'enregistrement). @@ -109,14 +111,35 @@ Prépare un sed pour renommer les variables non définies: pylint --disable=all -e E "$f" | grep undefined-variable | awk '{print "sed -i .bak s/"$4"/scu."$4"/ '$f'";}' | sort | uniq | tr -d \' done +Note pour travailler sur VirtualBox: + + addgroup scodoc vboxsf + +### Tests + +Voir [TestsScoDoc](TestsScoDoc.md) + +## Cache Redis + +Certains objets couteux à calculer sont cachés. Depuyis ScoDoc 9, on utilise Redis, via `flask-caching`. + +Au besoin, mémo: + + - client ligne de commande: `https://redis.io/topics/rediscli` + + - afficher les clés: `redis-cli KEYS '*'` + + - `redis-cli TTL key` affiche le TTL d'un clé, -1 si infini. + + - `redis-cli -r -1 -i 3 KEYS '*_NT_*'` surveille certaines clés (ici _NT_), affche toutes les 3 secondes. + + - `flask clear-cache` efface le cache Redis. -### Portail pour tests -TODO (voir `scotests/fakeportal/`). ## Roadmap Sujets **prioritaires** en 2021: - - modernisation du code: Flask, Python 3. + - modernisation du code: Flask, Python 3: achevé août 2021 - prise en compte du Bachelor (BUT): SAÉ, suivi compétences, validations des blocs, UE, semestres selon la cadrage et l'arêté Licence Pro 2020. diff --git a/docs/GuideInstallDebian11.md b/docs/GuideInstallDebian11.md new file mode 100644 index 00000000..7d1a4006 --- /dev/null +++ b/docs/GuideInstallDebian11.md @@ -0,0 +1,36 @@ + +# Installation de ScoDoc sur Debian 11 (Bullseye) +Ce document décrit la procédure d'installation et de configuration de ScoDoc. +Cette procédure doit être effectué sur la machine serveur avec un accès administrateur (root). + +XXX en cours de rédaction. + +En attendant, voir https://scodoc.org/git/viennet/ScoDoc + +... + + + 7. **Lancer ScoDoc**: +``` + systemctl restart scodoc +``` +et voila ! + +Visiter `https://votre.site.fr/` pour achever la configuration et utiliser le logiciel: voir la page [GuideConfig](GuideConfig.md) + + + +## En cas de problème +Ne pas hésiter à me contacter ou à écrire sur la liste notes (voir [Listes de diffusion](ListesDeDiffusion.md)). + + * Problèmes d'envoi de courrier électronique (mail): voir [ProblemesMail](ProblemesMail.md) + +Nota: sur certains réseaux, l'autoconfiguration IPv6 pose problème (par exemple: bloquage des envois de mails). Au besoin, il est possible de désactiver IPv6 (voir par exemple [ici](https://wiki.debian-fr.xyz/D%C3%A9sactiver_l%27IPv6)). + + +## Ensuite... + * Appliquez fréquemment les [mises à jour](MisesAJour.md) + + * Mettez en place des [sauvegardes](SauvegardesBases.md) + + * Abonnez vous au moins à la liste d'annonces: voir [Listes de diffusion](ListesDeDiffusion.md) diff --git a/docs/ScoDocAPI.md b/docs/ScoDocAPI.md index a73a3e73..aa8b9764 100644 --- a/docs/ScoDocAPI.md +++ b/docs/ScoDocAPI.md @@ -868,7 +868,7 @@ Et un autre exemple en format JSON: ## Absences * **`Absences/ListeAbsEtud`** - * Paramètres: `etudid, abs_just_only, format`. `abs_just_only` spécifie si on veut les absences justifiées ou non. + * Paramètres: `etudid, absjust_only, format`. `absjust_only` spécifie si on veut les absences justifiées ou non. * Résultat: liste d'absences. Exemple: ```{jour: "2021-02-10", ampm: "0", description: "M2202", }``` (`ampm` vaut 1 le matin et 0 l'après-midi). diff --git a/docs/ScoDocApogee.md b/docs/ScoDocApogee.md index d8e08d55..94405f76 100644 --- a/docs/ScoDocApogee.md +++ b/docs/ScoDocApogee.md @@ -3,7 +3,7 @@ L'export des résultats de ScoDoc vers Apogée se fait après le jury. Pour les L'export des notes finales (et des décisions de jury) vers le logiciel Apogée peut être fait de plusieurs façons: soit par remplissage automatique de maquettes Apogée, soit en passant par des fichiers Excel. -La procédure détaillée d'import des résultats de ScoDoc dans Apogée est décrite par ici merci à Bérangère Lhoumeau, du service Scolarité de l'IUT de Tarbes: [SCODOC_import_notes_dans_apogee.pdf](papers/SCODOC_import_notes_dans_apogee.pdf) +La procédure détaillée d'import des résultats de ScoDoc dans Apogée est décrite ici: [SCODOC_import_notes_dans_apogee.pdf](papers/SCODOC_import_notes_dans_apogee.pdf), merci à Bérangère Lhoumeau, du service Scolarité de l'IUT de Tarbes. ## Remplissage des fichiers maquette Apogée (CSV) Solution intégrée à ScoDoc en juillet 2016. diff --git a/docs/TestsScoDoc.md b/docs/TestsScoDoc.md new file mode 100644 index 00000000..a79c262f --- /dev/null +++ b/docs/TestsScoDoc.md @@ -0,0 +1,47 @@ + +# Tests de ScoDoc + +ScoDoc est basé sur Flask, se référer à la doc de Flask pour aller plus loin. + +On travaille toujours en tant qu'utilisateur `scodoc`, dans le virtualenv: + + su scodoc # si nécessaire + cd /opt/scodoc + source venv/bin/activate + +## Lancement interactif + + flask shell + +Pour mémoire, un certains nombre de commandes en ligne facilitant la gestion de +ScoDoc sont disponibles, afficher la liste avec + + flask --help + +## Tests unitaires + +On utilise `pytest`. Ainsi, la commande + + pytest tests/unit + +lance l'ensemble des tests unitaires. + +## Tests Selenium (web) + +TODO (Aurélien, JMP) + +## Portail pour tests + +Un faux portail "apogée" pour inscrire de faux étudiants avec photos. Utile pour tester les fonctions d'inscription/synchronisation, et aussi pour peupler rapidement une base de donnée. + +Le code se trouve dans `scotests/fakeportal/`. + +Le serveur écoute par défaut sur `tcp/8678`. Il faudra paramétrer l'URL du "portail" dans les préférences du ScoDoc à tester, qui est en général sur le même hôte, donc `http://localhost:8678`. + +Lancement: + + /opt/scodoc/scotests/fakeportal/fakeportal.py + + + + diff --git a/docs/TestsScoDoc7.md b/docs/TestsScoDoc7.md deleted file mode 100644 index 2e4d6206..00000000 --- a/docs/TestsScoDoc7.md +++ /dev/null @@ -1,36 +0,0 @@ - -# Tests de ScoDoc7 - -## Lancement interactif - -Un script permet de lancer ScoDoc7 en mode interactif, et d'exécuter au préalable des scripts (de test ou de création d'objets divers). - - cd /opt/scodoc/Products/ScoDoc - # Lance le script scotests/test_basic.py - scotests/scointeractive.sh -r TEST00 scotests/test_basic.py - -L'option `-r` utilisée ci-dessus va recréer la base SQL du département `TEST00` (et l'*effacer avant si elle existe*). - -Attention: la base utilisateurs étant à part, s'assurer que les utilisateurs utilisés dans vos scripts de test existent au préalable. - - -## Tests unitaires - -TODO (Fares) - -## Tests Selenium (web) - -TODO (Aurélien) - -## Portail pour tests - -Un faux portail "apogée" pour inscrire de faux étudiants avec photos. Utile pour tester les fonctions d'inscription/synchronisation, et aussi pour peupler rapidement une base de donnée. - -Le code se trouve dans `scotests/fakeportal/`. - -Le serveur écoute par défaut sur `tcp/8678`. Il faudra paramétrer l'URL du "portail" dans les préférences du ScoDoc à tester, qui est en général sur le même hôte, donc `http://localhost:8678`. - - /opt/scodoc/Products/ScoDoc/scotests/fakeportal/fakeportal.py - - - diff --git a/docs/index.md b/docs/index.md index a7196930..b75b0918 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,7 +1,7 @@ # ScoDoc: un logiciel libre pour le suivi de la scolarité -ScoDoc est un logiciel libre créé par Emmanuel Viennet pour suivre la scolarité des étudiants universitaires. Il est principalement utilisé dans les IUT, mais aussi apprécié par plusieurs Écoles et Masters. Il fournit notamment: +ScoDoc est un logiciel libre créé par Emmanuel Viennet pour suivre la scolarité des étudiants universitaires. Il est principalement utilisé dans les IUT, mais aussi apprécié par plusieurs Écoles et Masters en France et à l'étranger. Il fournit notamment: - suivi précis de la progression des étudiants, évaluations formatives et certificatives; - saisie et gestion des notes; @@ -14,7 +14,7 @@ ScoDoc est un logiciel libre créé par Emmanuel Viennet pour suivre la scolarit ScoDoc est un *logiciel libre*: vous pouvez [participer à son développement](Contribuer.md). -ScoDoc s'utilise sur un navigateur web standard, avec connexions sécurisées; pour obtenir un accès sur un *serveur de démo* (réservé aux IUT), contacter: . Pour installer le logiciel sur votre serveur, voir le [guide d'installation sur Debian 10](GuideInstallDebianDix.md). +ScoDoc s'utilise sur un navigateur web standard, avec connexions sécurisées; pour obtenir un accès sur un *serveur de démo* (réservé aux IUT), contacter: . Pour installer le logiciel sur votre serveur, voir le [guide d'installation sur Debian 10](GuideInstallDebianDix.md). La version ScoDoc 9 est actuellement en test et devrait sortir fin août 2021. Elle fonctionne sur Debian 11. ScoDoc est utilisé dans de nombreux établissement français et étrangers, **dont au moins 58 IUT**: [liste des utilisateurs connus de ScoDoc](UtilisateursScoDoc.md). @@ -59,12 +59,11 @@ Nous sommes en contact avec l'équipe du projet Pégase/PC-SCOL, qui succédera ### Feuille de route (roadmap) Les prochaines versions de ScoDoc (*sous réserve !*): - - ScoDoc 9.0 : fin juin 2021 version remaniée en Python 3, avec version mobile. + - ScoDoc 9.0 : juillet 2021 version remaniée en Python 3/Flask, avec version mobile. - ScoDoc 9.1 : fin août 2021 gestion du bachelor (BUT) - - ScoDoc 9.2 : octobre 2021 nouvelles fonctionnalités liés au BUT. - + - ScoDoc 9.2 : octobre 2021 nouvelles fonctionnalités liées au BUT.