ajouts et corrections

This commit is contained in:
Emmanuel Viennet 2023-05-28 14:43:45 +02:00
parent 5c9c8e8947
commit 290f967e32
5 changed files with 142 additions and 46 deletions

View File

@ -10,10 +10,14 @@ alt="Niveaux de compétences des parcours du BUT Informatique">
Les coefficients des ressources et SAÉs en BUT sont définis localement par les Les coefficients des ressources et SAÉs en BUT sont définis localement par les
établissement, ainsi que les crédits ECTS associés aux UE. établissement, ainsi que les crédits ECTS associés aux UE.
Dans cet exemple, nous allons voir comment traiter cette configuration cas, plus Cette page détaille un exemple de mise en place d'un BUT Info. Cette
complexe que le cas d'une spécialité typique de BUT: on va supposer que les configuration est plus complexe que le cas d'une spécialité typique de BUT: on
coefficients d'une même ressource varient suivant le parcours suivi par va supposer que les coefficients d'une même ressource varient suivant le
l'étudiant, et que les ECTS d'une même UE dépendent parfois du parcours. parcours suivi par l'étudiant, et que les ECTS d'une même UE dépendent parfois
du parcours.
Après mise en place de la formation, nous allons créer les semestres, y inscrire
les étudiants et ternir un jury.
## Saisir ou importer le programme de formation ## Saisir ou importer le programme de formation
@ -77,7 +81,6 @@ De même, pour le S6, version simplifiée sans UE spécifiques:
<img src="/screens/but-info-choisir-nom-ue.png" width="50%"> <img src="/screens/but-info-choisir-nom-ue.png" width="50%">
## Associer les UE et les niveaux de compétences ## Associer les UE et les niveaux de compétences
Chaque niveau de compétence (1, 2 ou 3) correspond à une année, donc à deux UEs Chaque niveau de compétence (1, 2 ou 3) correspond à une année, donc à deux UEs
@ -134,7 +137,7 @@ l'ensemble avant de poursuivre !
Dans la plupart des cas, le nombre de crédits ECTS d'une UE est constant. Néanmoins, Dans la plupart des cas, le nombre de crédits ECTS d'une UE est constant. Néanmoins,
certaines spécialités ou établissement, on peut vouloir le faire varier selon le certaines spécialités ou établissement, on peut vouloir le faire varier selon le
parcours. Une solution serait de dupliquer l'UE (comme on le fait pour décliner parcours. Une solution serait de dupliquer l'UE (comme on le fait pour décliner
les coefficients), mais il est plus simple de déclarer les ETCT dans chaque les coefficients), mais il est plus simple de déclarer les ECTS dans chaque
parcours: parcours:
<img src="/screens/but-info-ue-lien-ects.png" width="40%"> <img src="/screens/but-info-ue-lien-ects.png" width="40%">
@ -143,6 +146,55 @@ parcours:
## Coefficients des ressources et SAÉs ## Coefficients des ressources et SAÉs
TODO (et bug à corriger) Imaginons qu'en S4, la ressource `R4.01` ait le coefficient 14 vers l'UE41 dans
le parcours A, mais le coefficient 23 dans le parcours B. Nous avons vu plus
haut que nous avions créé une UE par parcours, `UE41-A` et `UE41-B`. reste à
leur attribuer leurs coefficients via le formulaire habituel:
<img src="/screens/but-info-edit-coefs-S4.png" width="40%">
L'intérêt de cette approche est qu'on a une seule ressource pour les deux
parcours, ce qui simplifie la saisie et le suivi des évaluations et des notes.
Bien sûr, si la ressource était pédagogiquement distincte dans les deux parcours
(activités différentes, examens spécifiques...) il serait préférable de créer
deux versions de la ressources (par exemple `R4.01-A`et `R4.01-B`).
## Mise en place des semestres
La création des semestres ne présentent aucune particularité dans ce cas. Il
faut juste indiquer les par proposés dans le semestre. Dans notre exemple:
<img src="/screens/but-info-sem-parcours-A-B.png" width="50%">
## Affectation des étudiants aux parcours
Nous supposons dans la suite que nous avons les deux parcours A et B dans notre
département, les étudiants des deux parcours étant dans les mêmes semestres
ScoDoc. Les ressources et coefficients proposés sont là pour illustrer et ne
correspondent pas à la réalité.
On affecte les étudiants aux parcours grâce à l'éditeur de groupes et partitions
(accessible via le menu **Groupes**): la partition nommée *parcours* est
spéciale et est utilisée par ScoDoc pour savoir à quel parcours appartient
l'étudiant.
Dans l'exemple ci-dessous, on a deux étudiants dans chaque parcours A et B:
<img src="/screens/but-info-groupes-parcours.png" width="75%">
## Inscriptions des étudiants aux modules de leurs parcours
Il faut que chaque étudiant soit inscrit aux modules (ressources ou SAÉs) de
tronc commun, à et à ceux spécifiques à son parcours. Pour cela, on passe par le
menu "**Inscriptions / Gérer les inscriptions aux UEs et modules**".
Dans chaque module, on peut régler les inscriptions:
<img src="/screens/but-info-inscr-module.png" width="30%">

