150 lines
3.8 KiB
Markdown
150 lines
3.8 KiB
Markdown
|
|
# ScoDoc - Gestion de la scolarité - Version ScoDoc 8
|
|
|
|
(c) Emmanuel Viennet 1999 - 2021 (voir LICENCE.txt)
|
|
|
|
|
|
Installation: voir instructions à jour sur <https://scodoc.org>
|
|
|
|
Documentation utilisateur: <https://scodoc.org>
|
|
|
|
## Branche ScoDoc 8 expérimentale
|
|
|
|
N'utiliser que pour les développements et tests, dans le cadre de la migration de Zope vers Flask.
|
|
|
|
La version ScoDoc8 est basée sur Flask (au lieu de Zope) et sur **python 2.7**.
|
|
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)
|
|
|
|
En général, les commits indiqués "WIP" ne tournent pas.
|
|
|
|
### État actuel (21 juin 21)
|
|
|
|
- l'ensemble des pages est raccordé, sauf "entreprises" et la gestion des utilisateurs (de ce fait, de nombreuses pages plantent).
|
|
|
|
- pas d'excel (voir si on réinstalle `pyExcelerator` ou si on migre immédiatement ?), pdf non testé (mais devrait marcher ?).
|
|
|
|
**En cours:**
|
|
|
|
- recodage pages gestion utilisateurs avec SQLAlchemy.
|
|
|
|
- migration bases `SCUUSERS`vers `SCO8USERS`
|
|
|
|
- raccorder page "entreprises".
|
|
|
|
|
|
## Setup (sur Debian 10 / python2.7)
|
|
|
|
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
|
|
|
|
Puis d'installer Flask comme suit:
|
|
|
|
virtualenv envsco8
|
|
|
|
source envsco8/bin/activate
|
|
|
|
Installation:
|
|
|
|
apt-get install libcrack2-dev
|
|
pip install flask
|
|
# et pas mal d'autres paquets
|
|
|
|
|
|
donc utiliser:
|
|
|
|
pip install -r requirements-2.7.txt
|
|
|
|
pour régénerer ce fichier:
|
|
|
|
pip freeze > requirements-2.7.txt
|
|
|
|
## Setup python3.7
|
|
Debian 10 est livré avec Python 3.7.
|
|
|
|
apt-get install python3-dev
|
|
apt-get install python3-venv
|
|
python3 -m venv venv
|
|
|
|
Puis installation de Flask:
|
|
|
|
source venv/bin/activate
|
|
pip install flask
|
|
pip install wheel
|
|
|
|
Installer les dépendances:
|
|
|
|
pip install -r requirements-3.7.txt
|
|
|
|
## 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
|
|
|
|
On va créer une base nommée `SCO8USERS`, appartenant à l'utilisateur (aka role) postgres `scodoc`.
|
|
Cet utilisateur sera créé ainsi sur le serveur linux::
|
|
|
|
su - postgres
|
|
createuser --no-createdb --no-createrole --pwprompt scodoc
|
|
|
|
Puis création de la base (en tant qu'utilisateur `postgres`):
|
|
|
|
createdb -O scodoc SCO8USERS
|
|
|
|
### Initialisation base par flask
|
|
|
|
En tant qu'utilisateur `www-data` (compat. avec ScoDoc7):
|
|
|
|
flask db init
|
|
flask db migrate -m "users and roles tables"
|
|
flask db upgrade
|
|
|
|
Puis initialisation de l'appli:
|
|
|
|
flask user-db-init
|
|
|
|
On peut ensuite créer des utilisateurs tests avec:
|
|
|
|
flask user-create toto Ens RT
|
|
flask user-create tata Ens Info
|
|
|
|
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
|
|
|
|
### Bidouilles temporaires
|
|
|
|
Déconseillé: nstaller le bon vieux `pyExcelerator` dans l'environnement:
|
|
|
|
(cd /tmp; tar xfz /opt/scodoc/Products/ScoDoc/config/softs/pyExcelerator-0.6.3a.patched.tgz )
|
|
(cd /tmp/pyExcelerator-0.6.3a.patched/; python setup.py install)
|
|
|
|
La gestion des fichiers excel va attendre le passage à Python3.
|
|
|
|
## Lancement serveur (développement, sur VM Linux)
|
|
|
|
export FLASK_APP=scodoc.py
|
|
export FLASK_ENV=development
|
|
flask run --host=0.0.0.0
|
|
|
|
## Tests
|
|
|
|
python -m unittest tests.test_users
|
|
|
|
|
|
|
|
|