ScoDoc/README.md

137 lines
3.2 KiB
Markdown
Raw Normal View History

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
N'utiliser que pour les développements et tests, dans le cadre de la migration de Zope vers Flask.
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
ne soit visible des utilisateurs.
## Work in Progress (WIP)
2021-07-12 22:53:35 +02:00
Développement en cours, certaines pages fonctionnent, d'autres pas.
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
- 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-12 22:53:35 +02:00
## Setup (sur Debian 10 / python3.7)
2021-05-29 18:22:51 +02:00
2021-06-21 14:54:40 +02:00
Pour les dev, le plus simple est de partir d'une install fonctionnelle de ScoDoc7 sous git, et de changer de branche
git checkout ScoDoc8
2021-07-10 13:55:35 +02:00
Debian 10 est livré avec Python 3.7.
apt-get install python3-dev
apt-get install python3-venv
2021-07-15 09:05:25 +02:00
apt-get install libpq-dev
apt-get install libcrack2-dev
2021-07-12 22:53:35 +02:00
Création d'un environnement:
2021-07-10 13:55:35 +02:00
python3 -m venv venv
Puis installation de Flask:
source venv/bin/activate
pip install flask
pip install wheel
Installer les dépendances:
2021-07-11 22:04:09 +02:00
pip install -r requirements-3.7.txt
2021-05-29 18:22:51 +02:00
## Bases de données
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 13:45:56 +02:00
Lancer le script `tools/create_database.sh`
Ce script crée une base nommée `SCO8USERS`, appartenant à l'utilisateur (role) postgres `scodoc`.
Cet utilisateur est créé si nécessaire.
2021-07-23 13:45:56 +02:00
### Initialisation de la base utilisateur par Flask
2021-07-23 13:45:56 +02:00
En tant qu'utilisateur `scodoc`:
flask db init
flask db migrate -m "users and roles tables"
flask db upgrade
Puis initialisation de l'appli:
flask user-db-init
Et saisie du mot de passe `admin`:
flask user-password admin
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-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`).
Pour créer un utilisateur "super admin", c'est à dire admin dans tous les départements:
flask user-create admin1 SuperAdmin @all
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-07-13 09:38:31 +02:00
- page d'erreur ScoValueError
- redirection pour authentification
- import/export Excel