View File

@ -130,13 +130,22 @@ et ajouter les variables d'environnement nécessaires. Typiquement, il s'agit de
Vérifiez aussi que ces variables sont bien définies dans `/etc/environment` (si Vérifiez aussi que ces variables sont bien définies dans `/etc/environment` (si
l'installeur Linux Debian ne les a pas déjà indiquées là, les ajouter ou créer l'installeur Linux Debian ne les a pas déjà indiquées là, les ajouter ou créer
ce fichier). ce fichier):
```bash
# /etc/environment
export HTTP_PROXY=http://proxy.univ-xxx.fr:1234
export HTTPS_PROXY=http://proxy.univ-xxx.fr:1234
# Versions en minuscules utilisées par wget
export http_proxy="${HTTP_PROXY}"
export https_proxy="${HTTPS_PROXY}"
```
Après modification de ce fichier (qui *doit* être lisible par l'utilisateur `scodoc`), Après modification de ce fichier (qui *doit* être lisible par l'utilisateur `scodoc`),
redémarrer le service: redémarrer le service:
```bash ```bash
sudo systemctl restart scodoc sudo systemctl restart scodoc9
``` ```
Dans les cas compliqués, il est possible qu'il vous faille configurer d'autres Dans les cas compliqués, il est possible qu'il vous faille configurer d'autres
@ -305,6 +314,11 @@ bloquage des envois de mails). Au besoin, il est possible de désactiver IPv6
- Mettez en place des [sauvegardes](SauvegardesBases.md) - Mettez en place des [sauvegardes](SauvegardesBases.md)
- Si vous le souhaitez, vous pouvez mettre en place un anti-virus pour
surveiller les fichiers uploadés par les utilisateurs. Les fichiers sont
conservés dans `/opt/scodoc-data`: le plus simple est de faire surveiller tout
ce répertoire sauf `/opt/scodoc-data/logs`.
- Abonnez-vous au moins à la liste d'annonces: voir [contacts](Contact.md) - Abonnez-vous au moins à la liste d'annonces: voir [contacts](Contact.md)
!!! note "Voir aussi" !!! note "Voir aussi"

View File

