forked from ScoDoc/DocScoDoc
127 lines
3.9 KiB
Markdown
127 lines
3.9 KiB
Markdown
|
|
# ScoDoc - Gestion de la scolarité - Version ScoDoc 9
|
|
|
|
(c) Emmanuel Viennet 1999 - 2021 (voir LICENCE.txt)
|
|
|
|
VERSION EXPERIMENTALE - NE PAS DEPLOYER - TESTS EN COURS
|
|
|
|
Installation: voir instructions à jour sur <https://scodoc.org/GuideInstallDebian11>
|
|
|
|
Documentation utilisateur: <https://scodoc.org>
|
|
|
|
## Version ScoDoc 9
|
|
|
|
N'utiliser que pour les développements et tests.
|
|
|
|
La version ScoDoc 9 est basée sur Flask (au lieu de Zope) et sur
|
|
**python 3.9+**.
|
|
|
|
La version 9.0 s'efforce de reproduire presque à l'identique le fonctionnement
|
|
de ScoDoc7, avec des composants logiciels différents (Debian 11, Python 3,
|
|
Flask, SQLAlchemy, au lien de Python2/Zope dans les versions précédentes).
|
|
|
|
|
|
|
|
### État actuel (25 août 21)
|
|
|
|
- Tests en cours, notamment système d'installation et de migration.
|
|
|
|
**Fonctionnalités non intégrées:**
|
|
|
|
- fonctions d'envoi de mail (en cours)
|
|
|
|
- feuille "placement" (en cours)
|
|
|
|
- ancien module "Entreprises" (obsolete)
|
|
|
|
|
|
### Lignes de commandes
|
|
|
|
Voir [https://scodoc.org/GuideConfig](le guide de configuration).
|
|
|
|
|
|
## Organisation des fichiers
|
|
|
|
L'installation comporte les fichiers de l'application, sous `/opt/scodoc/`, et
|
|
les fichiers locaux (archives, photos, configurations, logs) sous
|
|
`/opt/scodoc-data`. Par ailleurs, il y a évidemment les bases de données
|
|
postgresql et la configuration du système Linux.
|
|
|
|
### Fichiers locaux
|
|
Sous `/opt/scodoc-data`, fichiers et répertoires appartienant à l'utilisateur `scodoc`.
|
|
Ils ne doivent pas être modifiés à la main, sauf certains fichiers de configuration sous
|
|
`/opt/scodoc-data/config`.
|
|
|
|
Le répertoire `/opt/scodoc-data` doit être régulièrement sauvegardé.
|
|
|
|
Principaux contenus:
|
|
|
|
/opt/scodoc-data
|
|
/opt/scodoc-data/log # Fichiers de log ScoDoc
|
|
/opt/scodoc-data/config # Fichiers de configuration
|
|
.../config/logos # Logos de l'établissement
|
|
.../config/depts # un fichier par département
|
|
/opt/scodoc-data/photos # Photos des étudiants
|
|
/opt/scodoc-data/archives # Archives: PV de jury, maquettes Apogée, fichiers étudiants
|
|
|
|
## Pour les développeurs
|
|
|
|
### Installation du code
|
|
|
|
Installer ScoDoc 9 normalement ([voir la doc](https://scodoc.org/GuideInstallDebian11)).
|
|
|
|
Puis remplacer `/otp/scodoc` par un clone du git.
|
|
|
|
sudo su
|
|
mv /opt/scodoc /opt/scodoc-distrib # ou ce que vous voulez
|
|
cd /opt
|
|
git clone https://scodoc.org/git/viennet/ScoDoc.git
|
|
# (ou bien utiliser votre clone gitea so vous l'avez déjà créé !)
|
|
mv ScoDoc scodoc # important !
|
|
cd /opt/scodoc
|
|
# et voilà.
|
|
|
|
### Tests unitaires
|
|
|
|
Certains tests ont besoin d'un département déjà créé, qui n'est pas créé par les
|
|
scripts de tests:
|
|
Lancer au préalable:
|
|
|
|
flask sco-delete-dept TEST00 && flask sco-create-dept TEST00
|
|
|
|
Puis dérouler les tests unitaires:
|
|
|
|
pytest tests/unit
|
|
|
|
Ou avec couverture (`pip install pytest-cov`)
|
|
|
|
pytest --cov=app --cov-report=term-missing --cov-branch tests/unit/*
|
|
|
|
|
|
#### Utilisation des tests unitaires pour initialiser la base de dev
|
|
On peut aussi utiliser les tests unitaires pour mettre la base
|
|
de données de développement dans un état connu, par exemple pour éviter de recréer à la main étudianst et semestres quand on développe.
|
|
|
|
Il suffit de positionner une variable d'environnement indiquant la BD utilisée par les tests:
|
|
|
|
export SCODOC_TEST_DATABASE_URI=postgresql:///SCODOC_DEV"
|
|
|
|
puis de les lancer normalement, par exemple:
|
|
|
|
pytest tests/unit/test_sco_basic.py
|
|
|
|
Il est en général nécessaire d'affecter ensuite un mot de passe à (au moins)
|
|
un utilisateur:
|
|
|
|
flask user-password admin
|
|
|
|
**Attention:** les tests unitaires **effacent** complètement le contenu de la
|
|
base de données (tous les départements, et les utilisateurs) avant de commencer !
|
|
|
|
|
|
# Paquet debian 11
|
|
|
|
Ce que le script d'installation/mise à jour du paquet ne fait pas encore:
|
|
|
|
- migrations flask (à faire)
|