2020-09-25 23:03:44 +02:00
|
|
|
|
2021-06-21 14:54:40 +02:00
|
|
|
# ScoDoc - Gestion de la scolarité - Version ScoDoc 8
|
2020-09-25 23:03:44 +02:00
|
|
|
|
2021-01-01 18:40:47 +01:00
|
|
|
(c) Emmanuel Viennet 1999 - 2021 (voir LICENCE.txt)
|
2020-09-25 23:03:44 +02:00
|
|
|
|
|
|
|
|
|
|
|
Installation: voir instructions à jour sur <https://scodoc.org>
|
|
|
|
|
|
|
|
Documentation utilisateur: <https://scodoc.org>
|
|
|
|
|
2021-05-29 18:22:51 +02:00
|
|
|
## Branche ScoDoc 8 expérimentale
|
|
|
|
|
2021-07-23 14:46:12 +02:00
|
|
|
N'utiliser que pour les développements et tests.
|
2021-05-29 18:22:51 +02:00
|
|
|
|
2021-07-12 22:53:35 +02:00
|
|
|
La version ScoDoc8 est basée sur Flask (au lieu de Zope) et sur **python 3.7+**.
|
2021-06-21 14:54:40 +02:00
|
|
|
Elle ne sera pas mise en production, c'est une version de développement pour le passage à Python 3.
|
|
|
|
|
|
|
|
De très nombreux changements sont susceptibles d'affecter l'API, mais on s'efforce à ce que rien
|
2021-07-23 14:46:12 +02:00
|
|
|
ne soit visible des utilisateurs Web.
|
2021-06-21 14:54:40 +02:00
|
|
|
|
2021-07-23 14:46:12 +02:00
|
|
|
**Work in Progress (WIP)**: développement en cours, certaines pages fonctionnent, d'autres pas:
|
|
|
|
merci de signaler les erreurs.
|
2021-06-21 14:54:40 +02:00
|
|
|
|
2021-07-23 13:45:56 +02:00
|
|
|
### État actuel (23 juillet 21)
|
2021-06-21 14:54:40 +02:00
|
|
|
|
2021-07-23 13:45:56 +02:00
|
|
|
- serveur de développement fonctionnel (pas testé en mode "production" sous gunicorn+nginx).
|
|
|
|
|
|
|
|
- logs à revoir
|
2021-06-21 14:54:40 +02:00
|
|
|
|
2021-07-15 08:50:58 +02:00
|
|
|
- pas d'import/export excel.
|
2021-06-21 14:54:40 +02:00
|
|
|
|
2021-07-23 13:45:56 +02:00
|
|
|
- pas de pages gestion utilisateurs.
|
|
|
|
|
2021-06-21 14:54:40 +02:00
|
|
|
**En cours:**
|
|
|
|
|
2021-07-23 13:45:56 +02:00
|
|
|
- tests, formulaires utilisateurs, logging.
|
2021-06-21 14:54:40 +02:00
|
|
|
|
2021-05-29 18:22:51 +02:00
|
|
|
|
2021-07-23 14:46:12 +02:00
|
|
|
## Installation (sur Debian 10 / python3.7)
|
|
|
|
|
|
|
|
On peut installer à partir de zéro, ou sur une machine ayant déjà un ScoDoc 7 et migrer les données.
|
2021-05-29 18:22:51 +02:00
|
|
|
|
2021-07-23 14:46:12 +02:00
|
|
|
### Installation
|
2021-06-21 14:54:40 +02:00
|
|
|
|
2021-07-23 14:46:12 +02:00
|
|
|
Sur un système Linux Debian 10, en tant que `root`:
|
2021-06-21 14:54:40 +02:00
|
|
|
|
2021-07-23 14:46:12 +02:00
|
|
|
- Charger la dernière release depuis https://scodoc.org/git/viennet/ScoDoc/releases
|
2021-07-10 13:55:35 +02:00
|
|
|
|
2021-07-23 14:46:12 +02:00
|
|
|
- Déplacer ou copier le fichier `scodoc-v8.x.y.tgz` dans `/opt` et le décomprimer:
|
2021-07-12 22:53:35 +02:00
|
|
|
|
2021-07-23 14:46:12 +02:00
|
|
|
sudo su
|
|
|
|
cd /opt; tar xf - scodoc-v8.x.y.tgz # remplacer x et y par votre version
|
2021-07-12 22:53:35 +02:00
|
|
|
|
2021-07-23 14:46:12 +02:00
|
|
|
- Lancer le script d'installation:
|
2021-07-10 13:55:35 +02:00
|
|
|
|
2021-07-23 14:46:12 +02:00
|
|
|
cd /opt/scodoc8/tools
|
|
|
|
./install_debian10.sh
|
2021-07-10 13:55:35 +02:00
|
|
|
|
2021-07-23 14:46:12 +02:00
|
|
|
ce script crée un compte utilisateur "scodoc".
|
2021-07-10 13:55:35 +02:00
|
|
|
|
2021-07-23 14:46:12 +02:00
|
|
|
Note: si vous installez sur une machine déjà configurée pour ScoDoc 7, il
|
|
|
|
est inutile de reconfigurer la messagerie et le firewall.
|
2021-05-29 18:22:51 +02:00
|
|
|
|
2021-07-23 14:46:12 +02:00
|
|
|
### Bases de données
|
2021-06-26 21:57:54 +02:00
|
|
|
ScoDoc8 utilise les bases de département de ScoDoc7, mais une nouvelle base
|
|
|
|
utilisateurs nommée `SCO8USERS` (au lieu de `SCOUSERS`), qui est manipulée
|
|
|
|
via `sqlalchemy`.
|
|
|
|
|
|
|
|
### Configuration de la base utilisateurs
|
|
|
|
|
2021-07-23 14:46:12 +02:00
|
|
|
Lancer le script:
|
|
|
|
|
|
|
|
su postgres
|
|
|
|
cd /opt/scodoc8/tools
|
|
|
|
./create_database.sh
|
2021-07-23 13:45:56 +02:00
|
|
|
|
|
|
|
Ce script crée une base nommée `SCO8USERS`, appartenant à l'utilisateur (role) postgres `scodoc`.
|
2021-07-23 14:46:12 +02:00
|
|
|
Cet utilisateur est automatiquement créé si nécessaire.
|
2021-06-26 21:57:54 +02:00
|
|
|
|
2021-07-23 13:45:56 +02:00
|
|
|
### Initialisation de la base utilisateur par Flask
|
2021-06-26 21:57:54 +02:00
|
|
|
|
2021-07-23 13:45:56 +02:00
|
|
|
En tant qu'utilisateur `scodoc`:
|
2021-06-26 21:57:54 +02:00
|
|
|
|
2021-07-23 14:46:12 +02:00
|
|
|
su scodoc # si besoin
|
2021-06-26 21:57:54 +02:00
|
|
|
flask db init
|
|
|
|
flask db migrate -m "users and roles tables"
|
|
|
|
flask db upgrade
|
|
|
|
|
|
|
|
Puis initialisation de l'appli:
|
|
|
|
|
|
|
|
flask user-db-init
|
|
|
|
|
2021-07-15 08:50:58 +02:00
|
|
|
Et saisie du mot de passe `admin`:
|
|
|
|
|
|
|
|
flask user-password admin
|
|
|
|
|
2021-06-26 21:57:54 +02:00
|
|
|
On peut ensuite créer des utilisateurs tests avec:
|
|
|
|
|
|
|
|
flask user-create toto Ens RT
|
2021-07-05 00:14:30 +02:00
|
|
|
flask user-create tata Ens Info
|
2021-06-26 21:57:54 +02:00
|
|
|
|
2021-07-05 00:14:30 +02:00
|
|
|
ou mieux, importer les utilisateurs de ScoDoc7 avec:
|
|
|
|
|
|
|
|
flask user-db-import-scodoc7
|
|
|
|
|
|
|
|
(la base `SCOUSERS` de ScoDoc7 n'est pas affectée, ScoDoc8 utilise une base séparée, nommée `SCO8USERS`).
|
2021-07-05 21:56:28 +02:00
|
|
|
|
|
|
|
Pour créer un utilisateur "super admin", c'est à dire admin dans tous les départements:
|
|
|
|
|
|
|
|
flask user-create admin1 SuperAdmin @all
|
2021-06-26 21:57:54 +02:00
|
|
|
|
2021-07-23 14:46:12 +02:00
|
|
|
## Migration d'une installation ScoDoc 7
|
|
|
|
|
|
|
|
Le script `migrate_from_scodoc7.sh` va déplacer les donneés et reconfigurer les bases de données
|
|
|
|
de votre installation ScoDoc 7 pour passer à ScoDoc 8 (*ne pas utiliser en production !*).
|
|
|
|
**Les modifications effectuées sont sans retour: ScoDoc 7 ne fonctionnera plus !**
|
|
|
|
|
|
|
|
1. S'assurer que l'installation ScoDoc 7 est à jour
|
|
|
|
|
|
|
|
sudo su
|
|
|
|
cd /opt/scodoc/Products/ScoDoc/config
|
|
|
|
./upgrade.sh
|
|
|
|
|
|
|
|
2. Arrêter le service ScoDoc 7
|
|
|
|
|
|
|
|
systemctl stop scodoc7
|
|
|
|
|
|
|
|
S'assurer qu'il est bien stoppé (`ps auxw`, ...), sans qui la migration va échouer.
|
|
|
|
|
|
|
|
3. Lancer le script de migration
|
|
|
|
ScoDoc 8 doit avoir été installé comme expliqué plus haut.
|
|
|
|
|
|
|
|
sudo su
|
|
|
|
cd /opt/scodoc8/tools
|
|
|
|
./migrate_from_scodoc7.sh
|
|
|
|
|
2021-07-05 00:14:30 +02:00
|
|
|
|
2021-05-29 18:22:51 +02:00
|
|
|
## Lancement serveur (développement, sur VM Linux)
|
|
|
|
|
2021-07-23 13:45:56 +02:00
|
|
|
En tant qu'utilisateur `scodoc` (pour avoir accès aux bases départements de ScoDoc7):
|
2021-07-21 15:53:15 +02:00
|
|
|
|
|
|
|
1. Lancer memcached:
|
|
|
|
|
|
|
|
memcached
|
|
|
|
|
|
|
|
2. Dans un autre terminal, lancer le serveur:
|
|
|
|
|
2021-05-29 18:22:51 +02:00
|
|
|
export FLASK_APP=scodoc.py
|
|
|
|
export FLASK_ENV=development
|
|
|
|
flask run --host=0.0.0.0
|
|
|
|
|
2021-07-21 15:53:15 +02:00
|
|
|
## Tests unitaires
|
2021-05-29 18:22:51 +02:00
|
|
|
|
2021-07-21 15:53:15 +02:00
|
|
|
pytest tests/unit
|
2020-09-25 23:03:44 +02:00
|
|
|
|
2021-07-13 09:38:31 +02:00
|
|
|
# TODO
|
2021-06-02 22:40:34 +02:00
|
|
|
|
2021-07-13 09:38:31 +02:00
|
|
|
- page d'erreur ScoValueError
|
|
|
|
- redirection pour authentification
|
|
|
|
- import/export Excel
|
|
|
|
|
2021-06-02 22:40:34 +02:00
|
|
|
|
|
|
|
|