@ -30,7 +30,9 @@ il faudra donc les importer séparément si on le souhaite (via le menu "Importe
## Procédure à suivre pour le premier semestre (S1) ## Procédure à suivre pour le premier semestre (S1)
Listes Apogée presques complètes, faire l'import depuis le portail fin juillet, puis synchros courant septembre. Voir [SynchroApogee](SynchroApogee.md)
Listes Apogée presques complètes, faire l'import depuis le portail fin juillet,
puis synchros courant septembre. Voir [SynchroApogee](SynchroApogee.md)
* nouveaux etudiants, modifs données personnelles * nouveaux etudiants, modifs données personnelles
@ -38,13 +40,8 @@ Listes Apogée presques complètes, faire l'import depuis le portail fin juillet
## Réinscriptions ## Réinscriptions
Les étudiants ont jusqu'à fin octobre pour se réinscrire, il est probable que les listes
Apogée ne soient pas à jour la semaine de la rentrée. On va donc utiliser le mécanisme de passage interne à ScoDoc,
et faire une synchro fin octobre. Voir [TransitionSemestre](TransitionSemestre.md)
Les étudiants ont jusqu'à fin octobre pour se réinscrire, il est probable que
les listes Apogée ne soient pas à jour la semaine de la rentrée. On va donc
utiliser le mécanisme de passage interne à ScoDoc, et faire une synchro fin
octobre. Voir [TransitionSemestre](TransitionSemestre.md)

View File

@ -1401,3 +1401,10 @@ en POST.
Note: Note:
- `Absences/listeBillets` est un formulaire et ne fait pas partie de l'API. - `Absences/listeBillets` est un formulaire et ne fait pas partie de l'API.
!!! note "Voir aussi"
- [Guide configuration et ligne de commande](GuideConfig.md)
- [Guide administrateur ScoDoc](GuideAdminSys.md)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

View File

@ -5,27 +5,54 @@ 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*: On travaille toujours en tant qu'utilisateur `scodoc`, dans le *virtualenv*:
su scodoc # si nécessaire ```bash
cd /opt/scodoc su scodoc # si nécessaire
source venv/bin/activate cd /opt/scodoc
source venv/bin/activate
```
## Lancement interactif ## Lancement interactif
flask shell ```bash
flask shell
```
Pour mémoire, un certains nombre de commandes en ligne facilitant la gestion de Pour mémoire, un certains nombre de commandes en ligne facilitant la gestion de
ScoDoc sont disponibles, afficher la liste avec ScoDoc sont disponibles, afficher la liste avec
flask --help ```bash
flask --help
```
## Tests unitaires ## Tests unitaires
On utilise `pytest`. Ainsi, la commande On utilise `pytest`. Ainsi, la commande
pytest tests/unit ```bash
pytest tests/unit
```
lance l'ensemble des tests unitaires. lance l'ensemble des tests unitaires.
Ces tests sont lancés automatiquement avant la création du paquet Debian
(release).
Rappelons quelques options utiles de `pytest`: `-x` permet de s'arrêter sur la
première erreur, et `--pdb` lance directement le debugger sur l'erreur.
Ainsi,
```bash
pytest --pdb -x tests/api/test_api_departements.py
```
lancera un test en mode "interactif", utile pour les mises au point.
Et pour lancer un seul test:
```bash
pytest -x --pdb tests/unit/test_but_cursus.py::test_refcomp_niveaux_info
```
### Création de la base de données pour les tests unitaires ### Création de la base de données pour les tests unitaires
```bash ```bash
@ -44,11 +71,15 @@ Un faux portail "apogée" pour inscrire de faux étudiants avec photos. Utile po
Le code se trouve dans `tools/fakeportal/`. Le code se trouve dans `tools/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`. 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: Lancement:
/opt/scodoc/tools/fakeportal/fakeportal.py ```bash
/opt/scodoc/tools/fakeportal/fakeportal.py
```
## Tests de l'API ScoDoc9 ## Tests de l'API ScoDoc9
@ -60,7 +91,7 @@ serveur doit avoir été configuré avec des données de test.
### TL;DR ### TL;DR
Si votre install de développement est bien configurée, il suffit de lancer Si votre installation de développement est bien configurée, il suffit de lancer
```bash ```bash
tools/test_api.sh tools/test_api.sh
@ -68,12 +99,13 @@ tools/test_api.sh
### Configuration du serveur pour tester l'API ### Configuration du serveur pour tester l'API
1. modifier `/opt/scodoc/.env` pour indiquer 1. modifier `/opt/scodoc/.env` pour indiquer
```bash ```bash
FLASK_ENV=test_api FLASK_ENV=test_api
FLASK_DEBUG=1 FLASK_DEBUG=1
``` ```
1. En tant qu'utilisateur scodoc, lancer:
1. En tant qu'utilisateur scodoc, lancer:
```bash ```bash
tools/create_database.sh --drop SCODOC_TEST_API tools/create_database.sh --drop SCODOC_TEST_API
flask db upgrade flask db upgrade
@ -83,9 +115,10 @@ tools/test_api.sh
Ces commandes vont effacer la base `SCODOC_TEST_API` si elle existe, la Ces commandes vont effacer la base `SCODOC_TEST_API` si elle existe, la
recréer, mettre à jour le schéma pour la dernière version de ScoDoc installée, recréer, mettre à jour le schéma pour la dernière version de ScoDoc installée,
l'initialiser et la peupler de données fictives pour les tests. l'initialiser et la peupler de données fictives pour les tests.
3. Relancer ScoDoc:
1. Relancer ScoDoc:
```bash ```bash
flask run --host 0.0.0.0 flask run --host 0.0.0.0 --debug
``` ```
### Configuration du client de test API ### Configuration du client de test API
@ -96,9 +129,10 @@ l'initialiser et la peupler de données fictives pour les tests.
votre serveur). votre serveur).
Normalement, il est suffisant d'indiquer l'URL de votre serveur. Si le Normalement, il est suffisant d'indiquer l'URL de votre serveur. Si le
client de test est sur la même machine que le serveur ScoDoc, c'est simplement: client de test est sur la même machine que le serveur ScoDoc, c'est simplement:
```bash
SCODOC_URL="http://localhost:5000/" ```bash
``` SCODOC_URL="http://localhost:5000/"
```
### Lancement des tests de l'API ### Lancement des tests de l'API
@ -109,11 +143,3 @@ le client (qui peut être un autre shell de la même machine, bien sûr).
cd /opt/scodoc/ cd /opt/scodoc/
pytest tests/api/test_api_xxx.py # remplacer xxx par votre test pytest tests/api/test_api_xxx.py # remplacer xxx par votre test
``` ```
Rappelons quelques options utiles de `pytest`: `-x` permet de s'arrêter sur la
première erreur, et `--pdb` lance directement le débuggueur sur l'erreur.
Ainsi,
```bash
pytest --pdb -x tests/api/test_api_departements.py
```
lancera un test en mode "interactif", utile pour les mises au point.