Compare commits
113 Commits
entreprise
...
master
Author | SHA1 | Date | |
---|---|---|---|
d3d8d4c4a5 | |||
|
5696c36704 | ||
|
f13d2f652c | ||
|
bfbd736603 | ||
|
39baf0241d | ||
|
882e7c5ed8 | ||
|
77b4345e53 | ||
6448fb6a07 | |||
|
63e33c5a7b | ||
|
668e7836af | ||
f56030422e | |||
533a698a09 | |||
f5c93d1a3f | |||
591d622f07 | |||
17b262178d | |||
003158e9b5 | |||
|
905dc4de95 | ||
|
1c83ced1d8 | ||
|
4eab0032a0 | ||
|
53e6bbe24b | ||
3e85d45f94 | |||
e94061c214 | |||
b56018283a | |||
cbeb1fa945 | |||
29bd44fc2e | |||
|
2b5b17bd43 | ||
|
a3e6d1f340 | ||
|
fba82c37c8 | ||
fcb30f02d9 | |||
|
5fd83c918a | ||
eaf21b86f5 | |||
|
fd48c95888 | ||
16b9dbe6cb | |||
d2fab7f619 | |||
|
5bb2f166cc | ||
8d9cb5fae7 | |||
|
49bcfcee1c | ||
|
1b61d49d63 | ||
|
a12c4fe885 | ||
|
5c8de2b9f2 | ||
5b1ad81249 | |||
42f4fe05ff | |||
044c213455 | |||
9352de83b4 | |||
f26fdb2478 | |||
db7dc8cabc | |||
a9caa7625d | |||
bc6b790bbf | |||
24acf76dd4 | |||
94ee633f11 | |||
53dc2982cb | |||
54dd4da541 | |||
|
1250f69535 | ||
e99a066894 | |||
d7bbb11113 | |||
|
d519723e02 | ||
110db52994 | |||
9fadb97c9f | |||
aa2c349bb4 | |||
|
fc6e6e72d2 | ||
570b10ae9d | |||
f8b569e6e8 | |||
c3065894b6 | |||
dfa1a388db | |||
0ff8b9e869 | |||
46e633b129 | |||
bfdae65a39 | |||
|
19b2f06a25 | ||
8d33ce1758 | |||
|
3e56366f0c | ||
|
56c02f6a6c | ||
|
29b4915ef5 | ||
|
e452cbe2d6 | ||
|
ca20ff89e1 | ||
7e32332f4c | |||
f41ff469f8 | |||
|
126c034c58 | ||
e7ae9a6a91 | |||
ccb90ef8b9 | |||
78a51f8697 | |||
6f032db036 | |||
|
c893c96b3b | ||
5ffd0749ea | |||
4b9a044bb2 | |||
|
d7df642b71 | ||
1f9a09c70c | |||
bb1caaf32c | |||
6d1e4d1ece | |||
69c5ad9b23 | |||
|
4d56488159 | ||
|
6360782fb4 | ||
e62c81338d | |||
0e79f99e1a | |||
7cd56f4059 | |||
7f64c8c111 | |||
bec9f78764 | |||
aed7133ab2 | |||
a039e71c06 | |||
e76e441e90 | |||
69e528a5bc | |||
d409fd66a9 | |||
fe583938e0 | |||
8be16fa32e | |||
|
ca7a2fe546 | ||
|
f280ecf541 | ||
|
873c038640 | ||
3825e37fbb | |||
|
a176adf27b | ||
2db0930bca | |||
2d4b651ec7 | |||
b125025eca | |||
d5f2acd896 | |||
6ed0ab6ab7 |
3
.gitignore
vendored
@ -191,3 +191,6 @@ CVS
|
|||||||
|
|
||||||
# MkDocs ScoDoc
|
# MkDocs ScoDoc
|
||||||
site/
|
site/
|
||||||
|
|
||||||
|
# Pycharm
|
||||||
|
.idea/
|
||||||
|
@ -3,32 +3,217 @@
|
|||||||
ScoDoc gère sa liste d'utilisateurs (enseignants, secrétaires) dans
|
ScoDoc gère sa liste d'utilisateurs (enseignants, secrétaires) dans
|
||||||
une base de données SQL.
|
une base de données SQL.
|
||||||
|
|
||||||
|
### Principes généraux
|
||||||
|
|
||||||
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Il est prévu de développer un connecteur vers LDAP, mais ce n'est pas encore disponible (avis aux volontaires, voir https://www-lipn.univ-paris13.fr/projects/scodoc/ticket/140)
|
Depuis ScoDoc 9.0, la liste des utilisateurs est enregistrée dans la base de
|
||||||
|
données unique SCODOC (en production) (voir la partie implémentation pour plus
|
||||||
|
de détails).
|
||||||
|
|
||||||
|
Les entités gérées par scodoc sont :
|
||||||
|
- Les utilisateurs ;
|
||||||
|
- les rôles ;
|
||||||
|
- en liaison avec les départements.
|
||||||
|
|
||||||
|
#### L'entité utilisateur
|
||||||
|
- possède les propriétés habituelles (nom, prénom, user_name, email);
|
||||||
|
- peut être associé à un département ou pas (cas d'un administrateur gérant
|
||||||
|
plusieurs départements);
|
||||||
|
- assure un ou plusieurs rôles.
|
||||||
|
|
||||||
|
#### L'entité rôle
|
||||||
|
Un rôle est le regroupement d'un certain nombre de privilèges.
|
||||||
|
C'est généralement la combinaison d'un département et d'un type d'utilisation.
|
||||||
|
Actuellement au nombre de quatre (d'autres sont prévus, notamment pour le module
|
||||||
|
relations entreprises) :
|
||||||
|
- Administrateur
|
||||||
|
- Secrétariat
|
||||||
|
- Enseignant
|
||||||
|
- Observateur
|
||||||
|
|
||||||
|
par ailleurs, le contexte d'utilisation donne certains privilèges (par exemple
|
||||||
|
la faculté de saisir des notes, de justifier des absences, de modifier la
|
||||||
|
définition des programmes, ...).
|
||||||
|
|
||||||
|
_Exemple:_
|
||||||
|
|
||||||
|
L'utilisateur 'Dupont' est responsable ScoDoc pour son département *RT* mais
|
||||||
|
intervient également en enseignement au département *GEII*.
|
||||||
|
On pourra lui attribuer les rôles `AdminRT` et `EnsGEII`, ce qui lui permettra :
|
||||||
|
|
||||||
|
- de gérer les utilisateurs du (seul) département RT :
|
||||||
|
Privilèges associés : `Gérer les utlisateurs (Sco Users Manage)`, `Changer les
|
||||||
|
formations (Sco Change Formation)`, ...
|
||||||
|
- d'accéder aux vues enseignant pour le département GEII :
|
||||||
|
Privilèges associés : `Voir les parties pour les enseignants (Sco View Ens)`,
|
||||||
|
`Saisir des absences (Sco Change Absences)`, ...
|
||||||
|
|
||||||
|
Pour une description plus fine des privilèges, voir
|
||||||
|
[ConfigPermissions](ConfigPermissions.md)
|
||||||
|
|
||||||
|
### Opérations et cycle de vie des utilisateurs
|
||||||
|
|
||||||
|
Un compte utilisateur peut être modifié par 3 types d'utilisateurs :
|
||||||
|
|
||||||
|
- L'utilisateur lui-même ;
|
||||||
|
- un administrateur du département de rattachement de l'utilisateur ;
|
||||||
|
- le super administrateur.
|
||||||
|
|
||||||
|
Les opérations existantes sont :
|
||||||
|
|
||||||
|
- La création ;
|
||||||
|
- la demande de renouvellement de mot de passe;
|
||||||
|
- la désactivation.
|
||||||
|
|
||||||
|
#### Notes:
|
||||||
|
|
||||||
|
- La suppression d'un utilisateur est impossible (nécessité de garder la trace
|
||||||
|
des anciens historiques), mais on peut le rendre inactif (il n'apparait alors
|
||||||
|
pas dans la liste).)
|
||||||
|
- Le mécanisme de changement de mot de passe de ScoDoc 7 (par envoi d'un nouveau
|
||||||
|
mot de passe par mail) a été remplacé par l'ajout de la mention suivante dans
|
||||||
|
le formulaire de connexion :
|
||||||
|
|
||||||
|
|
||||||
### Base de données utilisateurs
|
` En cas d'oubli de votre mot de passe cliquez ici pour le réinitialiser. `
|
||||||
Il est conseillé de placer la table utilisateurs dans une base de données séparées de celle
|
|
||||||
des notes, afin de pouvoir la partager entre plusieurs UFRs ou départements sans compromettre
|
|
||||||
la sécurité des données. Dans l'installation standard ([GuideInstallDebianDix](GuideInstallDebianDix.md)), il s'agit de la base
|
|
||||||
**SCOUSERS**.
|
|
||||||
|
|
||||||
La table **sco_users** contient:
|
#### Création d'un utilisateur (par formulaire)
|
||||||
|
|
||||||
**Colonne** | **Type** || Contenu
|
La création d'un utilisateur peut être faite par un administrateur ou super
|
||||||
---------- | ----- | -----
|
administrateur. Le lien `Ajouter un utlisateur` permettant cela se trouve dans
|
||||||
user_id | text | identifiant interne unique
|
la page de gestion des utilisateurs (accessible par le menu latéral)
|
||||||
user_name | text | nom de login
|
|
||||||
passwd | text | hash password
|
**Le mot de passe** peut être
|
||||||
roles | text | liste des noms de rôles, séparés par des virgules
|
|
||||||
date_modif_passwd | date |
|
- saisi par le créateur de l'utilisateur (il appartient alors au créateur de
|
||||||
nom | text |
|
communiquer ce mot de passe à l'utilisateur final);
|
||||||
prenom | text |
|
- ou initialisé à une valeur non communiquée, à charge pour l'utilisateur final
|
||||||
email | text | adresse mail
|
de finaliser la création du mot de passe avant d'utiliser son accès (il y est
|
||||||
dept | text | département de rattachement (exemple "RT")
|
invité par un email qui lui est envoyé).
|
||||||
|
|
||||||
|
**Les options de création (mail)** permettent également de choisir parmi les 3
|
||||||
|
scenarii suivants :
|
||||||
|
|
||||||
|
1. un message d'accueil l'invitant à initialiser son mot de passe ;
|
||||||
|
2. un message de bienvenue simple ;
|
||||||
|
3. aucun message.
|
||||||
|
|
||||||
|
Une case à cocher `envoyer un mail d'accueil à l'utlisateur` permet de choisir
|
||||||
|
la troisième option (si décochée), sinon la case suivante `indiquer par mail de
|
||||||
|
changer le mot de passe initial` permet de choisir entre l'option 1 et l'option
|
||||||
|
2.
|
||||||
|
|
||||||
|
Dans tous les cas les mails seront envoyés avec l'adresse de réponse précidée par la valeur de la variable d'environnement
|
||||||
|
`SCODOC_MAIL_FROM` (par défaut `no-reply@{serveur_mail}`). Cette variable peut être initialisée dans le fichier .env par exemple avec la ligne:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
SCODOC_MAIL_FROM=no-reply@univ-exemple.fr
|
||||||
|
```
|
||||||
|
|
||||||
|
**Le département d'appartenance** peut être choisi si le créateur est
|
||||||
|
administrateur pour plusieurs départements. Il aura alors le loisir
|
||||||
|
de sélectionner l'un des départements qu'il administre (liste déroulante).
|
||||||
|
|
||||||
|
#### Création en masse (fichier xlsx)
|
||||||
|
|
||||||
|
Le super-administrateur (et lui seulement) peut également créer des comptes en
|
||||||
|
masse par téléversement d'un fichier au format `.xlsx` par le biais du lien
|
||||||
|
`importer des utilisateurs` de la même page de gestion des utilisateurs.
|
||||||
|
|
||||||
|
La page affichée lui permet d'importer un modèle qu'il doit compléter et re-soumettre à ScoDoc
|
||||||
|
selon le même schéma que la saisie de note par fichier Excel.
|
||||||
|
|
||||||
|
Les colonnes à remplir sont les suivantes :
|
||||||
|
|
||||||
|
- `user_name`: le nom de connexion de l'utilisateur; (obligatoire, unique dans scodoc)
|
||||||
|
- `nom`: le nom de l'utilisateur ; (obligatoire)
|
||||||
|
- `prenom`: le prénom de l'utilisateur ; (obligatoire)
|
||||||
|
- `email`: l'email de l'utilisateur ; (obligatoire, unique dans scodoc)
|
||||||
|
- `roles`: le ou les rôles attribués à l'utilisateur séparés par des virgules (exemple `Admin_RT, Ens_GEII`)
|
||||||
|
- `dept`: le département de rattachement de l'utilisateur (acronyme, en lettres capitales).
|
||||||
|
|
||||||
|
_Note_:
|
||||||
|
|
||||||
|
- Tous les utilisateurs sont créés ou bien aucun.
|
||||||
|
- Un mail est envoyé à chaque utilisateur nouvellement créé.
|
||||||
|
|
||||||
|
#### Changement du mot de passe
|
||||||
|
|
||||||
|
Deux circonstances sont envisagées.
|
||||||
|
|
||||||
|
##### Oubli de mot de passe
|
||||||
|
|
||||||
|
Lorsqu'un utilisateur a perdu son mot de passe, il a la possibilité de retrouver
|
||||||
|
son accès sans intervention d'un administrateur. Il lui suffit de demander la
|
||||||
|
réinitialisation par le lien situé sur la page de connexion. Après renseignement
|
||||||
|
de son email (qui est maintenant identifiant dans scodoc), un mail lui est
|
||||||
|
envoyé. ce mail contient un lien comportant un jeton à durée limitée. Ce lien
|
||||||
|
renvoie vers la page permettant de redéfinir le mot de passe de l'utilisateur.
|
||||||
|
|
||||||
|
##### Edition du profil
|
||||||
|
|
||||||
|
Si l'utilisateur peut se connecter, il peut éditer son profil (et par là,
|
||||||
|
modifier son email et/ou son mot de passe). La barre latérale de l'écran
|
||||||
|
principal de scodoc affiche dans le coin supérieur gauche la version courante de
|
||||||
|
scodoc ainsi que l'identification de l'utilisateur actuel. Un clic sur le nom
|
||||||
|
permet à l'utilsateur d'éditer son profil.
|
||||||
|
|
||||||
|
#### Activation/désactivation
|
||||||
|
|
||||||
|
Une fois créé, le compte utilisateur conserve son existence. Il peut cependant être rendu inactif:
|
||||||
|
|
||||||
|
- soit à l'expiration de la date de validité spécifiée à la création ou lors d'un modification
|
||||||
|
- soit directement par un administrateur.
|
||||||
|
|
||||||
|
Quelle que soit la procédure, le compte existe encore et conserve son email (il
|
||||||
|
n'est donc pas possible de créer un nouveau compte associé au même email). Il
|
||||||
|
est simplement impossible de se connecter ou de modifier le profil de ce compte
|
||||||
|
par l'utilisateur lui-même.
|
||||||
|
|
||||||
|
### Implémentation (pour les développeurs)
|
||||||
|
|
||||||
|
Le graphe d'état ci-dessous explicite les différents états que peux prendre un
|
||||||
|
compte utilisateur en fonction des opérations qu'il subit.
|
||||||
|
|
||||||
|
On notera:
|
||||||
|
|
||||||
|
1. Que la création (1) peut le placer initialement dans deux états différents
|
||||||
|
selon le mode de création choisi.
|
||||||
|
2. Que l'on peut demander le renouvellement du mot de passe plusieurs fois même
|
||||||
|
sans avoir complété la procédure.
|
||||||
|
3. Que les états `créé`et `créé + ticket`permettent la connexion (sous réserve
|
||||||
|
de la connaissance du mot de passe).
|
||||||
|
|
||||||
|
|
||||||
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> encodage `utf-8`, sauf si vous avez modifié l'installation.
|
<img src="/fig/GrapheUser.png" />
|
||||||
|
|
||||||
Pour la signification des rôles et l'utilisation du département, voir [ConfigPermissions](ConfigPermissions.md).
|
**SCODOC**.
|
||||||
|
|
||||||
|
La table **user** contient:
|
||||||
|
|
||||||
|
| **Colonne** | **Type** | Contenu | Modifié par |
|
||||||
|
|-------------------|-----------------------------|--------------------------------------------------------------|----------------|
|
||||||
|
| id | integer | identifiant interne unique | 1 |
|
||||||
|
| user_name | character varying(64) | nom de login | 1 |
|
||||||
|
| email | character varying(120) | adresse mail (unique dans la base) | 1, 6 |
|
||||||
|
|nom | character varying(64) | | 1, 6 |
|
||||||
|
|prenom | character varying(64) | | 1, 6 |
|
||||||
|
|dept | character varying(32) | département de rattachement (identifiant numérique) | 1, 6 |
|
||||||
|
|active | boolean | | 1, 7, 9 |
|
||||||
|
|password_hash | character varying(128) | hash password | 1, 6 |
|
||||||
|
|password_scodoc7 | character varying(42) | deprecated (utilisé lors de la migration scodoc7 > scodoc9) | 1, 2, 4, 5, 6 |
|
||||||
|
|last_seen | timestamp without time zone | date de dernière connexion | 1, A |
|
||||||
|
|date_modif_passwd | timestamp without time zone | | 1, 2, 4, 5, 6 |
|
||||||
|
|date_created | timestamp without time zone | | 1 |
|
||||||
|
|date_expiration | timestamp without time zone | | 1 |
|
||||||
|
|passwd_temp | boolean | deprecated | |
|
||||||
|
|token | text | dernier token émis (changement de mot de passe) | 1a, 3 |
|
||||||
|
|token_expiration | timestamp without time zone | date d'expiration du dernier token émis | 1a, 3 |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;"
|
||||||
|
alt="/!\" /> encodage `utf-8`, sauf si vous avez modifié l'installation.
|
||||||
|
|
||||||
|
Pour la signification des rôles et l'utilisation du département, voir
|
||||||
|
[ConfigPermissions](ConfigPermissions.md).
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ class [BulletinGeneratorExample](BulletinGeneratorExample.md)(sco_bulletins_stan
|
|||||||
"""Un exemple simple de bulletin de notes en version PDF seulement.
|
"""Un exemple simple de bulletin de notes en version PDF seulement.
|
||||||
Part du bulletin standard et redéfini la partie centrale.
|
Part du bulletin standard et redéfini la partie centrale.
|
||||||
"""
|
"""
|
||||||
description = 'exemple (ne pas utiliser)' # la description doit être courte: elle apparait dans le menu de paramètrage
|
description = 'exemple (ne pas utiliser)' # la description doit être courte: elle apparait dans le menu de paramétrage
|
||||||
supported_formats = [ 'pdf' ] # indique que ce générateur ne peut produire que du PDF (la version web sera donc celle standard de [ScoDoc](ScoDoc.md))
|
supported_formats = [ 'pdf' ] # indique que ce générateur ne peut produire que du PDF (la version web sera donc celle standard de [ScoDoc](ScoDoc.md))
|
||||||
|
|
||||||
# En général, on veut définir un format de table spécial, sans changer le reste (titre, pied de page).
|
# En général, on veut définir un format de table spécial, sans changer le reste (titre, pied de page).
|
||||||
|
47
docs/BUT.md
@ -1,5 +1,15 @@
|
|||||||
|
|
||||||
# Le BUT
|
# Le Bachelor Universitaire de Technologie (BUT)
|
||||||
|
|
||||||
|
Formation en trois ans dispensées par les IUT français, introduite en 2021, et
|
||||||
|
basée sur une forme d'approche par compétences nécessitant un système
|
||||||
|
d'évaluation spécifique.
|
||||||
|
|
||||||
|
Cette page décrit les principaux éléments du BUT utiles à comprendre pour le
|
||||||
|
gérer avec ScoDoc. Pour les curieux, la page
|
||||||
|
[modélisation des parcours BUT](ModelisationParcoursBUT.md)
|
||||||
|
donne quelques détails sur la façon dont ScoDoc organise les objets du BUT.
|
||||||
|
|
||||||
|
|
||||||
## UE, modules, évaluations
|
## UE, modules, évaluations
|
||||||
|
|
||||||
@ -43,7 +53,7 @@ niveaux) et UEs.
|
|||||||
|
|
||||||
## Calcul des notes
|
## Calcul des notes
|
||||||
|
|
||||||
Les rôles des SAÉ et ressources étant symétriques, on appellera dans al suite (et
|
Les rôles des SAÉ et ressources étant symétriques, on appellera dans la suite (et
|
||||||
dans ScoDoc) *module* un objet de type SAÉ _ou_ ressource.
|
dans ScoDoc) *module* un objet de type SAÉ _ou_ ressource.
|
||||||
|
|
||||||
Dans la suite, on considère les poids et coefficients toujours positifs ou
|
Dans la suite, on considère les poids et coefficients toujours positifs ou
|
||||||
@ -80,7 +90,7 @@ réduit d'apprentissages critiques:
|
|||||||
|
|
||||||
La note (moyenne) d'un module (SAÉ ou ressource) se calcule à partir de ses
|
La note (moyenne) d'un module (SAÉ ou ressource) se calcule à partir de ses
|
||||||
évaluations. Chaque évaluation est pondérée, par un poids $p$ est fixé par
|
évaluations. Chaque évaluation est pondérée, par un poids $p$ est fixé par
|
||||||
l'enseignant. ce poids joue le même rôle que le coefficient d'une évaluation
|
l'enseignant. Ce poids joue le même rôle que le coefficient d'une évaluation
|
||||||
classique, mais peut se décliner en plusieurs valeurs, une par UE associée au
|
classique, mais peut se décliner en plusieurs valeurs, une par UE associée au
|
||||||
module.
|
module.
|
||||||
|
|
||||||
@ -96,7 +106,7 @@ une UE $u$ *doit* être non nulle; si ce n'est pas le cas, le module sera décla
|
|||||||
|
|
||||||
|
|
||||||
### Moyenne de module (SAÉ ou ressource)
|
### Moyenne de module (SAÉ ou ressource)
|
||||||
La moyenne d'un module est un vecteur, car on a une note moyenne par UE:
|
La moyenne d'un étudiant dans un module est un vecteur, car on a une note moyenne par UE:
|
||||||
|
|
||||||
$$\mu_{m, u} = \frac{\sum_e p_{e,u} \, n_e}{\sum_{e} \, p_{u,e}}$$
|
$$\mu_{m, u} = \frac{\sum_e p_{e,u} \, n_e}{\sum_{e} \, p_{u,e}}$$
|
||||||
|
|
||||||
@ -110,7 +120,7 @@ $$\mu_m = \frac{\sum_e (\sum_u p_{e,u}) \, n_e}{\sum_{u,e} \, p_{u,e}}$$
|
|||||||
|
|
||||||
On va considérer les coefficients de modules et d'évaluations:
|
On va considérer les coefficients de modules et d'évaluations:
|
||||||
|
|
||||||
$$\mu_u = \frac{1}{\sum_m c_{u,m}} \, \sum_{m \in u} c_{u,m} \, \frac{\sum_e p_{e,u} \, n_e}{\sum_{e} \, p_{u,e}}$$
|
$$\mu_u = \frac{1}{\sum_m c_{u,m}} \, \sum_{m \in u} c_{u,m} \, \frac{\sum_e p_{e,u} \, n_e}{\sum_{e} \, p_{e,u}}$$
|
||||||
|
|
||||||
L'exemple suivant illustre ce mode de calcul:
|
L'exemple suivant illustre ce mode de calcul:
|
||||||
|
|
||||||
@ -162,14 +172,33 @@ Les conditions de passages vers l'année suivante sont:
|
|||||||
3. Cas particulier du passage en BUT 3: nécessité d’avoir validé toutes les UE
|
3. Cas particulier du passage en BUT 3: nécessité d’avoir validé toutes les UE
|
||||||
du BUT 1.
|
du BUT 1.
|
||||||
|
|
||||||
TODO *à compléter suivant l'arrêté.*
|
Note: La validation des deux UE du niveau d’une compétence emporte la validation de
|
||||||
> La validation des deux UE du niveau d’une compétence emporte la validation de
|
l’ensemble des UE du niveau inférieur de cette même compétence.
|
||||||
> l’ensemble des UE du niveau inférieur de cette même compétence.
|
|
||||||
|
### Redoublements
|
||||||
|
La poursuite d'études dans un semestre pair d’une même année est *de droit* pour
|
||||||
|
tout étudiant. La poursuite d’études dans un semestre impair est possible si et
|
||||||
|
seulement si l’étudiant a obtenu :
|
||||||
|
|
||||||
|
- la moyenne à plus de la moitié des regroupements cohérents d’UE ;
|
||||||
|
- et une moyenne égale ou supérieure à 8 sur 20 à chaque regroupement cohérent
|
||||||
|
d’UE. La poursuite d'études dans le semestre 5 nécessite de plus la validation
|
||||||
|
de toutes les UE des semestres 1 et 2 dans les conditions de validation des
|
||||||
|
points 4.3 et 4.4, ou par décision de jury.
|
||||||
|
|
||||||
|
Durant la totalité du cursus conduisant au bachelor universitaire de
|
||||||
|
technologie, l'étudiant peut être autorisé à redoubler une seule fois chaque
|
||||||
|
semestre dans la limite de *4 redoublements*. Le directeur de l'IUT peut autoriser
|
||||||
|
un redoublement supplémentaire en cas de force majeure dûment justifiée et
|
||||||
|
appréciée par ses soins. Tout refus d'autorisation de redoubler est pris après
|
||||||
|
avoir entendu l'étudiant à sa demande. Il doit être motivé et assorti de
|
||||||
|
conseils d'orientation.
|
||||||
|
|
||||||
|
|
||||||
### Obtention du diplôme
|
### Obtention du diplôme
|
||||||
|
|
||||||
TODO à rédiger à partir de l'arrêté.
|
Le diplôme de BUT est obtenu lorsque toutes les compétences du parcours suivi
|
||||||
|
sont validées.
|
||||||
|
|
||||||
### Modules "bonus" (sport, culture, LV2)
|
### Modules "bonus" (sport, culture, LV2)
|
||||||
|
|
||||||
|
@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
*Tout ce que vous avez toujours voulu savoir sur le calcul des moyennes...*
|
*Tout ce que vous avez toujours voulu savoir sur le calcul des moyennes...*
|
||||||
|
|
||||||
|
**Attention :** Les informations ci-dessous s'appliquent aux formations traditionnelles.
|
||||||
|
Pour les formations par compétences, voir [la page dédiée au BUT](BUT.md).
|
||||||
|
|
||||||
### En résumé:
|
### En résumé:
|
||||||
|
|
||||||
|
@ -7,13 +7,38 @@ Quelques indications pour développer avec ScoDoc 7.x, à adapter à vos goûts
|
|||||||
Il est confortable de développer dans une VM (un container Docker ferait
|
Il est confortable de développer dans une VM (un container Docker ferait
|
||||||
aussi bien l'affaire).
|
aussi bien l'affaire).
|
||||||
|
|
||||||
## Conseils pour VirtualBox
|
## Conseils pour la machine virtuelle
|
||||||
[VirtualBox](https://www.virtualbox.org/) est facile à installer sur Mac, Linux ou Windows. Créer une VM avec Debian 10, et suivre la [procédure habituelle d'installation de ScoDoc](GuideInstallDebian11.md). XXX
|
|
||||||
|
|
||||||
En général, vous préférez développer sur la machine hôte pour disposer de votre éditeur préféré. Mais vous exécutez ScoDoc dans la VM.
|
[VirtualBox](https://www.virtualbox.org/) est facile à installer sur Linux ou
|
||||||
|
Windows. Créer une VM avec Debian 10, et suivre la [procédure habituelle
|
||||||
|
d'installation de ScoDoc](GuideInstallDebian11.md).
|
||||||
|
|
||||||
### Configuration réseau
|
Sur les Macs anciens (processeurs Intel), VirtualBox fonctionne bien. Sur les
|
||||||
La VM a besoin d'accéder à Internet pour l'installation, et aussi pour les mises à jour et peut-être certains tests que vous voudrez lancer. L'accès à la VM depuis l'hôte doit être possible via un réseau privé interne (car vous ne serez pas toujours conencté à Internet, et ne souhaitez pas que l'on accède à votre serveur de test de l'extérieur).
|
modèles "M1" (Apple Silicon), je conseille d'utiliser
|
||||||
|
[UTM](https://mac.getutm.app/) qui est facile à installer et très performant. On
|
||||||
|
installe alors une VM avec la distribution Linux Debian pour l'architecture
|
||||||
|
`arm64` (nous ne produisons pas de paquets Debian `arm64` pour ScoDoc 9, mais
|
||||||
|
l'installation est simple, ne pas hésiter à demander sur le Discord).
|
||||||
|
|
||||||
|
En général, vous préférez développer sur la machine hôte pour disposer de votre
|
||||||
|
éditeur préféré, mais exécutez ScoDoc dans la VM.
|
||||||
|
|
||||||
|
### Éditeur de texte / IDE
|
||||||
|
Si vous êtes expérimenté, vous avez vos outils préférés. Mais si vous débutez,
|
||||||
|
surtout pour un environnement de développement distant (le code développé tourne
|
||||||
|
dans une machine virtuelle ou réelle séparée de votre machine de burea), nous
|
||||||
|
vous conseillons **VS Code** avec le module
|
||||||
|
[*Remote-SSH*](https://code.visualstudio.com/docs/remote/ssh). Ceci vous évite
|
||||||
|
de fastidieuses configurations de partage de fichiers entre les machine, il
|
||||||
|
suffit d'une connexion SSH fonctionnelle.
|
||||||
|
|
||||||
|
### Configuration réseau de VirtualBox
|
||||||
|
|
||||||
|
La VM a besoin d'accéder à Internet pour l'installation, et aussi pour les mises
|
||||||
|
à jour et peut-être certains tests que vous voudrez lancer. L'accès à la VM
|
||||||
|
depuis l'hôte doit être possible via un réseau privé interne (car vous ne serez
|
||||||
|
pas toujours conencté à Internet, et ne souhaitez pas que l'on accède à votre
|
||||||
|
serveur de test de l'extérieur).
|
||||||
|
|
||||||
Modifier la config réseau via l'UI graphique de VirtualBox, la VM étant éteinte.
|
Modifier la config réseau via l'UI graphique de VirtualBox, la VM étant éteinte.
|
||||||
|
|
||||||
@ -33,7 +58,8 @@ Dans le Debian, j'utilise `/etc/network/interfaces`
|
|||||||
|
|
||||||
(le `enp0s3` désigne chez moi l'`Adapter 1`, mais c'est susceptible de changer. Normalement, l'installeur créé ce fichier )
|
(le `enp0s3` désigne chez moi l'`Adapter 1`, mais c'est susceptible de changer. Normalement, l'installeur créé ce fichier )
|
||||||
|
|
||||||
Pour lancer l'interface externe , quand on a besoin d'accéder à Internet depuis la VM (en fait assez rarement):
|
Pour lancer l'interface externe , quand on a besoin d'accéder à Internet depuis
|
||||||
|
la VM (en fait assez rarement):
|
||||||
|
|
||||||
dhclient enp0s8
|
dhclient enp0s8
|
||||||
|
|
||||||
@ -46,13 +72,20 @@ Modifier le `/etc/hosts` (ou équivalent) de l'hôte, et y ajouter l'IP de votre
|
|||||||
|
|
||||||
|
|
||||||
### Partage de fichiers
|
### Partage de fichiers
|
||||||
Pour éditer votre code au chaud sur votre hôte, il y a plein de solutions. L'une consiste à laisser le code dans la VM, mais de monter un répertoire (par exemple `/opt`) sur l'hôte, par exemple via `sshfs`.
|
Pour éditer votre code au chaud sur votre hôte, il y a plein de solutions.
|
||||||
|
La plus simple, déjà mentionnée, consiste à passer par une connexion SSH (VS
|
||||||
|
Code propose un module dédié très simple et performant, mais tout montage de
|
||||||
|
type `sshfs`peut aussi faire l'affaire).
|
||||||
|
|
||||||
Une autre solution (que j'utilise sur mon MacBook), est de laisser le source (clone git) sur l'hôte, et de partager ce répertoire avec la VM.
|
|
||||||
|
|
||||||
Dans VirtualBox / config. VM / Dossiers partagés, ajouter un partage. Par exemple, vous mettez vos sources sur l'hôte dans `~/src`, et dans la VM sur `/src`.
|
Une autre solution est de laisser le source (clone git) sur l'hôte, et de
|
||||||
Dans ScoDoc, `/opt/scodoc/Products/ScoDoc` est alors un lien symbolique vers votre `src/ScoDoc`.
|
partager ce répertoire avec la VM. Dans VirtualBox / config. VM / Dossiers
|
||||||
|
partagés, ajouter un partage. Par exemple, vous mettez vos sources sur l'hôte
|
||||||
|
dans `~/src`, et dans la VM sur `/src`.
|
||||||
|
Dans ScoDoc, `/opt/scodoc/Products/ScoDoc` est alors un lien symbolique vers
|
||||||
|
votre `src/ScoDoc`.
|
||||||
|
|
||||||
|
#### Détails sur les partages avec VirtualBox
|
||||||
Pour pouvoir utiliser des liens symboliques dans le partage:
|
Pour pouvoir utiliser des liens symboliques dans le partage:
|
||||||
|
|
||||||
VBoxManage setextradata "Debian11" VBoxInternal2/SharedFoldersEnableSymlinksCreate/src 1
|
VBoxManage setextradata "Debian11" VBoxInternal2/SharedFoldersEnableSymlinksCreate/src 1
|
||||||
@ -75,7 +108,7 @@ Il arrive (?) que Virtual Box change les droits unix sur les fichiers partagés.
|
|||||||
|
|
||||||
git diff -p -R --no-color | grep -E "^(diff|(old|new) mode)" --color=never | git apply
|
git diff -p -R --no-color | grep -E "^(diff|(old|new) mode)" --color=never | git apply
|
||||||
|
|
||||||
# Interaction avec ScoDoc 7
|
# Interaction avec ScoDoc 7 (ancien ScoDoc, avant l'été 2021)
|
||||||
|
|
||||||
ScoDoc 7 utilise Zope, et ce n'est pas un environnement commode pour débugguer.
|
ScoDoc 7 utilise Zope, et ce n'est pas un environnement commode pour débugguer.
|
||||||
|
|
||||||
|
35
docs/FAQ.md
@ -17,7 +17,8 @@ L'avenir du logiciel dépend donc de vous: adhérez, ou incitez votre institutio
|
|||||||
|
|
||||||
## Utilisation de ScoDoc
|
## Utilisation de ScoDoc
|
||||||
### Comment prendre en compte les notes de sport ou autres bonus ?
|
### Comment prendre en compte les notes de sport ou autres bonus ?
|
||||||
Voir [CalculNotes](CalculNotes.md)
|
Voir [CalculNotes](CalculNotes.md), ou bien
|
||||||
|
[le tutoriel vidéo par Cédric C.](https://www.youtube.com/watch?v=SVbjuDpq-lI&list=PLw49h6RbvswhasBk9bXj7PzOD8GDW3kG1&index=13).
|
||||||
|
|
||||||
|
|
||||||
### Qui peut voir les notes, et quand ?
|
### Qui peut voir les notes, et quand ?
|
||||||
@ -100,47 +101,39 @@ garantie. Mais nous faisons de notre mieux:
|
|||||||
|
|
||||||
- si vous êtes utilisateurs, écrire à
|
- si vous êtes utilisateurs, écrire à
|
||||||
[notes@listes.univ-paris13.fr](mailto:notes@listes.univ-paris13.fr).
|
[notes@listes.univ-paris13.fr](mailto:notes@listes.univ-paris13.fr).
|
||||||
|
ou joindre le canal Discord Assistance.
|
||||||
|
|
||||||
- si vous êtes informaticien et voulez évoquer un problème technique
|
- si vous êtes informaticien et voulez évoquer un problème technique
|
||||||
(développement, installation), écrire à
|
(développement, installation), écrire à
|
||||||
[scodoc-devel@listes.univ-paris13.fr](mailto:scodoc-devel@listes.univ-paris13.fr).
|
[scodoc-devel@listes.univ-paris13.fr](mailto:scodoc-devel@listes.univ-paris13.fr).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Configuration
|
## Configuration
|
||||||
### Comment changer les logos sur les documents PDF (PV...)
|
### Comment changer les logos sur les documents PDF (PV...)
|
||||||
|
|
||||||
|
Il faut avoir un compte (web) administrateur sur ScoDoc, et passer
|
||||||
Il faut (pour l'instant) être administrateur sur le serveur ScoDoc, et passer
|
par l'onglet "configuration" accessible sur la page d'accueil.
|
||||||
par l'onglet "configuration" accessible aux admins sur la page d'accueil.
|
Voir [la page sur la gestion des logos et images ](GestionLogos.md).
|
||||||
|
|
||||||
Les logos sont stockés dans le répertoire `/opt/scodoc-data/config/logos/` et
|
|
||||||
doivent être des images JPEG (extension `.jpg`). Il faut aussi indiquer les
|
|
||||||
tailles des images dans le fichier de configuration `config/scodoc_config.py`,
|
|
||||||
variable `CONFIG.LOGO_FOOTER_HEIGHT` etc.
|
|
||||||
|
|
||||||
* Sur les PV, `logo_header.jpg` est affiché en haut, et `logo_header.jpg` en bas de la page.
|
|
||||||
* Sur les bulletins de notes, c'est configurable (et on peut utiliser d'autres
|
|
||||||
logos), voir [ParametrageBulletins](ParametrageBulletins.md)
|
|
||||||
|
|
||||||
|
|
||||||
### Administration
|
### Administration
|
||||||
|
|
||||||
### Quel système d'exploitation ?
|
### Quel système d'exploitation ?
|
||||||
ScoDoc est accessible depuis n'importe quel navigateur Web (Firefox, Chrome, ...).
|
ScoDoc est accessible depuis n'importe quel navigateur Web (Firefox, Chrome, ...).
|
||||||
|
|
||||||
Le serveur ScoDoc fonctionne sous linux. Il n'est testé qu'avec Debian (stable).
|
Le serveur ScoDoc fonctionne sous Linux. Il n'est testé qu'avec Debian (stable).
|
||||||
Le script d'installation ( [GuideInstallDebian11](GuideInstallDebian11.md) )
|
Le script d'installation ([GuideInstallDebian11](GuideInstallDebian11.md))
|
||||||
assure l'installation de tout les éléments nécessaires au bon fonctionnement de
|
assure l'installation de tout les éléments nécessaires au bon fonctionnement de
|
||||||
ScoDoc. Une distribution sous forme de container Docker est envisagée.
|
ScoDoc.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Quand et comment mettre à jour le logiciel ?
|
### Quand et comment mettre à jour le logiciel ?
|
||||||
|
Les mises à jour sont normalement automatiquement appliquées chaque nuit,
|
||||||
|
assurant la sécurité et l'actualisation de ScoDoc.
|
||||||
|
|
||||||
Des améliorations et corrections sont fréquemment introduites. Les plus
|
Des améliorations et corrections sont fréquemment introduites. Les plus
|
||||||
importantes sont annoncées sur la liste de diffusion
|
importantes sont annoncées sur la liste de diffusion
|
||||||
"[scodoc-annonces](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-annonces)".
|
"[scodoc-annonces](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-annonces)".
|
||||||
Les mises à jour sont normalement automatiquement appliquées chaque semaine.
|
|
||||||
Voir aussi la page [MisesAJour](MisesAJour.md).
|
Voir aussi la page [MisesAJour](MisesAJour.md).
|
||||||
|
|
||||||
|
|
||||||
|
@ -115,9 +115,8 @@ pour un semestre de formation.
|
|||||||
Il s'agit d'un document PDF en format paysage, à imprimer sur
|
Il s'agit d'un document PDF en format paysage, à imprimer sur
|
||||||
papier ordinaire A4.
|
papier ordinaire A4.
|
||||||
|
|
||||||
Les logos (IUT en haut, université en pied de page) ne sont actuellement pas
|
Les logos (IUT en haut, université en pied de page) sont
|
||||||
paramétrables par l'utilisateur (il faut installer les images dans le sous-répertoire
|
paramétrables par l'utilisateur: voir [configuration des logos](GestionLogos.md).
|
||||||
`logos` du logiciel).
|
|
||||||
|
|
||||||
|
|
||||||
### Lettres d'avis individuelles
|
### Lettres d'avis individuelles
|
||||||
|
53
docs/GestionLogos.md
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
|
||||||
|
# Gestions des logos et fonds de documents
|
||||||
|
|
||||||
|
Images (logos ou autre) à afficher sur des documents PDF générés par ScoDoc:
|
||||||
|
|
||||||
|
* Sur les PV, `logo_header.jpg` est affiché en haut, et `logo_header.jpg` en bas de la page.
|
||||||
|
* Sur les bulletins de notes, c'est configurable (et on peut utiliser d'autres
|
||||||
|
logos), voir [ParametrageBulletins](ParametrageBulletins.md)
|
||||||
|
* Fonds de page: charger une image nommée `pvjury_background` pour les PV de
|
||||||
|
jury (en format paysage) ou `letter_background`pour les bulletins et lettres
|
||||||
|
de jury (en format portrait). Voir [paramétrage des PV](ParametragePV.md).
|
||||||
|
|
||||||
|
Ces images peuvent être chargées ou modifiées par l'administrateur via le menu
|
||||||
|
"*configuration*" sur la page d'accueil de ScoDoc.
|
||||||
|
|
||||||
|
|
||||||
|
## Informations techniques pour les développeurs et administrateurs curieux.
|
||||||
|
|
||||||
|
Normalement, l'administrateur n'a pas besoin d'intervenir dans les répertoires
|
||||||
|
mentionnés ci-dessous (sauf pour veiller à ce que `/opt/scodoc-data` soit bien
|
||||||
|
sauvegardé ou transféré lors des migrations).
|
||||||
|
|
||||||
|
La totalité des opérations nécessaires à l'utilisation de ScoDoc peuvent être
|
||||||
|
réalisées par le menu de configuration des logos.
|
||||||
|
|
||||||
|
### Fichiers et répertoires associés aux logos
|
||||||
|
|
||||||
|
Les images (logos et fonds de document) sont enregistrées dans le répertoire `/opt/scodoc-data/config/logos` et ses sous-répertoires.
|
||||||
|
|
||||||
|
Les images ajoutées par les utilisateurs ont toutes un nom de la forme `logo_<nom>.png` ou `logo_<nom>.jpg`
|
||||||
|
(`<nom>` représente le nom d'usage du logo : *header*, *footer*, signature, ... au choix de l'utilisateur)
|
||||||
|
Les sous-répertoires ont des noms de la forme `logos_<dept>` où `<dept>` est
|
||||||
|
l'identifiant numérique du département
|
||||||
|
(la commande `flask list-depts` donne la correspondance cf. [Administration en ligne de commande](GuideConfig.md)).
|
||||||
|
|
||||||
|
Les **fonds de page** se distinguent uniquement des logos par leur nom (`<ext>` peut être soit `jpg`ou `png`) :
|
||||||
|
|
||||||
|
| Document | nom | fichier |
|
||||||
|
|----------------------------------|-------------------------|--------------------------------|
|
||||||
|
| PV de jury | pvjury_background | `logo_pvjury_background.<ext>` |
|
||||||
|
| bulletin de note | letter_background | `logo_letter_background.<ext>` |
|
||||||
|
| lettre individuelle de décision | letter_background | `logo_letter_background.<ext>` |
|
||||||
|
|
||||||
|
### Note: héritage scodoc7
|
||||||
|
|
||||||
|
Les serveurs ScoDoc 7 utilisaient pour les fonds de page, des fichiers de nom
|
||||||
|
`letter_background.<ext>` et `pvjury_background.<ext>`. Lors de la migration
|
||||||
|
depuis ScoDoc 7, ces fichiers ont placés dans le même répertoire que les images
|
||||||
|
scodoc9. Pour assurer la compatibilité ascendante, leur présence est
|
||||||
|
exceptionnellement prise en compte. Bien évidemment, si un fichier scodoc9 (donc
|
||||||
|
avec le préfixe `logo_`) est présent, il est prioritaire sur le fond de page
|
||||||
|
"historique".
|
||||||
|
|
@ -11,10 +11,6 @@ Utilisez un **serveur virtuel** ou un container Docker si vous n'avez pas de mac
|
|||||||
* Migration d'un serveur ScoDoc 7 vers la nouvelle version Scodoc 9: [MigrationScoDoc7a9](MigrationScoDoc7a9.md)
|
* Migration d'un serveur ScoDoc 7 vers la nouvelle version Scodoc 9: [MigrationScoDoc7a9](MigrationScoDoc7a9.md)
|
||||||
|
|
||||||
|
|
||||||
(Les personnes ayant besoin d'installer l'ancienne version ScoDoc 7 peuvent se
|
|
||||||
référer à [GuideInstallDebianDix](GuideInstallDebianDix.md) ou
|
|
||||||
[GuideInstallDebianNeuf](GuideInstallDebianNeuf.md).)
|
|
||||||
|
|
||||||
## Mises à jour et sauvegardes
|
## Mises à jour et sauvegardes
|
||||||
|
|
||||||
* [Mettre à jour du logiciel (nouvelles versions)](MisesAJour.md)
|
* [Mettre à jour du logiciel (nouvelles versions)](MisesAJour.md)
|
||||||
@ -23,18 +19,20 @@ référer à [GuideInstallDebianDix](GuideInstallDebianDix.md) ou
|
|||||||
|
|
||||||
## Configuration et préférences
|
## Configuration et préférences
|
||||||
|
|
||||||
|
* [Administration en ligne de commande](GuideConfig.md)
|
||||||
* [ConfigPermissions](ConfigPermissions.md) : description des permissions et rôles utilisés par le système.
|
* [ConfigPermissions](ConfigPermissions.md) : description des permissions et rôles utilisés par le système.
|
||||||
* [ Paramétrage](PreferencesScoDoc.md): réglage des préférences
|
* [Paramétrage](PreferencesScoDoc.md): réglage des préférences
|
||||||
|
|
||||||
## Autres problèmes
|
## Autres problèmes
|
||||||
|
|
||||||
* [Problèmes configuration des envois mail](ProblemesMail.md)
|
* [Problèmes configuration des envois mail](ProblemesMail.md)
|
||||||
|
* [Gestion des logos et fonds de documents](GestionLogos.md)
|
||||||
* [ProblemesEtBugs](ProblemesEtBugs.md) en cas d'ennuis.
|
* [ProblemesEtBugs](ProblemesEtBugs.md) en cas d'ennuis.
|
||||||
|
|
||||||
## Utilisation avancée
|
## Utilisation avancée
|
||||||
|
|
||||||
* [Interfaçage avec Apogée](ScoDocApogee.md)
|
* [Interfaçage avec Apogée](ScoDocApogee.md)
|
||||||
* [API](ScoDocAPI.md) : API JSON ou XML pour interfaçage avec d'autres applications
|
* [API](ScoDoc9API.md) : API JSON ou XML pour interfaçage avec d'autres applications
|
||||||
* [ServicesXml](ServicesXml.md) : web services XML pour interfaçage avec d'autres applications (obsolète).
|
* [ServicesXml](ServicesXml.md) : web services XML pour interfaçage avec d'autres applications (obsolète).
|
||||||
* [AdminUsers](AdminUsers.md) : gestion des utilisateurs
|
* [AdminUsers](AdminUsers.md) : gestion des utilisateurs
|
||||||
* [InterrogationPortail](InterrogationPortail.md) : liaison avec portail
|
* [InterrogationPortail](InterrogationPortail.md) : liaison avec portail
|
||||||
|
@ -1,15 +1,14 @@
|
|||||||
|
|
||||||
# Prise en main et paramétrage de ScoDoc 9
|
## Prise en main et paramétrage de ScoDoc 9
|
||||||
|
|
||||||
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Cette
|
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Cette
|
||||||
page concerne la version ScoDoc 9, distribuée à partir de septembre 2021. Pour l'ancienne
|
page concerne la version ScoDoc 9, distribuée à partir de septembre 2021.
|
||||||
version, voir [cette page](GuideConfig7.md).
|
|
||||||
|
|
||||||
Ce document suppose que le logiciel a été installé suivant la procédure décrite dans
|
Ce document suppose que le logiciel a été installé suivant la procédure décrite dans
|
||||||
[GuideInstallDebian11](GuideInstallDebian11.md).
|
[GuideInstallDebian11](GuideInstallDebian11.md).
|
||||||
|
|
||||||
|
|
||||||
# Administration en ligne de commande
|
## Administration en ligne de commande
|
||||||
|
|
||||||
Les opérations d'administration se résument à la création de départements, et l'installation
|
Les opérations d'administration se résument à la création de départements, et l'installation
|
||||||
des logos, et la création d'utilisateurs "super admin", c'est à dire admin pour tous les
|
des logos, et la création d'utilisateurs "super admin", c'est à dire admin pour tous les
|
||||||
@ -32,30 +31,30 @@ Après quoi, vous pouvez utiliser les commandes décrites ci-dessous.
|
|||||||
*Attention: le lancement de chaque commande est assez long (quelques secondes)
|
*Attention: le lancement de chaque commande est assez long (quelques secondes)
|
||||||
car toute l'application scodoc est initialisée à chaque fois.*
|
car toute l'application scodoc est initialisée à chaque fois.*
|
||||||
|
|
||||||
## Création d'un département
|
### Création d'un département
|
||||||
|
|
||||||
flask create-dept DEPT
|
flask create-dept DEPT
|
||||||
|
|
||||||
où `DEPT` est l'acronyme du département, par exemple "RT". Ce département
|
où `DEPT` est l'acronyme du département, par exemple "RT". Ce département
|
||||||
apparait immédiatement sur la page d'accueil.
|
apparait immédiatement sur la page d'accueil.
|
||||||
|
|
||||||
## Suppression d'un département
|
### Suppression d'un département
|
||||||
|
|
||||||
Opération très rarement nécessaire, proposée pour corriger une erreur
|
Opération très rarement nécessaire, proposée pour corriger une erreur
|
||||||
immédiatement après la création.
|
immédiatement après la création.
|
||||||
|
|
||||||
flask delete-dept DEPT
|
flask delete-dept DEPT
|
||||||
|
|
||||||
## Création d'un utilisateur
|
### Création d'un utilisateur
|
||||||
Cette opération s'effectue en général depuis le logiciel, via un formulaire
|
Cette opération s'effectue en général depuis le logiciel, via un formulaire
|
||||||
ou un import excel. Pour créer un utilisateur depuis le terminal, lancer:
|
ou un import Excel. Pour créer un utilisateur depuis le terminal, lancer:
|
||||||
|
|
||||||
flask user-create LOGIN ROLE DEPT
|
flask user-create LOGIN ROLE DEPT
|
||||||
|
|
||||||
où `LOGIN` sera le pseudo de l'utilisateur (utilisé pour se connecter),
|
où `LOGIN` sera le pseudo de l'utilisateur (utilisé pour se connecter),
|
||||||
et `ROLE` le rôle (`Ens`, `Secr`, `Admin`) dans le département `DEPT`.
|
et `ROLE` le rôle (`Ens`, `Secr`, `Admin`) dans le département `DEPT`.
|
||||||
|
|
||||||
## Création d'un super-administrateur
|
### Création d'un super-administrateur
|
||||||
|
|
||||||
Il s'agit d'un utilisateur ayant tous les droits, comme s'il était
|
Il s'agit d'un utilisateur ayant tous les droits, comme s'il était
|
||||||
`Admin` dans tous les départements.
|
`Admin` dans tous les départements.
|
||||||
@ -64,7 +63,7 @@ Il s'agit d'un utilisateur ayant tous les droits, comme s'il était
|
|||||||
|
|
||||||
où `admin2` est ici le pseudo du nouvel admin.
|
où `admin2` est ici le pseudo du nouvel admin.
|
||||||
|
|
||||||
## Changement du mot de passe d'un utilisateur
|
### Changement du mot de passe d'un utilisateur
|
||||||
Cette opération peut s'effectuer via la page de gestion web des
|
Cette opération peut s'effectuer via la page de gestion web des
|
||||||
utilisateurs, mais il est parfois commode de le faire depuis la
|
utilisateurs, mais il est parfois commode de le faire depuis la
|
||||||
console:
|
console:
|
||||||
@ -74,22 +73,36 @@ console:
|
|||||||
où `LOGIN` est le pseudo de l'utilisateur. Le mot de passe est demandé
|
où `LOGIN` est le pseudo de l'utilisateur. Le mot de passe est demandé
|
||||||
sur la ligne de commande.
|
sur la ligne de commande.
|
||||||
|
|
||||||
## Création d'un nouveau rôle
|
### Création d'un nouveau rôle
|
||||||
|
|
||||||
flask create-role role_name [permissions...]
|
flask create-role role_name [permissions...]
|
||||||
|
|
||||||
Exemple: création d'une rôle "Observateur" ayant juste la persmision de "voir":
|
Exemple: création d'une rôle "Observateur" ayant juste la permission de "voir":
|
||||||
|
|
||||||
flask create-role Observateur ScoView
|
flask create-role Observateur ScoView
|
||||||
|
|
||||||
## Édition d'un rôle (ajout/retrait permissions)
|
### Édition d'un rôle (ajout/retrait permissions)
|
||||||
|
|
||||||
flask edit-role [-a permission] [-r permission] role_name
|
flask edit-role [-a permission] [-r permission] role_name
|
||||||
|
|
||||||
Ajoute ou retire une permission.
|
Ajoute ou retire une permission.
|
||||||
|
|
||||||
|
### Ajout/retrait d'un rôle à un utilisateur
|
||||||
|
|
||||||
## Migration des données de ScoDoc 7
|
flask user-role username [-d departement] [-a RoleAAjouter] [-r RoleARetirer]
|
||||||
|
|
||||||
|
Exemple:
|
||||||
|
|
||||||
|
flask user-role dupont -d MMI -a Observateur
|
||||||
|
|
||||||
|
donne le rôle `Observateur` (qui doit déjà exister) à l'utilisateur `dupont` dans
|
||||||
|
le département `MMI`.
|
||||||
|
|
||||||
|
Si le département n'est pas spécifié, le rôle est donné dans *tous* les
|
||||||
|
départements (utile pour certains compte administrateurs ou utilisés en lecture
|
||||||
|
par des clients de l'API).
|
||||||
|
|
||||||
|
### Migration des données de ScoDoc 7
|
||||||
Les données dans ScoDoc 9 ayant un format et une organisation très différents
|
Les données dans ScoDoc 9 ayant un format et une organisation très différents
|
||||||
de ScoDoc 7, une étape de conversion (migration) est nécessaire. Elle est automatique
|
de ScoDoc 7, une étape de conversion (migration) est nécessaire. Elle est automatique
|
||||||
mais prend du temps.
|
mais prend du temps.
|
||||||
@ -99,14 +112,14 @@ Se reporter à [MigrationScoDoc7a9](MigrationScoDoc7a9.md)
|
|||||||
Ces commandes sont utilisées par le script de migration de ScoDoc 7 à ScoDoc 9.
|
Ces commandes sont utilisées par le script de migration de ScoDoc 7 à ScoDoc 9.
|
||||||
*Ne pas utiliser sauf si vous savez vraiment ce que vous faites.*
|
*Ne pas utiliser sauf si vous savez vraiment ce que vous faites.*
|
||||||
|
|
||||||
### Comptes utilisateurs
|
#### Comptes utilisateurs
|
||||||
|
|
||||||
Toujours migrer les comptes utilisateurs avant d'importer les
|
Toujours migrer les comptes utilisateurs avant d'importer les
|
||||||
départements.
|
départements.
|
||||||
|
|
||||||
flask import-scodoc7-users
|
flask import-scodoc7-users
|
||||||
|
|
||||||
### Départements
|
#### Départements
|
||||||
Pour migrer un seul département:
|
Pour migrer un seul département:
|
||||||
|
|
||||||
flask import-scodoc7-dept DEPT DBNAME
|
flask import-scodoc7-dept DEPT DBNAME
|
||||||
@ -115,29 +128,51 @@ Exemple:
|
|||||||
|
|
||||||
flask import-scodoc7-dept InfoComm DBINFOCOMM
|
flask import-scodoc7-dept InfoComm DBINFOCOMM
|
||||||
|
|
||||||
## Liste des commandes Flask/ScoDoc
|
### Liste des commandes Flask/ScoDoc
|
||||||
```
|
```
|
||||||
|
Usage: app [OPTIONS] COMMAND [ARGS]...
|
||||||
|
|
||||||
|
Options:
|
||||||
|
--help Show this message and exit.
|
||||||
|
|
||||||
Commands:
|
Commands:
|
||||||
clear-cache Clear ScoDoc cache (currently Redis)
|
clear-cache Clear ScoDoc cache This cache (currently...
|
||||||
create-dept Create new departement
|
create-dept Create new departement
|
||||||
delete-dept Delete existing departement
|
create-role Create a new role
|
||||||
edit-role Add [-a] and/or remove [-r] a permission to/from a role
|
delete-dept Delete existing departement
|
||||||
import-scodoc7-dept Import département ScoDoc 7
|
delete-role Delete a role
|
||||||
import-scodoc7-users Import users defined in ScoDoc7 postgresql
|
dumphelp
|
||||||
sco-db-init Initialize the database.
|
edit-role Add [-a] and/or remove [-r] a permission...
|
||||||
user-create Create a new user
|
import-scodoc7-dept Import département ScoDoc 7: dept:...
|
||||||
user-db-clear Erase all users and roles from the database !
|
import-scodoc7-users Import users defined in ScoDoc7...
|
||||||
user-password Set (or change) user's password
|
list-depts If dept exists, print it, else nothing.
|
||||||
|
localize-logo Make local to a dept a global logo (both...
|
||||||
|
migrate-scodoc7-dept-archives Post-migration: renomme les archives en...
|
||||||
|
migrate-scodoc7-dept-logos Post-migration: renomme les logos en...
|
||||||
|
photos-import-files
|
||||||
|
profile Start the application under the code...
|
||||||
|
sco-db-init Initialize the database.
|
||||||
|
scodoc-database print the database connexion string
|
||||||
|
user-create Create a new user
|
||||||
|
user-db-clear Erase all users and roles from the...
|
||||||
|
user-delete Try to delete this user.
|
||||||
|
user-password Set (or change) user’s password
|
||||||
|
user-role Add or remove a role to the given user...
|
||||||
|
|
||||||
Usage: app sco-db-init [OPTIONS]
|
Usage: app sco-db-init [OPTIONS]
|
||||||
|
|
||||||
Initialize the database. Starts from an existing database and create all the
|
Initialize the database. Starts from an existing database and create all the
|
||||||
necessary SQL tables and functions.
|
necessary SQL tables and functions.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
--erase / --no-erase
|
||||||
|
|
||||||
Usage: app user-db-clear [OPTIONS]
|
Usage: app user-db-clear [OPTIONS]
|
||||||
|
|
||||||
Erase all users and roles from the database !
|
Erase all users and roles from the database !
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Usage: app user-create [OPTIONS] USERNAME ROLE DEPT
|
Usage: app user-create [OPTIONS] USERNAME ROLE DEPT
|
||||||
|
|
||||||
Create a new user
|
Create a new user
|
||||||
@ -146,14 +181,22 @@ Options:
|
|||||||
-n, --nom TEXT
|
-n, --nom TEXT
|
||||||
-p, --prenom TEXT
|
-p, --prenom TEXT
|
||||||
|
|
||||||
|
Usage: app user-delete [OPTIONS] USERNAME
|
||||||
|
|
||||||
|
Try to delete this user. Fails if it’s associated to some scodoc objects.
|
||||||
|
|
||||||
|
|
||||||
Usage: app user-password [OPTIONS] USERNAME
|
Usage: app user-password [OPTIONS] USERNAME
|
||||||
|
|
||||||
Set (or change) user's password
|
Set (or change) user’s password
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
--password TEXT
|
--password TEXT
|
||||||
|
|
||||||
|
Usage: app create-role [OPTIONS] ROLENAME [PERMISSIONS]...
|
||||||
|
|
||||||
|
Create a new role
|
||||||
|
|
||||||
|
|
||||||
Usage: app edit-role [OPTIONS] ROLENAME
|
Usage: app edit-role [OPTIONS] ROLENAME
|
||||||
|
|
||||||
@ -167,76 +210,135 @@ Options:
|
|||||||
-a, --add TEXT
|
-a, --add TEXT
|
||||||
-r, --remove TEXT
|
-r, --remove TEXT
|
||||||
|
|
||||||
|
Usage: app delete-role [OPTIONS] ROLENAME
|
||||||
|
|
||||||
Usage: app delete-dept DEPT
|
Delete a role
|
||||||
|
|
||||||
|
Options:
|
||||||
|
--help Show this message and exit.
|
||||||
|
|
||||||
|
Usage: app user-role [OPTIONS] USERNAME
|
||||||
|
|
||||||
|
Add or remove a role to the given user in the given dept
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-d, --dept TEXT
|
||||||
|
-a, --add TEXT
|
||||||
|
-r, --remove TEXT
|
||||||
|
--help Show this message and exit.
|
||||||
|
|
||||||
|
Usage: app delete-dept [OPTIONS] DEPT
|
||||||
|
|
||||||
Delete existing departement
|
Delete existing departement
|
||||||
|
|
||||||
|
Options:
|
||||||
|
--yes
|
||||||
|
--help Show this message and exit.
|
||||||
|
|
||||||
Usage: app create-dept DEPT
|
Usage: app create-dept [OPTIONS] DEPT
|
||||||
|
|
||||||
Create new departement
|
Create new departement
|
||||||
|
|
||||||
|
|
||||||
Usage: app import-scodoc7-users
|
Usage: app list-depts [OPTIONS] [DEPTS]...
|
||||||
|
|
||||||
Import used defined in ScoDoc7 postgresql database into ScoDoc 9 The old
|
If dept exists, print it, else nothing. Called without arguments, list all
|
||||||
|
depts along with their ids.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Usage: app scodoc-database [OPTIONS]
|
||||||
|
|
||||||
|
print the database connexion string
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-n, --name show database name instead of connexion string (required for
|
||||||
|
dropdb/createdb commands)
|
||||||
|
|
||||||
|
|
||||||
|
Usage: app import-scodoc7-users [OPTIONS]
|
||||||
|
|
||||||
|
Import users defined in ScoDoc7 postgresql database into ScoDoc 9 The old
|
||||||
database SCOUSERS must be alive and readable by the current user. This
|
database SCOUSERS must be alive and readable by the current user. This
|
||||||
script is typically run as unix user "scodoc". The original SCOUSERS
|
script is typically run as unix user "scodoc". The original SCOUSERS
|
||||||
database is left unmodified.
|
database is left unmodified.
|
||||||
|
|
||||||
|
|
||||||
Usage: app import-scodoc7-dept DEPT DEPT_DB_NAME
|
Usage: app import-scodoc7-dept [OPTIONS] DEPT DEPT_DB_NAME
|
||||||
|
|
||||||
Import département ScoDoc 7: dept: InfoComm, dept_db_name: SCOINFOCOMM
|
Import département ScoDoc 7: dept: InfoComm, dept_db_name: SCOINFOCOMM
|
||||||
|
|
||||||
|
|
||||||
Usage: app clear-cache
|
Usage: app migrate-scodoc7-dept-archives [OPTIONS] [DEPT]
|
||||||
|
|
||||||
|
Post-migration: renomme les archives en fonction des id de ScoDoc 9
|
||||||
|
|
||||||
|
|
||||||
|
Usage: app migrate-scodoc7-dept-logos [OPTIONS] [DEPT]
|
||||||
|
|
||||||
|
Post-migration: renomme les logos en fonction des id / dept de ScoDoc 9
|
||||||
|
|
||||||
|
|
||||||
|
Usage: app localize-logo [OPTIONS] LOGO DEPT
|
||||||
|
|
||||||
|
Make local to a dept a global logo (both logo and dept names are mandatory)
|
||||||
|
|
||||||
|
|
||||||
|
Usage: app photos-import-files [OPTIONS] FORMSEMESTRE_ID XLSFILE ZIPFILE
|
||||||
|
|
||||||
|
Import des photos d’étudiants à partir d’une liste excel et d’un zip avec les images.
|
||||||
|
|
||||||
|
Usage: app clear-cache [OPTIONS]
|
||||||
|
|
||||||
Clear ScoDoc cache This cache (currently Redis) is persistent between
|
Clear ScoDoc cache This cache (currently Redis) is persistent between
|
||||||
invocation and it may be necessary to clear it during development or tests.
|
invocation and it may be necessary to clear it during upgrades, development
|
||||||
|
or tests.
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
--help Show this message and exit.
|
--sanitize / --no-sanitize
|
||||||
|
|
||||||
|
Usage: app dumphelp [OPTIONS]
|
||||||
|
|
||||||
|
Génère la page d’aide complète pour la doc.
|
||||||
|
|
||||||
|
Usage: app profile [OPTIONS]
|
||||||
|
|
||||||
|
Start the application under the code profiler.
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-h, --host TEXT The interface to bind to.
|
||||||
|
-p, --port INTEGER The port to bind to.
|
||||||
|
--length INTEGER Number of functions to include in the profiler report.
|
||||||
|
--profile-dir TEXT Directory where profiler data files are saved.
|
||||||
|
--help Show this message and exit.
|
||||||
```
|
```
|
||||||
|
|
||||||
|
(*la liste ci-dessus est générée à l'aide de la commande* `flask dumphelp`).
|
||||||
|
|
||||||
|
### Changement des logos apparaissant sur les documents
|
||||||
## Changement des logos apparaissant sur les documents
|
|
||||||
|
|
||||||
*Note: après migration, vos logos de ScoDoc 7 sont installés dans ScoDoc 9*.
|
*Note: après migration, vos logos de ScoDoc 7 sont installés dans ScoDoc 9*.
|
||||||
|
|
||||||
Les documents PDF (PV de jurys...) incluent les logos de l'établissement.
|
Les documents PDF (PV de jurys...) incluent les logos de l'établissement.
|
||||||
Par défaut, ceux de l'IUT de Villetaneuse et de l'Université Paris 13 sont
|
Par défaut, ceux de l'IUT de Villetaneuse et de l'Université Paris 13 sont
|
||||||
distribués. Pour les changer, placer vos logos (fichiers images JPEG ou PNG)
|
distribués. [Pour les changer, voir la FAQ](/FAQ/#comment-changer-les-logos-sur-les-documents-pdf-pv)
|
||||||
|
|
||||||
|
Si vous êtes administrateur système, vous pouvez aussi placer vos images (fichiers JPEG ou PNG)
|
||||||
dans le répertoire
|
dans le répertoire
|
||||||
|
|
||||||
/opt/scodoc-data/config/logos
|
/opt/scodoc-data/config/logos
|
||||||
|
|
||||||
avec les noms `logo_header.jpg` (habituellement le logo de votre composante)
|
On peut fournir des images (logos, fond de pages) par département en créant des sous-répertoires
|
||||||
et `logo_footer.jpg` (habituellement le logo de votre université ou école).
|
|
||||||
|
|
||||||
On peut fournir des logos par département en créant des sous-répertoires
|
|
||||||
|
|
||||||
/opt/scodoc-data/config/logos/logo_<dept>/
|
/opt/scodoc-data/config/logos/logo_<dept>/
|
||||||
|
|
||||||
pour y placer les fichiers images `logo_header.jpg` et `logo_footer.jpg`.
|
Après quoi, redémarrez ScoDoc après avoir vidé les caches:
|
||||||
|
|
||||||
<!-- Ensuite, éditez le fichier
|
|
||||||
|
|
||||||
/opt/scodoc-data/config/logos
|
|
||||||
|
|
||||||
et changer les valeurs des variables `CONFIG.LOGO_FOOTER_ASPECT` et suivantes
|
|
||||||
(ce n'est pas pratique, il faudrait modifier le code ScoDoc pour calculer ces valeurs
|
|
||||||
à partir des fichiers images). -->
|
|
||||||
|
|
||||||
Enfin, redémarrez ScoDoc après avoir vidé les caches:
|
|
||||||
|
|
||||||
flask clear-cache
|
flask clear-cache
|
||||||
sudo systemctl restart scodoc9
|
sudo systemctl restart scodoc9
|
||||||
|
|
||||||
|
|
||||||
# Utilisation via le Web
|
## Utilisation via le Web
|
||||||
|
|
||||||
* Connectez-vous au site: `https://votre.site.fr/`
|
* Connectez-vous au site: `https://votre.site.fr/`
|
||||||
|
|
||||||
|
@ -1,94 +0,0 @@
|
|||||||
|
|
||||||
# Prise en main et paramétrage de ScoDoc 7
|
|
||||||
|
|
||||||
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Cette page
|
|
||||||
concerne la version ScoDoc 7, et ne s'applique pas à la version ScoDoc 9 distribuée à partir de septembre 2021.
|
|
||||||
Pour ScoDoc 9, voir [cette page](GuideConfig.md).
|
|
||||||
|
|
||||||
Ce document suppose que le ScoDOc 7 a été installé suivant la procédure décrite dans [GuideInstallDebianDix](GuideInstallDebianDix.md).
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Procédure à suivre pour créer un département et son utilisateur administrateur
|
|
||||||
* Connectez-vous au site: `https://votre.site.fr/`
|
|
||||||
|
|
||||||
|
|
||||||
Vous allez voir la page d'accueil de ScoDoc (il est possible que votre
|
|
||||||
navigateur vous demande d'accepter un certificat).
|
|
||||||
|
|
||||||
Il n'y a pas de "département défini": c'est normal, lors de l'installation nous
|
|
||||||
avons créé des bases de données, mais pas les interfaces web.
|
|
||||||
|
|
||||||
* Suivez le lien *Identifiez vous comme administrateur*. L'utilisateur *admin*
|
|
||||||
est administrateur et a tous les droits sur !ScoDoc. C'est le seul à pouvoir
|
|
||||||
créer un nouveau département.
|
|
||||||
|
|
||||||
Le logiciel va vous demander de changer immédiatement le mot de passe administrateur.
|
|
||||||
Entrez l'identifiant et le mot de passe définis pendant l'installation.
|
|
||||||
|
|
||||||
Après vous être identifié sur la page d'accueil ScoDoc, vous avez maintenant un
|
|
||||||
lien 'Administration de ScoDoc' qui vous permet d'ajouter un département, puis des utilisateurs.
|
|
||||||
|
|
||||||
* Ajouter un département (donnez le nom du département créé pendant l'installation)
|
|
||||||
|
|
||||||
* Ajouter un administrateur pour votre département: lien "Utilisateurs" (marge
|
|
||||||
de gauche), puis suivre "ajouter un utilisateur". Donner à ce nouvel
|
|
||||||
utilisateur les rôles `Admin`, `Ens` et `Secr` afin qu'il puisse effectuer
|
|
||||||
toutes les opérations.
|
|
||||||
|
|
||||||
Quittez votre navigateur et reconnectez vous à ScoDoc avec votre nouvel utilisateur.
|
|
||||||
|
|
||||||
Vous pouvez si nécessaire créer plusieurs administrateurs par département (il
|
|
||||||
est préférable que chaque compte ne soit utilisé que par une seule personne,
|
|
||||||
pour éviter de divulguer les mots de passe et mieux suivre les opérations).
|
|
||||||
|
|
||||||
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;"
|
|
||||||
alt="/!\" /> Surtout, évitez de travailler comme "admin": cet utilisateur doit
|
|
||||||
être réservé à la création de départements. Prenez le temps de créer un
|
|
||||||
utilisateur "chef de département !".
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Changement des logos apparaissant sur les documents
|
|
||||||
Les documents PDF (PV de jurys...) incluent les logos de l'établissement. Par
|
|
||||||
défaut, ceux de l'IUT de Villetaneuse et de l'Université Paris 13 sont
|
|
||||||
distribués (ce n'est pas bien, ils ne sont sans doute pas sous licence libre !).
|
|
||||||
Pour les changer, placer vos logos (fichiers images JPEG ou PNG) dans le
|
|
||||||
répertoire
|
|
||||||
```
|
|
||||||
/opt/scodoc-data/config/logos
|
|
||||||
```
|
|
||||||
(en ScoDoc 7, c'était `/opt/scodoc/var/scodoc/config/logos`)
|
|
||||||
|
|
||||||
avec les noms `logo_header.jpg` (habituellement le logo de votre composante,
|
|
||||||
mais faites comme vous voulez) et `logo_footer.jpg` (habituellement le logo de
|
|
||||||
votre Université ou école).
|
|
||||||
|
|
||||||
Ensuite, éditez le fichier
|
|
||||||
```
|
|
||||||
/opt/scodoc-data/config/scodoc_local.py
|
|
||||||
```
|
|
||||||
(le créer s'il n'existe pas).
|
|
||||||
Ce fichier doit contenir un dictionnaire sous la forme suivante:
|
|
||||||
```
|
|
||||||
CONFIG = {
|
|
||||||
# Taille du l'image logo: largeur/hauteur
|
|
||||||
# W/H
|
|
||||||
CONFIG.LOGO_FOOTER_ASPECT = 326 / 96.0
|
|
||||||
# Taille dans le document en millimetres
|
|
||||||
CONFIG.LOGO_FOOTER_HEIGHT = 10
|
|
||||||
# Proportions logo (donné ici pour IUTV)
|
|
||||||
CONFIG.LOGO_HEADER_ASPECT = 549 / 346.0
|
|
||||||
# Taille verticale dans le document en millimetres
|
|
||||||
CONFIG.LOGO_HEADER_HEIGHT = 28
|
|
||||||
... autres variables de configuration locale
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Adaptez les valeurs des variables `LOGO_FOOTER_ASPECT` et suivantes à votre cas
|
|
||||||
(ce n'est pas pratique, il faudrait modifier le code ScoDoc pour calculer ces
|
|
||||||
valeurs à partir des fichiers images).
|
|
||||||
|
|
||||||
|
|
||||||
Enfin, redémarrez ScoDoc (`/etc/init.d/scodoc start`).
|
|
||||||
|
|
@ -9,7 +9,7 @@ Informations pour les développeurs souhaitant étendre ou modifier ScoDoc.
|
|||||||
un serveur Discord ouvert sur invitation aux développeur actifs. Contacter Emmanuel.
|
un serveur Discord ouvert sur invitation aux développeur actifs. Contacter Emmanuel.
|
||||||
* [Générer de nouveaux formats de bulletins PDF](ApiGenerationBulletinsPdf.md)
|
* [Générer de nouveaux formats de bulletins PDF](ApiGenerationBulletinsPdf.md)
|
||||||
* [Créer de nouveaux types de "parcours"](ApiCreationParcours.md)
|
* [Créer de nouveaux types de "parcours"](ApiCreationParcours.md)
|
||||||
* [API](ScoDocAPI.md) : API JSON ou XML pour interfaçage avec d'autres applications
|
* [API](ScoDoc9API.md) : API JSON ou XML pour interfaçage avec d'autres applications
|
||||||
* Notes diverses
|
* Notes diverses
|
||||||
* [Discussions pour la future gestion des absences](IdeesGestionAbsences.md)
|
* [Discussions pour la future gestion des absences](IdeesGestionAbsences.md)
|
||||||
* [Anciennes discussions sur la gestion des plannings](IdeesGestionPlannings.md)
|
* [Anciennes discussions sur la gestion des plannings](IdeesGestionPlannings.md)
|
||||||
@ -20,17 +20,17 @@ Informations pour les développeurs souhaitant étendre ou modifier ScoDoc.
|
|||||||
Quelques conseils, indications et mémos pour les développeurs sur ScoDoc version 9.
|
Quelques conseils, indications et mémos pour les développeurs sur ScoDoc version 9.
|
||||||
|
|
||||||
### Installation d'un serveur de développement
|
### Installation d'un serveur de développement
|
||||||
[Quelques conseils mouvants pour configurer votre serveur de développement](ConseilServeurDev.md)
|
[Quelques conseils pour configurer votre serveur de développement](ConseilServeurDev.md)
|
||||||
|
|
||||||
### Style et formatage du code
|
### Style et formatage du code
|
||||||
L'ancienneté de la base de code a rendu le style un peu incohérent, mais cela
|
L'ancienneté de la base de code a rendu le style un peu incohérent, mais cela
|
||||||
s'est amélioré avec ScoDoc 9 (respect PEP 8).
|
s'est nettement amélioré avec ScoDoc 9 (respect PEP 8).
|
||||||
|
|
||||||
Le code doit être formatté avec [`black`](https://black.readthedocs.io/) avant
|
Le code DOIT être formatté avec [`black`](https://black.readthedocs.io/) avant
|
||||||
tout commit (configurez votre éditeur pour appeler `black` à l'enregistrement).
|
tout commit (configurez votre éditeur pour appeler `black` à l'enregistrement).
|
||||||
|
|
||||||
#### Documentation
|
#### Documentation
|
||||||
On adoptera le style "Google": <https://google.github.io/styleguide/pyguide.html#383-functions-and-methods>
|
On pourra adopter le style "Google": <https://google.github.io/styleguide/pyguide.html#383-functions-and-methods>
|
||||||
|
|
||||||
Exemple:
|
Exemple:
|
||||||
"""Description résumée de la fonction
|
"""Description résumée de la fonction
|
||||||
@ -56,16 +56,18 @@ Exemple:
|
|||||||
|
|
||||||
### Git
|
### Git
|
||||||
|
|
||||||
Le dépot est <https://scodoc.org/git/viennet/ScoDoc>
|
Le dépôt est <https://scodoc.org/git/viennet/ScoDoc>
|
||||||
|
|
||||||
La branche `master` est celle de ScoDoc 9. La branche `Scodoc7` est l'ancienne
|
La branche `master` est celle de ScoDoc 9, d'où sont issues les paquets
|
||||||
(jusqu'à septembre 2021) version en production.
|
distribués (*releases*). Les développements ont lieu sur d'autres branches
|
||||||
|
(`api`, `dev92`, `entreprises`, ...) avant d'être intégrés après tests.
|
||||||
|
La branche `Scodoc7` était l'ancienne (jusqu'à septembre 2021) version de ScoDoc.
|
||||||
|
|
||||||
Ci-dessous quelques pense-bête qui peuvent servir.
|
Ci-dessous quelques pense-bête qui peuvent servir.
|
||||||
#### Hot fixes (internes)
|
#### Hot fixes (internes)
|
||||||
|
|
||||||
Pour les développeurs internes (écriture sur le dépôt master), un exemple
|
Pour les développeurs internes (écriture sur le dépôt master), un exemple
|
||||||
basique:
|
basique illustrant le cycle de développement:
|
||||||
|
|
||||||
# Créer une branche
|
# Créer une branche
|
||||||
# si besoin (travail en cours), utiliser git stash avant
|
# si besoin (travail en cours), utiliser git stash avant
|
||||||
@ -82,12 +84,16 @@ basique:
|
|||||||
|
|
||||||
# éventuellement: git stash pop
|
# éventuellement: git stash pop
|
||||||
|
|
||||||
|
Dans la plupart des cas, on travaillera sur son propre dépot (clone du dépt
|
||||||
|
origine), et on proposera une *pull request* (PR, *demande d'ajout* en français).
|
||||||
|
|
||||||
#### Mettre à jour votre branche
|
#### Mettre à jour votre branche
|
||||||
|
|
||||||
Vous travaillez dans votre branche `ma_branche`. Pour lui appliquer les mises à
|
Quand vous travaillez dans votre branche `ma_branche`, pour lui appliquer les
|
||||||
jour de `master` (remote):
|
mises à jour de `master` (remote), faire:
|
||||||
|
```bash
|
||||||
git pull origin master
|
git pull origin master
|
||||||
|
```
|
||||||
|
|
||||||
#### Commandes utiles, en vrac
|
#### Commandes utiles, en vrac
|
||||||
|
|
||||||
@ -97,29 +103,275 @@ jour de `master` (remote):
|
|||||||
#### Refactoring
|
#### Refactoring
|
||||||
|
|
||||||
Lint tous les fichiers modifiés:
|
Lint tous les fichiers modifiés:
|
||||||
|
```bash
|
||||||
git status | grep modified | grep .py | awk '{print $2}' | xargs pylint -E
|
git status | grep modified | grep .py | awk '{print $2}' | xargs pylint -E
|
||||||
|
```
|
||||||
Restore les modes au besoin (SAMBA les changent parfois):
|
Restore les modes au besoin (SAMBA les changent parfois):
|
||||||
|
```bash
|
||||||
git diff -p -R --no-color | grep -E "^(diff|(old|new) mode)" --color=never | git apply
|
git diff -p -R --no-color | grep -E "^(diff|(old|new) mode)" --color=never | git apply
|
||||||
|
```
|
||||||
Affiche les variables non définies dans un fichier:
|
Affiche les variables non définies dans un fichier:
|
||||||
|
```bash
|
||||||
pylint --disable=all -e E sco_parcours_dut.py | grep undefined-variable | awk '{print $4;}' | sort | uniq | tr -d \'
|
pylint --disable=all -e E sco_parcours_dut.py | grep undefined-variable | awk '{print $4;}' | sort | uniq | tr -d \'
|
||||||
|
```
|
||||||
Prépare un sed pour renommer les variables non définies:
|
Prépare un sed pour renommer les variables non définies:
|
||||||
|
```bash
|
||||||
for f in *.py
|
for f in *.py
|
||||||
do
|
do
|
||||||
pylint --disable=all -e E "$f" | grep undefined-variable | awk '{print "sed -i .bak s/"$4"/scu."$4"/ '$f'";}' | sort | uniq | tr -d \'
|
pylint --disable=all -e E "$f" | grep undefined-variable | awk '{print "sed -i .bak s/"$4"/scu."$4"/ '$f'";}' | sort | uniq | tr -d \'
|
||||||
done
|
done
|
||||||
|
```
|
||||||
|
|
||||||
Note pour travailler sur VirtualBox:
|
Note pour travailler sur VirtualBox:
|
||||||
|
|
||||||
addgroup scodoc vboxsf
|
addgroup scodoc vboxsf
|
||||||
|
|
||||||
### Tests
|
### Préparation d'une PR (Pull Request)
|
||||||
|
|
||||||
|
#### Principes généraux
|
||||||
|
|
||||||
|
Les remarques de cette section visent à obtenir une relecture facile de votre
|
||||||
|
demande d'ajout (*pull request*, dite "PR"):
|
||||||
|
|
||||||
|
* Éviter les modifications de forme qui ne changent pas le sens du code. L'utilisation de
|
||||||
|
[`black`](https://black.readthedocs.io/) est obligatoire : elle permet de normaliser la présentation
|
||||||
|
du code. cela évite de générer des différences ne représentant que des
|
||||||
|
changements de mise en forme (indentation, passages à la ligne). Cela évite
|
||||||
|
aussi au développeur d'avoir à y réfléchir, autant de temps gagné !
|
||||||
|
|
||||||
|
* Avoir un nombre d'étapes de validation faible (idéalement un seul commit pour
|
||||||
|
les PR courantes - peu volumineuses).
|
||||||
|
|
||||||
|
* La PR doit toujours être énoncée par rapport au dernier commit de la branche
|
||||||
|
que vous visez (en général `master` du dépôt original).
|
||||||
|
|
||||||
|
#### Manipulations
|
||||||
|
|
||||||
|
Les manipulations sont décrites selon quatre phases du développement : l'installation,
|
||||||
|
la mise en place, le suivi et la livraison.
|
||||||
|
|
||||||
|
##### l'installation
|
||||||
|
Il est pratique d'avoir en ligne les deux dépôts git distants que vous pouvez
|
||||||
|
utiliser : votre dépôt personnel (`https://scodoc.org/git/<user>/<dépôt>.git`) et
|
||||||
|
le dépôt officiel (`https://scodoc.org/git/ScoDoc/ScoDoc.git`).
|
||||||
|
|
||||||
|
pour ajouter une référence (et lui donner un nom) vers un dépôt distant, entrez
|
||||||
|
la commande:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git remote add nom_remote https://scodoc.org/git/ScoDoc/<dépôt>.git
|
||||||
|
```
|
||||||
|
|
||||||
|
Par la suite vous aurez donc une référence vers votre dépôt personnel (`perso`)
|
||||||
|
et une référence vers le dépôt officiel (`officiel`). Si vous avez initialement
|
||||||
|
cloné l'un des deux dépôts, la référence vers le dépot d'origine existe et a pour nom
|
||||||
|
`origin`.
|
||||||
|
|
||||||
|
La commande vous exposant tous les dépôts connus est :
|
||||||
|
```bash
|
||||||
|
git remote -v
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Mise en place
|
||||||
|
|
||||||
|
L'objectif de ce paragraphe est de créer une branche locale basée sur le master
|
||||||
|
du dépôt officiel et bien sur de lui donner un nom.
|
||||||
|
|
||||||
|
pour cela (**attention cela va écraser les éventuels fichiers modifiés**. Si vous souhaitez conserver les
|
||||||
|
modifications en cours, encadrez les lignes suivantes par `git stash` (avant) et `git stash apply` (après) :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git reset --hard officiel/master
|
||||||
|
git checkout -b ma_modif
|
||||||
|
```
|
||||||
|
À partir de là, vous pouvez modifier, tester, développer et commit votre travail.
|
||||||
|
|
||||||
|
#### Suivi
|
||||||
|
|
||||||
|
Si votre développement prend plusieurs jours, il est probable que la branche
|
||||||
|
principale évolue pendant ce temps.
|
||||||
|
|
||||||
|
Pour garder la cohérence, il est nécessaire de réintégrer en local les
|
||||||
|
modifications de la branche principale. Ceci peut se faire de deux façons.
|
||||||
|
|
||||||
|
- Une fusion (`merge`) applique toutes les modifications en un seul commit).
|
||||||
|
C'est la méthode couramment utilisée.
|
||||||
|
|
||||||
|
- Un `rebase` rejoue tous les commits de la nouvelle branche par dessus l'état
|
||||||
|
le plus à jour de la branche principale (il en résulte un historique plus
|
||||||
|
linéaire).
|
||||||
|
|
||||||
|
Les commandes git correspondantes :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git fetch officiel
|
||||||
|
git merge officiel/master
|
||||||
|
```
|
||||||
|
ou
|
||||||
|
```bash
|
||||||
|
git fetch officiel
|
||||||
|
git rebase officiel/merge
|
||||||
|
```
|
||||||
|
|
||||||
|
#### La livraison
|
||||||
|
|
||||||
|
Ça y est. Vous avez terminé le développement. IL n'y a plus qu'à demander
|
||||||
|
l'intégration. Ceci se fait en plusieurs étapes (vous êtes bien sûr toujours sur
|
||||||
|
la branche locale `ma_modif` et toutes vos modifications ont été commitées).
|
||||||
|
|
||||||
|
##### Étape 1 : faire l'inventaire des fichiers impliqués
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git fetch officiel/master
|
||||||
|
git diff --name-only officiel/master
|
||||||
|
```
|
||||||
|
|
||||||
|
##### Étape 2 : passer black sur les fichiers modifiés
|
||||||
|
|
||||||
|
Cette étape est automatique avec les bons réglages sous VSCode (pas trouvé
|
||||||
|
l'équivalent sous *pyCharm*).
|
||||||
|
|
||||||
|
À défaut les lignes suivantes réalisent le même travail :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
for fn in $(git diff --name-only officiel/master)
|
||||||
|
do
|
||||||
|
python3 -m black $fn
|
||||||
|
done
|
||||||
|
```
|
||||||
|
|
||||||
|
Faire une première lecture rapide pour vérifier qu'il ne reste pas de fichiers
|
||||||
|
modifiés accidentellement.
|
||||||
|
|
||||||
|
Pour obtenir la modification sur un fichier spécifique (`app/fichier.py` par exemple)
|
||||||
|
```bash
|
||||||
|
git diff officiel/master app/fichier.py
|
||||||
|
```
|
||||||
|
|
||||||
|
Utilisateurs Windows : Vérifiez bien que les réglages de fin de ligne suivent
|
||||||
|
bien les règles Linux (pas de retour chariot (noté CR ou `\r`) en fin de ligne mais un seul caractère line feed
|
||||||
|
(noté LF ou `\n`).
|
||||||
|
Le cas échéant, réglez votre IDE pour cela.
|
||||||
|
|
||||||
|
À ce niveau là de la procèdure, vous n'avez plus dans votre branche locale que les différences strictement
|
||||||
|
nécessaires à votre correctif.
|
||||||
|
|
||||||
|
##### Étape 3 : résumez tous les commits depuis le point de divergence en un seul commit
|
||||||
|
|
||||||
|
Repérez le point de divergence de votre branche locale avec officiel/master
|
||||||
|
(normalement `git merge-base HEAD officiel/master`)
|
||||||
|
|
||||||
|
Demander un `rebase` interactif depuis ce point :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git rebase -i $(git merge-base HEAD officiel/master)
|
||||||
|
```
|
||||||
|
|
||||||
|
*Explications*:
|
||||||
|
_Le rebase interactif permet d'enregistrer un suite de manipulation de commit dans un seul fichier texte._
|
||||||
|
_Le fichier texte qui reprend tels quels tous les commits concernés (et donc qui ne fait rien)_
|
||||||
|
_est préparé par la commande `-i` de la commande_ `git rebase`
|
||||||
|
|
||||||
|
_Vous pouvez ensuite modifier ce fichier dans votre editeur favori (ou pas) (à régler par `git config`) pour décrire_
|
||||||
|
_votre intention (réordonner, changer le message, fusionner, ...) sur l'ensemble des commits_
|
||||||
|
|
||||||
|
_Quand votre édition est terminée, git reprend la main est exécute chacune de vos opérations. Il est possible_
|
||||||
|
_(bien que très rare) que des conflits apparaissent à ce moment-là. Les_
|
||||||
|
_commandes habituelles de correction accompagnées des commandes :_
|
||||||
|
```bash
|
||||||
|
git rebase --continue # pour poursuivre le processus
|
||||||
|
git rebase --abort # pour tout abandonner
|
||||||
|
```
|
||||||
|
_vous permettront de résoudre ces problèmes exceptionnels_.
|
||||||
|
|
||||||
|
Application:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git rebase -i $(git merge-base HEAD officiel/master)
|
||||||
|
```
|
||||||
|
Vous devez obtenir dans un éditeur de texte la liste des commits opéré depuis le
|
||||||
|
début du développement sous cette forme (c'est un exemple : le nombre de lignes
|
||||||
|
peut varier) :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pick eb8cbec modif 1
|
||||||
|
pick 83eb79e modif 2
|
||||||
|
|
||||||
|
# Rebase 5ffd074..83eb79e onto 5ffd074 (2 commands)
|
||||||
|
#
|
||||||
|
# Commands:
|
||||||
|
# p, pick <commit> = use commit
|
||||||
|
# r, reword <commit> = use commit, but edit the commit message
|
||||||
|
# e, edit <commit> = use commit, but stop for amending
|
||||||
|
# s, squash <commit> = use commit, but meld into previous commit
|
||||||
|
# f, fixup [-C | -c] <commit> = like "squash" but keep only the previous
|
||||||
|
# commit's log message, unless -C is used, in which case
|
||||||
|
# keep only this commit's message; -c is same as -C but
|
||||||
|
# opens the editor
|
||||||
|
# x, exec <command> = run command (the rest of the line) using shell
|
||||||
|
# b, break = stop here (continue rebase later with 'git rebase --continue')
|
||||||
|
# d, drop <commit> = remove commit
|
||||||
|
# l, label <label> = label current HEAD with a name
|
||||||
|
# t, reset <label> = reset HEAD to a label
|
||||||
|
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
|
||||||
|
# . create a merge commit using the original merge commit's
|
||||||
|
# . message (or the oneline, if no original merge commit was
|
||||||
|
# . specified); use -c <commit> to reword the commit message
|
||||||
|
#
|
||||||
|
# These lines can be re-ordered; they are executed from top to bottom.
|
||||||
|
#
|
||||||
|
# If you remove a line here THAT COMMIT WILL BE LOST.
|
||||||
|
#
|
||||||
|
# However, if you remove everything, the rebase will be aborted.
|
||||||
|
#
|
||||||
|
```
|
||||||
|
|
||||||
|
Vous pouvez réorganiser tous les commits (changer l'ordre, fusionner) en
|
||||||
|
changeant la commande pick au début de chaque ligne. L'idée ici est de fusionner
|
||||||
|
toutes les lignes avec la première en remplaçant le 'pick' à partir de la ligne
|
||||||
|
2 par `fixup`. Optionnellement, vous pouvez reformuler le message de commit
|
||||||
|
(commande `reword` sur la première ligne).
|
||||||
|
|
||||||
|
Vous construirez par exemple :
|
||||||
|
```bash
|
||||||
|
reword eb8cbec Correctif: Api - gestion des formation
|
||||||
|
fixup 83eb79e modif 2
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
Quand vous sortez de l'éditeur, git effectue toutes les opérations demandées.
|
||||||
|
|
||||||
|
À ce niveau-là de la procédure :
|
||||||
|
|
||||||
|
* vous avez un seul commit pour l'ensemble du correctif proposé ;
|
||||||
|
|
||||||
|
* toutes les différences entre officiel/master et votre branche locale sont
|
||||||
|
signifiantes.
|
||||||
|
|
||||||
|
##### Étape 4 :
|
||||||
|
Vous pouvez maintenant pousser votre branche locale sur votre dépôt personnel
|
||||||
|
(vers une branche de même nom):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git push --set-upstream perso ma_branche
|
||||||
|
```
|
||||||
|
|
||||||
|
Si vous avez déjà fait cette opération auparavant il est possible que le push
|
||||||
|
soit refusé (car le rebase a modifié des commits qui avaient déjà été poussés).
|
||||||
|
Dans ce cas l'option `--force` du push vous permette de passer outre, mais
|
||||||
|
assurez-vous avant d'être le seul à travailler sur cette branche.
|
||||||
|
|
||||||
|
##### Etape 5 : La dernière étape se passe sur le site [scodoc.org/git](https://scodoc.org/git/)
|
||||||
|
|
||||||
|
* Identifiez-vous
|
||||||
|
|
||||||
|
* Placez-vous sur la branche nouvellement créée
|
||||||
|
|
||||||
|
* À l'aide de l'interface du serveur, vous pouvez comparer l'état de votre
|
||||||
|
branche par rapport au master officiel, et si cela vous convient, il vous reste à formuler
|
||||||
|
une demande d'intégration (*pull request*). En remplissant les informations demandées.
|
||||||
|
|
||||||
|
## Tests et tests unitaires
|
||||||
|
|
||||||
Voir [TestsScoDoc](TestsScoDoc.md)
|
Voir [TestsScoDoc](TestsScoDoc.md)
|
||||||
|
|
||||||
@ -141,6 +393,36 @@ Au besoin, mémo:
|
|||||||
|
|
||||||
- `flask clear-cache` efface le cache Redis.
|
- `flask clear-cache` efface le cache Redis.
|
||||||
|
|
||||||
|
## Re-création du virtualenv
|
||||||
|
|
||||||
|
ScoDoc est livré avec un "virtualenv", qui contient tous les modules python
|
||||||
|
nécessaires. Il se trouve sous `/opt:scodoc/venv`.
|
||||||
|
Si vous souhaitez repartir de zéro, tester de nouvelles versions de certaines
|
||||||
|
bibliothèques, ou autres expériences de ce genre, vous pouvez le récréer ainsi:
|
||||||
|
```bash
|
||||||
|
# en tant qu'utilisateur scodoc
|
||||||
|
cd /opt/scodoc
|
||||||
|
/bin/rm -rf venv # ou mv ...
|
||||||
|
python3 -m venv venv
|
||||||
|
source venv/bin/activate
|
||||||
|
pip install wheel
|
||||||
|
```
|
||||||
|
Puis soit vous installez les versions "officielles" (testées)
|
||||||
|
```
|
||||||
|
pip install -r requirements-3.9.txt
|
||||||
|
```
|
||||||
|
Soit vous prenez les version les plus à jour disponibles. Une façon rapide de
|
||||||
|
faire ceci est:
|
||||||
|
```bash
|
||||||
|
cut -d= -f 1 requirements-3.9.txt | xargs pip install
|
||||||
|
```
|
||||||
|
à adapter selon vos objectifs.
|
||||||
|
Pour régénérer le fichier indiquant la liste des paquets:
|
||||||
|
```bash
|
||||||
|
pip freeze > requirements-3.9.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
Note: la mise à jour par `apt` recrée le virtualenv à chaque fois.
|
||||||
|
|
||||||
## Roadmap
|
## Roadmap
|
||||||
Sujets **prioritaires** en 2021:
|
Sujets **prioritaires** en 2021:
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
|
|
||||||
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> '''Attention: document obsolète pour une version ancienne de Debian. Voir [GuideInstallDebianDix](GuideInstallDebianDix.md) pour l'installation normale de !ScoDoc !
|
|
||||||
|
|
||||||
|
|
@ -57,7 +57,7 @@ Le serveur est fréquemment installé sur un réseau protégé ou sur un VPN.
|
|||||||
|
|
||||||
- le serveur doit pouvoir envoyer du mail (serveur postfix en local, à
|
- le serveur doit pouvoir envoyer du mail (serveur postfix en local, à
|
||||||
configurer pour utiliser un relais smtp ou envoyer directement, selon
|
configurer pour utiliser un relais smtp ou envoyer directement, selon
|
||||||
votre politique);
|
votre politique. Au besoin, pour le reconfigurer, lancer `dpkg-reconfigure postfix`);
|
||||||
|
|
||||||
- Les serveurs de mise à jour de Debian doivent être accessibles (en http,
|
- Les serveurs de mise à jour de Debian doivent être accessibles (en http,
|
||||||
voir `/etc/apt/sources.list`);
|
voir `/etc/apt/sources.list`);
|
||||||
@ -105,16 +105,38 @@ Checklist minimale de votre système Linux Debian:
|
|||||||
1. Date et heure: vérifier que les dates et heure sont correctes, même après
|
1. Date et heure: vérifier que les dates et heure sont correctes, même après
|
||||||
reboot. L'utilisation d'un serveur de temps (ntp) est recommandée (
|
reboot. L'utilisation d'un serveur de temps (ntp) est recommandée (
|
||||||
`apt-get install ntp`), et éventuellement `dpkg-reconfigure tzdata`).
|
`apt-get install ntp`), et éventuellement `dpkg-reconfigure tzdata`).
|
||||||
|
1. Si vous avez installé à partir d'un support (DVD, clé USB...), pensez à le
|
||||||
|
retirer des sources Debian afin de ne pas bloquer les mise à jour (commenter
|
||||||
|
la ligne `deb cdrom:` dans le fichier `/etc/apt/sources.list`)
|
||||||
1. Cette liste est incomplète... et n'oubliez pas: avant de passer en
|
1. Cette liste est incomplète... et n'oubliez pas: avant de passer en
|
||||||
production, mettez en place des sauvegardes sérieuses !
|
production, mettez en place des sauvegardes sérieuses !
|
||||||
|
|
||||||
#### Configuration si utilisation d'un proxy
|
#### Configuration si utilisation d'un proxy
|
||||||
Si votre accès à Internet passe par un proxy, l'indiquer au moment de
|
Si votre accès à Internet passe par un proxy, l'indiquer au moment de
|
||||||
l'installation Debian. Il est possible qu'il vous faille configurer d'autres
|
l'installation Debian.
|
||||||
|
|
||||||
|
Ensuite, dans ScoDoc, indiquer votre proxy: pour cela, éditer le fichier
|
||||||
|
```/opt/scodoc/.env```
|
||||||
|
et ajouter les variables d'environnement nécessaires. Typiquement, il s'agit de :
|
||||||
|
```
|
||||||
|
HTTP_PROXY=http://proxy.univ-xxx.fr:1234
|
||||||
|
HTTPS_PROXY=http://proxy.univ-xxx.fr:1234
|
||||||
|
```
|
||||||
|
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 ce fichier).
|
||||||
|
|
||||||
|
Après modification de ce fichier (qui _doit_ être lisible par l'utilisateur `scodoc`),
|
||||||
|
redémarrer le service:
|
||||||
|
```
|
||||||
|
sudo systemctl restart scodoc
|
||||||
|
```
|
||||||
|
|
||||||
|
Dans les cas compliqués, il est possible qu'il vous faille configurer d'autres
|
||||||
éléments, voir par exemple
|
éléments, voir par exemple
|
||||||
[ce post sur Stack Overflow](
|
[ce post sur Stack Overflow](
|
||||||
https://stackoverflow.com/questions/9445489/performing-http-requests-with-curl-using-proxy).
|
https://stackoverflow.com/questions/9445489/performing-http-requests-with-curl-using-proxy).
|
||||||
|
|
||||||
|
|
||||||
#### Note sur l'install dans un container LXC
|
#### Note sur l'install dans un container LXC
|
||||||
|
|
||||||
Il y a deux possibilités :
|
Il y a deux possibilités :
|
||||||
@ -138,6 +160,7 @@ Puis créer un dossier `/etc/systemd/system/redis.service.d` contenant le fichie
|
|||||||
ProtectKernelTunables=no
|
ProtectKernelTunables=no
|
||||||
ProtectKernelModules=no
|
ProtectKernelModules=no
|
||||||
ReadWritePaths=
|
ReadWritePaths=
|
||||||
|
ReadOnlyDirectories=
|
||||||
|
|
||||||
Ensuite
|
Ensuite
|
||||||
|
|
||||||
|
@ -1,162 +0,0 @@
|
|||||||
|
|
||||||
# Installation de ScoDoc sur Debian 10 (Buster)
|
|
||||||
Ce document décrit la procédure d'installation et de configuration de ScoDoc.
|
|
||||||
Cette procédure doit être effectué sur la machine serveur avec un accès administrateur (root).
|
|
||||||
|
|
||||||
*Si vous avez déjà une installation ScoDoc version 7 (en Debian 7, 8 ou 9), voir aussi [MigrationDonneesScoDoc](MigrationDonneesScoDoc.md)*
|
|
||||||
|
|
||||||
ScoDoc est livré avec des scripts d'installation qui configurer presque automatiquement votre serveur (serveur web, base de données, etc): vous pouvez donc installer et configurer ScoDoc avec des connaissances réduites sur le système Linux.
|
|
||||||
|
|
||||||
Cette documentation est prévue pour installer ScoDoc sur un système [Debian](http://www.debian.org) 10 (Buster) s'exécutant sur une machine intel-like **64bits** (architecture **AMD64**). Debian s'installe facilement en une quinzaine de minutes, sur une machine normale ou un serveur virtualisé. Il est **très déconseillé** de tenter l'installation sur une autre version, à moins de disposer de temps et de bonnes connaissances sur Linux et les paquetages Python.
|
|
||||||
|
|
||||||
Merci de me signaler tout problème (emmanuel.viennet@gmail.com)
|
|
||||||
|
|
||||||
|
|
||||||
- Note 1: l'image du CD d'installation de Debian (amd64) peut se trouver ici: [https://www.debian.org/distrib/netinst](https://www.debian.org/distrib/netinst.md), choisir une version "petits CD" pour **amd64** (*Il est indispensable d'utiliser une version 64 bits ! *)
|
|
||||||
|
|
||||||
- Note 2: si quelqu'un produit, teste et documente une image Docker, merci de la partager (écrire à scodoc-devel).
|
|
||||||
|
|
||||||
|
|
||||||
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Important: La procédure d'installation décrite ci-dessous suppose que ScoDoc va s'exécuter sur un serveur dédié. Pour faire des tests, utilisez un serveur virtuel (comme VirtualBox ou VMWare). L'installation ci-dessous va en effet modifier de nombreux paramètres de votre système linux (serveur web, firewall, serveur SQL, messagerie, ...).
|
|
||||||
|
|
||||||
|
|
||||||
## Préalable: configurer un serveur linux
|
|
||||||
Le serveur devrait être accessible depuis Internet. Seul le port 443 (https) est utilisé par ScoDoc. Il est recommandé que le serveur puisse envoyer du mail (smtp).
|
|
||||||
|
|
||||||
Nous recommandons d'effectuer une installation standard de Debian par le réseau (netinst).
|
|
||||||
Durant l'installation de Debian, lorsqu'il demande "logiciels à installer", tout décocher sauf "Serveur SSH" et "Utilitaires standard du système". Le script d'installation de ScoDoc se chargera ensuite d'installer tous les éléments nécessaires (serveur web, messagerie, etc.).
|
|
||||||
|
|
||||||
![InstallDebian6-1.png](screens/InstallDebian6-1.png)
|
|
||||||
|
|
||||||
### Points à vérifier avant d'installer ScoDoc
|
|
||||||
Checklist minimale de votre système Linux Debian:
|
|
||||||
|
|
||||||
1. Connexion à Internet: le réseau doit être accessible. En effet, le script d'installation va installer des paquetages du système Debian puis télécharger la dernière mise à jour du logiciel ScoDoc (à partir du serveur Subversion).
|
|
||||||
1. Vérifiez la connectivité, par exemple:
|
|
||||||
```
|
|
||||||
ping www.univ-paris13.fr
|
|
||||||
(quitter avec ctrl-c)
|
|
||||||
cd /tmp
|
|
||||||
wget --no-check-certificate https://www-lipn.univ-paris13.fr/projects/scodoc
|
|
||||||
# doit créer un fichier nomme "scodoc" contenant du code HTML
|
|
||||||
```
|
|
||||||
3. Nom DNS: le serveur doit avoir un nom ("serveur.exemple.fr") connu dans le DNS (local ou public). Pour des tests, vous pouvez vous passer de DNS, mais dans ce cas le nom de votre serveur sera son adresse IP (eg 192.168.0.10) et il ne sera peut être pas accessible de l'extérieur.
|
|
||||||
1. Vérifiez que votre serveur est accessible depuis une autre machine de votre réseau (voire d'Internet): par exemple "ping serveur.exemple.fr".
|
|
||||||
1. Date et heure: vérifier que les dates et heure sont correctes, même après reboot. L'utilisation d'un serveur de temps (ntp) est recommandée (`aptitude install ntp`), et éventuellement `dpkg-reconfigure tzdata`).
|
|
||||||
1. Cette liste est très incomplète... et n'oubliez pas: avant de passer en production, mettez en place des sauvegardes sérieuses !
|
|
||||||
|
|
||||||
|
|
||||||
#### Configuration si utilisation d'un proxy
|
|
||||||
Si votre serveur doit passer par un proxy pour accéder à Internet:
|
|
||||||
1. Configurer wget: placer ceci dans `/root/.bashrc` (par exemple)
|
|
||||||
```
|
|
||||||
export http_proxy=http://my-proxy-server.com:my-proxy-port/
|
|
||||||
export https_proxy=$http_proxy
|
|
||||||
```
|
|
||||||
|
|
||||||
2. Configurer le client svn
|
|
||||||
dans `/root/.subversion/servers` dé-commenter et compléter les lignes:
|
|
||||||
```
|
|
||||||
[global]
|
|
||||||
http-proxy-host = my-proxy-server
|
|
||||||
http-proxy-port = my-proxy-port
|
|
||||||
```
|
|
||||||
(attention bien enlever l'espace du début de ligne).
|
|
||||||
|
|
||||||
|
|
||||||
## Installation de ScoDoc
|
|
||||||
1. Récupérer et ouvrir le logiciel (en tant que root):
|
|
||||||
```
|
|
||||||
sudo su # si necessaire pour passer root
|
|
||||||
cd /opt
|
|
||||||
wget http://www-l2ti.univ-paris13.fr/~viennet/ScoDoc/builds/scodoc-1851.tgz
|
|
||||||
tar xfz scodoc-1851.tgz
|
|
||||||
```
|
|
||||||
Cette archive contient ScoDoc, Zope et quelques outils tiers.
|
|
||||||
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> vous pouvez installer ailleurs que dans /opt, mais il faudra alors éditer plusieurs scripts (non recommandé).
|
|
||||||
|
|
||||||
|
|
||||||
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Les commandes ci-dessous sont à exécuter dans un terminal ouvert en tant que **root** sur le serveur. Vous pouvez utiliser `su` (ou `sudo su`) pour devenir **root**).
|
|
||||||
|
|
||||||
1. **Mettre à jour les sources**. Va télécharger les sources à jour, et le script d'installation:
|
|
||||||
```
|
|
||||||
cd /opt/scodoc/Products/ScoDoc
|
|
||||||
apt install subversion
|
|
||||||
svn up
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
3. **Configurer le logiciel**. Attention: durant cette étape, de nombreux paquets et fichiers de configuration de votre système linux vont être modifiés. Si vous préférez effectuer vous même l'installation (vous êtes développeur ou avez des besoins particuliers), lisez et adaptez le script.
|
|
||||||
|
|
||||||
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> je répète, le script `install_debian10.sh` va reconfigurer beaucoup de choses sur votre serveur. Il suppose que la machine vient d'être installée et en gros qu'elle va servir principalement pour ScoDoc.
|
|
||||||
|
|
||||||
Toujours en tant qu'utilisateur root:
|
|
||||||
```
|
|
||||||
cd /opt/scodoc/Products/ScoDoc/config
|
|
||||||
./install_debian10.sh
|
|
||||||
```
|
|
||||||
Répondez oui (Y) à toutes les questions, sauf, si vous avez une bonne raison de faire autrement.
|
|
||||||
En cas d'échec, ce script peut être relancé (il écrasera l'ancienne configuration).
|
|
||||||
|
|
||||||
Dans cette étape, sont installés et configurés automatiquement:
|
|
||||||
|
|
||||||
* serveur web Apache (et https)
|
|
||||||
* parefeu réseau (optionnel, basé sur `ufw`)
|
|
||||||
* messagerie pour envois messages (postfix) (optionnel mais très vivement recommandé)
|
|
||||||
* installation de divers logiciels utilisés par ScoDoc (par apt-get)
|
|
||||||
* script de lancement automatique de ScoDoc (service systemd).
|
|
||||||
|
|
||||||
(dans certains cas, l'installateur vous posera des questions sur votre configuration).
|
|
||||||
|
|
||||||
|
|
||||||
4. **Initialiser la base de données utilisateurs** (qui sera commune à tous les départements).
|
|
||||||
En tant que root:
|
|
||||||
```
|
|
||||||
cd /opt/scodoc/Products/ScoDoc/config
|
|
||||||
./create_user_db.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
5. **Mettre à jour le logiciel** (c'est absolument nécessaire, la version préinstallée étant incomplète):
|
|
||||||
En tant que root,
|
|
||||||
```
|
|
||||||
cd /opt/scodoc/Products/ScoDoc/config
|
|
||||||
./upgrade.sh
|
|
||||||
```
|
|
||||||
La première fois, il faudra accepter un certificat cryptographique, répondre "p (accept (p)ermanently)".
|
|
||||||
|
|
||||||
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Si un message d'erreur apparaît à la fin de la mise à jour, relancer `./upgrade.sh`.
|
|
||||||
|
|
||||||
|
|
||||||
Si vous migrez les données d'une installation existante, vous pouvez arrêter ici et appliquer la procédure [MigrationDonneesScoDoc](MigrationDonneesScoDoc.md)
|
|
||||||
|
|
||||||
6. **Initialiser la base de données pour un département** (vous pourrez à tout moment utiliser la même commande pour ajouter d'autres départements):
|
|
||||||
```
|
|
||||||
./create_dept.sh -n DEPT
|
|
||||||
```
|
|
||||||
Il faut alors saisir le nom abrégé du département: ce nom doit être un mot, sans ponctuation (GEII, RT, Info, ...). Il apparaîtra dans l'URL du site correspondant.
|
|
||||||
|
|
||||||
7. **Lancer ScoDoc**:
|
|
||||||
```
|
|
||||||
systemctl restart scodoc
|
|
||||||
```
|
|
||||||
et voila !
|
|
||||||
|
|
||||||
Visiter `https://votre.site.fr/` pour achever la configuration et utiliser le logiciel: voir la page [GuideConfig](GuideConfig.md)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## En cas de problème
|
|
||||||
Ne pas hésiter à me contacter ou à écrire sur la liste notes (voir [Listes de diffusion](ListesDeDiffusion.md)).
|
|
||||||
|
|
||||||
* Problèmes d'envoi de courrier électronique (mail): voir [ProblemesMail](ProblemesMail.md)
|
|
||||||
|
|
||||||
Nota: sur certains réseaux, l'autoconfiguration IPv6 pose problème (par exemple: bloquage des envois de mails). Au besoin, il est possible de désactiver IPv6 (voir par exemple [ici](https://wiki.debian-fr.xyz/D%C3%A9sactiver_l%27IPv6)).
|
|
||||||
|
|
||||||
|
|
||||||
## Ensuite...
|
|
||||||
* Appliquez fréquemment les [mises à jour](MisesAJour.md)
|
|
||||||
|
|
||||||
* Mettez en place des [sauvegardes](SauvegardesBases.md)
|
|
||||||
|
|
||||||
* Abonnez vous au moins à la liste d'annonces: voir [Listes de diffusion](ListesDeDiffusion.md)
|
|
@ -1,8 +0,0 @@
|
|||||||
# Guide d'installation sur Debian 9
|
|
||||||
|
|
||||||
Version ancienne de Debian, nous recommandons d'utiliser la nouvelle version.
|
|
||||||
Voir [installation sur Debian 10](GuideInstallDebianDix.md).
|
|
||||||
|
|
||||||
Si besoin, se reporter à [l'ancienne documentation pour Debian 9](https://trac.lipn.univ-paris13.fr/projects/scodoc/wiki/GuideInstallDebianNeuf).
|
|
||||||
|
|
||||||
|
|
90
docs/Internals.md
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
# Code de ScoDoc 9
|
||||||
|
|
||||||
|
Quelques informations pour les développeurs.
|
||||||
|
|
||||||
|
- le code est écrit en Python 3.9 (passage à 3.10 prévu en 2022).
|
||||||
|
- le code doit être formatté par [black](https://pypi.org/project/black/) qui
|
||||||
|
est normalement intégré à votre éditeur (VSCode et PyCharm sont deux choix
|
||||||
|
judicieux).
|
||||||
|
- outre Python, les principaux composants logiciels sont:
|
||||||
|
- [Flask](https://flask-sqlalchemy.palletsprojects.com/en/2.x/): le
|
||||||
|
framework Web, dont on utilise notamment:
|
||||||
|
- l'ORM [SQLAlchemy](https://www.sqlalchemy.org/)
|
||||||
|
- les templates [Jinja2](https://jinja.palletsprojects.com/en/3.0.x/)
|
||||||
|
- [Postgresql](https://www.postgresql.org/)
|
||||||
|
- [Redis](https://redis.io/) cache persistant
|
||||||
|
- [NGINX](https://www.nginx.com/) serveur Web frontal
|
||||||
|
- [gunicorn](https://gunicorn.org/) WSGI HTTP server
|
||||||
|
- et bien sûr Linux (Debian) et systemd.
|
||||||
|
|
||||||
|
# Principaux objets
|
||||||
|
|
||||||
|
Les objets manipulés par ScoDoc sont pour la plupart stockés en base postgres et
|
||||||
|
accédé soit directement en SQL (anciennes parties de ScoDoc), soit à travers
|
||||||
|
l'ORM SQLAlchemy (recommandé pour tout nouveau code).
|
||||||
|
|
||||||
|
Les modèles correspondant sont déclarés dans `/opt/scodoc/app/models/`.
|
||||||
|
|
||||||
|
Principales classes (les noms des classes Python sont en `CamelCase`).
|
||||||
|
|
||||||
|
- Étudiants (classe `Identite`): nom, codes INE/NIP, etc
|
||||||
|
- Formations: programmes pédagogiques, contenant
|
||||||
|
- Unités d'Enseignement (`UniteEns`);
|
||||||
|
- Matières et Modules (`Module`, avec son type standard, bonus, ressources
|
||||||
|
ou SAÉ).
|
||||||
|
- FormSemestre: instanciation d'une session de formation, avec un programme
|
||||||
|
pédagogique donné (Formation), les dates de début et fin, des étudiants
|
||||||
|
inscrits, des responsables, divers codes, et les ModuleImpl mis en œuvre.
|
||||||
|
- ModuleImpl: la mise en place d'un module pédagogique (le ModuleImpl est au
|
||||||
|
Module ce que le FormSemestre est à la Formation): lié à un module, avec un
|
||||||
|
enseignant responsable et des étudiants inscrits.
|
||||||
|
- Inscriptions: tables d'association avec codes et/ou état (démission,
|
||||||
|
défaillant): FormsemestreInscription ModuleImplInscription.
|
||||||
|
|
||||||
|
# Vues et décorateurs
|
||||||
|
|
||||||
|
Une vue ordinaire (Web) pourrait ressembler à cela. Noter la présence de
|
||||||
|
décorateurs:
|
||||||
|
|
||||||
|
- `@scodoc` récupère le département (présent dans l'URL) et initialise quelques
|
||||||
|
trucs;
|
||||||
|
- `@permission_required`: permet de contrôler l'accès, en se basant sur les
|
||||||
|
permissions définies dans la classe `Permission`.
|
||||||
|
|
||||||
|
```
|
||||||
|
@bp.route("/un_exemple")
|
||||||
|
@scodoc
|
||||||
|
@permission_required(Permission.ScoChangeFormation)
|
||||||
|
def un_exemple():
|
||||||
|
# Récupérer le ou les arguments: exemple avec formation_id
|
||||||
|
formation_id = int(request.args["formation_id"])
|
||||||
|
# Charger le ou les objets utilies:
|
||||||
|
formation = models.Formation.query.get(
|
||||||
|
formation_id=formation_id
|
||||||
|
).first_or_404()
|
||||||
|
# Effectuer au besoin un traitement
|
||||||
|
resultat = ...
|
||||||
|
# Afficher le résultat
|
||||||
|
return render_template(
|
||||||
|
"exemple_template.html",
|
||||||
|
resultat=resultat, # par exemple
|
||||||
|
formation=formation,
|
||||||
|
... # etc
|
||||||
|
)
|
||||||
|
```
|
||||||
|
|
||||||
|
# Caches
|
||||||
|
|
||||||
|
Il est bon de savoir que les requêtes SQL de SQLAlchemy ne sont pas cachées: ni
|
||||||
|
la requête elle même (construction du SQL à partir des appels à l'ORM), ni son
|
||||||
|
résultat.
|
||||||
|
|
||||||
|
Le module `sco_cache.py` offre la possibilité de cacher des objets python
|
||||||
|
identifiés par un id unique dans le cache Redis. Ce cache est persistant, il
|
||||||
|
faut donc invalider les objets quand on écrit des données susceptibles de les
|
||||||
|
modifier, et penser à le vider quand on modifie le code.
|
||||||
|
Par exemple:
|
||||||
|
```
|
||||||
|
git pull
|
||||||
|
flask clear-cache
|
||||||
|
```
|
@ -25,7 +25,7 @@ Le principe est donc:
|
|||||||
|
|
||||||
## Marche à suivre détaillée
|
## Marche à suivre détaillée
|
||||||
### Installation de Debian et ScoDoc
|
### Installation de Debian et ScoDoc
|
||||||
Voir les instructions ici: [GuideInstallDebianDix](GuideInstallDebianDix.md) (ou si votre système est encore en Debian 9: [GuideInstallDebianNeuf](GuideInstallDebianNeuf.md) : mais ce n'est pas conseillé)
|
Voir les instructions ici: [GuideInstallDebian11](GuideInstallDebian11.md).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -9,140 +9,3 @@ lancer une à tout moment avec la commande
|
|||||||
|
|
||||||
apt update && apt-get upgrade
|
apt update && apt-get upgrade
|
||||||
|
|
||||||
|
|
||||||
# Mises à jour de ScoDoc 7
|
|
||||||
**Les instructions ci-dessous concernent ScoDoc 7 uniquement.**
|
|
||||||
|
|
||||||
Le système Linux doit être correctement maintenu (en particulier, les mises à
|
|
||||||
jour de sécurité de Debian doivent être appliquées quotidiennement).
|
|
||||||
|
|
||||||
ScoDoc est actuellement prévu pour fonctionner avec Linux Debian 10.
|
|
||||||
|
|
||||||
* Les (rares) mises à jour majeures du logiciel ScoDoc sont annoncées sur la
|
|
||||||
liste
|
|
||||||
[scodoc-annonces](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-annonces).
|
|
||||||
|
|
||||||
* Les (fréquentes) mises à jour mineures (corrections de bugs, améliorations)
|
|
||||||
sont annoncées sur la liste
|
|
||||||
[scodoc-devel](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-devel).
|
|
||||||
|
|
||||||
|
|
||||||
*Une mise à jour hebdomadaire (au moins) est recommandée*
|
|
||||||
|
|
||||||
Pour appliquer une mise à jour de ScoDoc, se connecter en tant que `root` sur le
|
|
||||||
serveur, puis faire:
|
|
||||||
|
|
||||||
cd /opt/scodoc/Products/ScoDoc/config
|
|
||||||
./upgrade.sh
|
|
||||||
|
|
||||||
La première fois, il faudra accepter un certificat cryptographique, répondre "p
|
|
||||||
(accept (p)ermanently)".
|
|
||||||
|
|
||||||
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;"
|
|
||||||
alt="/!\" /> Si un message d'erreur apparaît à la fin de la mise à jour,
|
|
||||||
relancer `./upgrade.sh`.
|
|
||||||
|
|
||||||
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;"
|
|
||||||
alt="/!\" /> La mise à jour entraine une déconnexion des utilisateurs (mais pas
|
|
||||||
de pertes de données !).
|
|
||||||
|
|
||||||
Note: cette procédure ne change pas de version majeure de ScoDoc, ni du système
|
|
||||||
Linux. Pour cela, voir [MigrationDonneesScoDoc](MigrationDonneesScoDoc.md)) ou
|
|
||||||
plus bas sur cette page.
|
|
||||||
|
|
||||||
## Note concernant les anciens systèmes (Debian 9)
|
|
||||||
|
|
||||||
En Debian version 9 (et version antérieures), ScoDoc n'utilisait pas `systemd`
|
|
||||||
et n'était pas automatiquement relancé lors de mises à jour de certains
|
|
||||||
logiciels, comme la base de données `postgresql`. Sur ces systèmes, il est
|
|
||||||
conseillé de mettre à jour Debian avec le script
|
|
||||||
`/opt/scodoc/Products/ScoDoc/config/upgrade.sh` afin d'éviter d'interrompre le
|
|
||||||
service ScoDoc.
|
|
||||||
|
|
||||||
|
|
||||||
## Mise à jour rapide de Debian 9 à Debian 10 (obsolète)
|
|
||||||
|
|
||||||
Obsolète, sauf si vous avez encore un serveur avec Debian 9...
|
|
||||||
|
|
||||||
Procédure raccourcie réservée aux personnes à l'aise avec linux. On met à jour
|
|
||||||
Debian mais on réinstalle ScoDoc proprement.
|
|
||||||
|
|
||||||
Vérifiez que vous avez assez d'espace disque disponible (`df -h`, au moins 3Go
|
|
||||||
libres sur `/` ou `/opt`).
|
|
||||||
|
|
||||||
0. Sauvegardez complètement votre système en lieu sûr. Si la procédure
|
|
||||||
ci-dessous échoue, reprenez la voie normale:
|
|
||||||
[MigrationDonneesScoDoc](MigrationDonneesScoDoc.md).
|
|
||||||
|
|
||||||
1. Mettre à jour votre ScoDoc:
|
|
||||||
|
|
||||||
cd /opt/scodoc/Products/ScoDoc/config
|
|
||||||
./upgrade.sh
|
|
||||||
|
|
||||||
2. Arrêter le service (en Debian 9 on utilisait *SysV-style init*, à partir de
|
|
||||||
Debian 10 ScoDoc utilise `systemd`):
|
|
||||||
|
|
||||||
/etc/init.d/scodoc stop
|
|
||||||
|
|
||||||
|
|
||||||
3. Sauvegarder les données et configurations ScoDoc:
|
|
||||||
|
|
||||||
cd /opt/scodoc/Products/ScoDoc/config
|
|
||||||
./save_scodoc_data.sh /opt/data-scodoc-deb9 # par exemple
|
|
||||||
|
|
||||||
|
|
||||||
4. Mettre à jour Debian: pour les détails voir
|
|
||||||
[https://www.debian.org/releases/stable/amd64/release-notes/ch-upgrading.html](https://www.debian.org/releases/stable/amd64/release-notes/ch-upgrading.html).
|
|
||||||
|
|
||||||
|
|
||||||
En résumé:
|
|
||||||
|
|
||||||
- éditer `/etc/apt/sources.list` et indiquer
|
|
||||||
```
|
|
||||||
deb http://deb.debian.org/debian buster main contrib
|
|
||||||
```
|
|
||||||
|
|
||||||
- puis:
|
|
||||||
```
|
|
||||||
apt-get remove firehol
|
|
||||||
apt update
|
|
||||||
apt-get upgrade
|
|
||||||
apt full-upgrade
|
|
||||||
apt autoremove
|
|
||||||
```
|
|
||||||
et **rebooter**.
|
|
||||||
|
|
||||||
|
|
||||||
5. Supprimer postgresql 9.6
|
|
||||||
|
|
||||||
On enlève carrément l'ancien, le script d'installation de ScoDoc installera la
|
|
||||||
version 11:
|
|
||||||
|
|
||||||
apt-get --purge remove postgresql
|
|
||||||
|
|
||||||
|
|
||||||
6. Réinstaller ScoDoc
|
|
||||||
|
|
||||||
Déplacer l'ancienne installation de ScoDoc (vous la supprimerez plus tard):
|
|
||||||
|
|
||||||
mv /opt/scodoc /opt/scodoc.deb9
|
|
||||||
|
|
||||||
|
|
||||||
Réinstaller un ScoDoc tout neuf, en suivant [GuideInstallDebianDix](GuideInstallDebianDix.md)
|
|
||||||
|
|
||||||
La plupart des composants de votre système seront déjà présents, donc répondre en général "non" aux questions du script d'installation.
|
|
||||||
|
|
||||||
S'arrêter avant l'initialisation des bases de données.
|
|
||||||
|
|
||||||
7. Restaurer la sauvegarde:
|
|
||||||
|
|
||||||
cd /opt/scodoc/Products/ScoDoc/config
|
|
||||||
./restore_scodoc_data.sh /opt/data-scodoc-deb9
|
|
||||||
|
|
||||||
Vérifiez et voilà.
|
|
||||||
|
|
||||||
- Faire un peu de ménage (supprimer `/opt/scodoc.deb9` quand vous êtes sûr de n'y avoir rien oublié), vérifiez les logs (`/opt/scodoc/log`).
|
|
||||||
|
|
||||||
- Vérifier que le nouveau système (et ses bases de données) est bien sauvegardé ([SauvegardesBases](SauvegardesBases.md)).
|
|
||||||
|
|
||||||
|
|
||||||
|
356
docs/ModelisationParcoursBUT.md
Normal file
@ -0,0 +1,356 @@
|
|||||||
|
# Implémentation des parcours du BUT dans ScoDoc
|
||||||
|
Cette documentation est *destinée aux développeurs* et à tous ceux qui souhaitent
|
||||||
|
comprendre le fonctionnement du logiciel.
|
||||||
|
|
||||||
|
ScoDoc est livré avec les référentiels de compétences de tous les parcours de toutes
|
||||||
|
les spécialités de BUT. En effet, ces référentiels sont nationaux, publiés par
|
||||||
|
le ministère (voir
|
||||||
|
[https://cache.media.enseignementsup-recherche.gouv.fr/file/SPE4-MESRI-17-6-2021/32/3/_Annexe_1_PN_BUT_version_post_CNESER_20210511_18-05-2021-1_1411323.pdf](https://cache.media.enseignementsup-recherche.gouv.fr/file/SPE4-MESRI-17-6-2021/32/3/_Annexe_1_PN_BUT_version_post_CNESER_20210511_18-05-2021-1_1411323.pdf))
|
||||||
|
et ne sont pas susceptibles d'adaptations locales.
|
||||||
|
|
||||||
|
Nous nous sommes basés sur les versions exportées du logiciel Orébut.
|
||||||
|
|
||||||
|
## Rappel général sur le BUT et ScoDoc
|
||||||
|
Rappel simplifié, se concentrant sur les points utiles pour l'évaluation
|
||||||
|
et les liens avec le cursus de formation:
|
||||||
|
|
||||||
|
- Chaque parcours de BUT est défini par un ensemble de compétences.
|
||||||
|
- Une compétence est décomposée en deux ou trois *niveaux*, chacun constitué de
|
||||||
|
deux UE consécutives (sur semestres pair et impair de la même année
|
||||||
|
scolaire).
|
||||||
|
- Les UE sont des UE "LMD" habituelles; associées à des crédits ECTS,
|
||||||
|
capitalisables. Chaque UE est associée à une note (moyenne d'UE) et une
|
||||||
|
décision de jury (validée, ajournée, ...).
|
||||||
|
|
||||||
|
Dans le BUT, le référentiel de formation n'est pas fixé nationalement. Une part
|
||||||
|
est publiée (2/3) par le ministère, le reste est défini localement par les
|
||||||
|
universités (*adaptation locale*).
|
||||||
|
|
||||||
|
Les modules: on appelle ici "module" tout dispositif pédagogique évalué, dans le
|
||||||
|
BUT ce sont les *ressources* et les *SAÉ*.
|
||||||
|
|
||||||
|
Dans ScoDoc, le programme pédagogique définit les UE et modules pour l'ensemble
|
||||||
|
des semestres d'un ou plusieurs parcours. De cette façon, on pourra utiliser les
|
||||||
|
mêmes éléments dans plusieurs parcours, et grouper les étudiants de plusieurs
|
||||||
|
parcours dans le même semestre si on le souhaite.
|
||||||
|
|
||||||
|
## Modélisation ScoDoc
|
||||||
|
|
||||||
|
On a d'une part le *programme de formation*, et de l'autre le *référentiel de
|
||||||
|
compétences*.
|
||||||
|
|
||||||
|
### Programme de formation
|
||||||
|
Le programme de formation est constitué des classes suivantes (en BUT et dans
|
||||||
|
tous les types de formation. La notion de "matière" n'est pas utilisée en BUT).
|
||||||
|
|
||||||
|
- `Formation` (ex: "BUT R&T")
|
||||||
|
- `UniteEns` (UE, ex: "Administrer les réseaux")
|
||||||
|
- `Modules` (ressources, SAÉs) *<-> `ApcAppCritique`*, *<-> `ApcAnneeParcours`*
|
||||||
|
|
||||||
|
On voit que les modules ont toujours une UE de rattachement. Cependant, en BUT,
|
||||||
|
un module peut intervenir dans le calcul des notes de plusieurs UE, via une
|
||||||
|
matrice de coefficients.
|
||||||
|
|
||||||
|
On va aussi rattacher les Modules à un ou plusieurs ApcParcours, de façon à
|
||||||
|
pouvoir vérifier que les parcours couvrent les AC, et à faciliter les
|
||||||
|
inscriptions des étudiants aux modules (par ex. page présentant les modules
|
||||||
|
auxquels inscrire un groupe).
|
||||||
|
|
||||||
|
#### Cas des modules présents dans plusieurs parcours
|
||||||
|
|
||||||
|
Si un module est utilisé dans plusieurs parcours de la même formation BUT, cela
|
||||||
|
ne pose aucun problème, _sauf_ si ce module doit avoir des coefficients (vers
|
||||||
|
les UEs) différents selon le parcours dans lequel il intervient. Dans ce cas,
|
||||||
|
*il sera conseillé de créer plusieurs versions du module*, que l'on associera
|
||||||
|
aux divers parcours.
|
||||||
|
|
||||||
|
### Référentiel de compétences
|
||||||
|
Le référentiel de compétences est structuré par les classes suivantes:
|
||||||
|
|
||||||
|
- `ApcReferentielCompetences`
|
||||||
|
- `ApcCompetence`
|
||||||
|
- `ApcSituationPro`
|
||||||
|
- `ApcComposanteEssentielle`
|
||||||
|
- `ApcNiveau` (année (BUT1, BUT2, ...), ordre (1,2) ou (1,2,3)) *<-> `UE`*
|
||||||
|
- `ApcAppCritique` *<-> `Module`*
|
||||||
|
- `ApcParcours`
|
||||||
|
- `ApcAnneeParcours` (ordre=1,2,3) *<-> `Module`*
|
||||||
|
- *`ApcCompetence`* <- `ApcParcoursNiveauCompetence` (niveau 1, 2, 3) -> *`ApcAnneeParcours`*
|
||||||
|
|
||||||
|
Notons:
|
||||||
|
|
||||||
|
- Le lien entre UE et Niveau de compétence (`ApcNiveau`).
|
||||||
|
|
||||||
|
- Le lien à entre Compétence et Année de Parcours à travers la table
|
||||||
|
(*many-to-many*) `ApcParcoursNiveauCompetence` qui indique le niveau ce
|
||||||
|
compétence concerné.
|
||||||
|
|
||||||
|
- Le lien entre les apprentissages critiques (`ApcAppCritique`) et les
|
||||||
|
modules, qui permet d'établir les critères d'évaluation de chaque module.
|
||||||
|
|
||||||
|
### FormSemestres
|
||||||
|
La formation est mise en œuvre dans des `FormSemestre` (date début, fin,
|
||||||
|
enseignants responsables, ...) constitués de `ModuleImpl` (module avec enseignant,
|
||||||
|
évaluations, ...).
|
||||||
|
|
||||||
|
- `FormSemestre`
|
||||||
|
- `ModuleImpl`
|
||||||
|
- `Evaluation`
|
||||||
|
|
||||||
|
### Inscriptions des étudiants
|
||||||
|
Les étudiants sont inscrits:
|
||||||
|
|
||||||
|
- dans un `FormSemestre` (`FormSemestreInscription`, avec état (`I`, `D`,
|
||||||
|
`DEF`) et étape Apogée)
|
||||||
|
- dans un ModuleImpl (`ModuleImplInscription`)
|
||||||
|
- et, pour le BUT, dans un `ApcParcours` (**TODO**)
|
||||||
|
|
||||||
|
### Associations (nouvelles pour le BUT):
|
||||||
|
|
||||||
|
Pour la gestion des parcours BUT, il faut introduire les associations suivantes,
|
||||||
|
qui n'existent pas dans ScoDoc 9.2:
|
||||||
|
|
||||||
|
- UE <-> `ApcNiveau` : choix sur la page `ue_edit`
|
||||||
|
- `Module` <-> ensemble de `ApcParcours`
|
||||||
|
- `Module` ||--o{ `ApcAppCritique` : choix sur la page `module_edit`
|
||||||
|
- `FormSemestre` ||--o{ `ApcParcours` : choix sur la page
|
||||||
|
`formsemestre_editwithmodules`
|
||||||
|
- `Identite` }o--o{ `ApcParcours` : inscription au parcours, page à créer.
|
||||||
|
|
||||||
|
### Cas d'usage
|
||||||
|
|
||||||
|
#### Niveau de compétence d'un formsemestre
|
||||||
|
|
||||||
|
Le formsemestre est lié à un ensemble d'`ApcParcours`.
|
||||||
|
|
||||||
|
La liste des niveaux (`ApcNiveau`) associés aux UEs:
|
||||||
|
```
|
||||||
|
[ ue.niveau_competence
|
||||||
|
for ue in formsemestre.query_ues() if ue.niveau_competence ]
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Inscription d'un étudiant aux ModuleImpls
|
||||||
|
L'inscription reste libre (chaque individu peut être inscrit à un sous-ensemble
|
||||||
|
quelconque des `ModuleImpl` du `FormSemestre`), mais il sera commode de pouvoir:
|
||||||
|
|
||||||
|
- Créer des groupes de parcours (via `edit_partition_form`)
|
||||||
|
|
||||||
|
- Inscrire les étudiants d'un groupe à tous les modimpls du parcours:
|
||||||
|
Les modimpls d'un parcours sont donnés par la méthode `modimpls_parcours` de
|
||||||
|
`FormSemestre`.
|
||||||
|
|
||||||
|
#### Comment ScoDoc détermine-t-il les modules d'un parcours ?
|
||||||
|
Un parcours étant associé à des compétences, et les niveaux compétences à des
|
||||||
|
UE, on peut déterminer, pour un semestre de rang donné, l'ensemble des UE
|
||||||
|
associées à un parcours.
|
||||||
|
|
||||||
|
Par ailleurs, chaque niveau de compétence est associé à un ensemble d'AC
|
||||||
|
(`ApcAppCritique`), et chaque module est aussi associé à son ensemble d'AC.
|
||||||
|
|
||||||
|
Pour chaque parcours d'un `FormSemestre`, on déterminera l'ensemble des `ModuleImpl`
|
||||||
|
de ce semestre ayant des AC communs avec ceux des niveaux de compétences
|
||||||
|
associés aux UE du semestre (sic). Notons que les niveaux de compétences sont
|
||||||
|
annuels, mais que les `ModuleImpl` sont semestriels.
|
||||||
|
|
||||||
|
#### Vérifier que les ModuleImpls d'un parcours couvrent l'ensemble de ses ACs
|
||||||
|
|
||||||
|
Vérification utile en fin de formation.
|
||||||
|
|
||||||
|
##### En fin de formation, pour un étudiant
|
||||||
|
|
||||||
|
Soit un étudiant inscrit à un parcours. En fin de formation (S6), on peut
|
||||||
|
facilement vérifier que les AC ont été couverts:
|
||||||
|
|
||||||
|
- Lister les `ModuleImpl` auxquels l'étudiant a été inscrit dans ses semestres
|
||||||
|
(S1 à S6);
|
||||||
|
- En déduire l'ensemble des AC évalués pour cet étudiant (indépendamment de sa
|
||||||
|
réussite);
|
||||||
|
- Comparer aux AC du parcours tels que décrits dans le référentiel de compétence.
|
||||||
|
|
||||||
|
##### Au moment de la définition d'une formation
|
||||||
|
|
||||||
|
Le parcours du ref. de compétence indique un ensemble d'AC pour chaque niveau
|
||||||
|
(année). On pourra vérifier que les `Module`s de chaque année suffisent à
|
||||||
|
couvrir le parcours. Mais si les `Module`s ne sont pas associés à un parcours,
|
||||||
|
on ne peut pas aller plus loin.
|
||||||
|
|
||||||
|
|
||||||
|
#### Lister les regroupements d'UE d'un étudiant
|
||||||
|
|
||||||
|
Pour une année donnée: l'étudiant est inscrit dans ScoDoc soit dans le semestre
|
||||||
|
impair, soit pair, soit les deux (il est rare mais pas impossible d'avoir une
|
||||||
|
inscription seulement en semestre pair, par exemple suite à un transfert ou un
|
||||||
|
arrêt temporaire du cursus).
|
||||||
|
|
||||||
|
1. Déterminer l'*autre* semestre: semestre précédent ou suivant de la même
|
||||||
|
année, formation compatible (même référentiel de compétence) dans lequel
|
||||||
|
l'étudiant est inscrit.
|
||||||
|
|
||||||
|
2. Construire les couples d'UE (regroupements cohérents): apparier les UE qui
|
||||||
|
ont le même `ApcParcoursNiveauCompetence`.
|
||||||
|
|
||||||
|
Un `RegroupementCoherentUE` est simplement un couple d'UE du même niveau dans le
|
||||||
|
cursus (BUT1, BUT2 ou BUT3).
|
||||||
|
|
||||||
|
#### Déterminer si un étudiant peut passer dans l'année suivante
|
||||||
|
|
||||||
|
Note: on peut bien sûr toujours forcer le passage, pour traiter les cas
|
||||||
|
particuliers (décision de jury manuelle).
|
||||||
|
|
||||||
|
**Rappel:** le passage est de droit si
|
||||||
|
|
||||||
|
- [x] plus de la moitié des niveaux de compétences de l'année sont validés
|
||||||
|
- [x] aucun regroupement d'UE (niveau de compétence) de l'année < 8 /20
|
||||||
|
- [x] pour le passage en S5, avoir validé toutes les UE du BUT 1 (S1 et S2).
|
||||||
|
|
||||||
|
Il faut donc:
|
||||||
|
|
||||||
|
1. Construire les regroupements d'UE et calculer la moyenne des moyennes d'UE
|
||||||
|
(a priori de même poids, cela n'est pas spécifié dans les textes).
|
||||||
|
|
||||||
|
2. Vérifier les conditions ci-dessus.
|
||||||
|
|
||||||
|
3. Pour le passage en S5, construire l'ensemble des semestres de formations
|
||||||
|
relevant du même référentiel de compétences dans lesquels a été inscrit
|
||||||
|
l'étudiant, et vérifier que les UE de S1 et S2 sont validées.
|
||||||
|
|
||||||
|
|
||||||
|
#### Cas particulier: formations dont le nombre d'ECTS varie selon le parcours
|
||||||
|
|
||||||
|
Ce cas a été soulevé à propos du BUT MMI, qui préconiserait par exemple, au S4,
|
||||||
|
une compétence développer avec 10 ECTS dans le parcours "web", et 5 ECTS dans le
|
||||||
|
parcours "crea".
|
||||||
|
|
||||||
|
Si on veut pouvoir utiliser la même formation, et éventuellement mélanger les
|
||||||
|
étudiants des différents parcours dans le même `FormSemestre` (ce qui
|
||||||
|
simplifierait la gestion des modules communs), il faut modifier la modélisation:
|
||||||
|
Les ECTS sont actuellement des attributs de UEs.
|
||||||
|
Il faudrait avoir une association `UniteEns` }o..o{ `ApcParcours` qui contienne
|
||||||
|
les valeurs des ECTS.
|
||||||
|
|
||||||
|
## Enregistrement des validations de compétences
|
||||||
|
|
||||||
|
### Rappel: validations en formations classiques
|
||||||
|
Pour toutes les formations, ScoDoc enregistre les validations de semestres et
|
||||||
|
d'UE, via la classe `ScolarFormSemestreValidation`, dont les instances stockent:
|
||||||
|
|
||||||
|
- `etudid, formsemestre_id, code, event_date`
|
||||||
|
|
||||||
|
et pour les validations de semestres:
|
||||||
|
|
||||||
|
- `assidu, compense_formsemestre_id`
|
||||||
|
|
||||||
|
ou pour les validations d'UE
|
||||||
|
|
||||||
|
- `ue_id, is_external`
|
||||||
|
|
||||||
|
Les codes sont définis dans `sco_codes_parcours.py`, avec les valeurs: `ADC,
|
||||||
|
ADJ, ADM, AJ, ATB, ATJ, ATT, CMP, DEF, NAR, RAT` (voir [Gestion des Jurys
|
||||||
|
DUT](GestionJury.md)).
|
||||||
|
|
||||||
|
### Validation des niveaux de compétences
|
||||||
|
|
||||||
|
Pour le BUT, il faut enregistrer la validation des *niveaux de compétences*,
|
||||||
|
constitués de *regroupements cohérents d'UE* ("RCUE"), qui sont les UEs de la
|
||||||
|
même année de parcours associées à la même compétence.
|
||||||
|
|
||||||
|
On va stocker:
|
||||||
|
|
||||||
|
- ...
|
||||||
|
|
||||||
|
### Validation du BUT
|
||||||
|
|
||||||
|
### Codes préconisés par l'AMUE pour le BUT
|
||||||
|
On associe lors du jury un code de décision:
|
||||||
|
|
||||||
|
- À chaque UE: `VAL`, `COMP`, `AJ`, `UESBL`.
|
||||||
|
- À chaque niveau de compétence (RCUE): `VAL`, `AJ`, `CODJ`.
|
||||||
|
- À chaque année:
|
||||||
|
|
||||||
|
- `PASD`: Passage en Année Supérieure de Droit (+ de 50% des UE VAL et RCUE Ajourné(s) >=8)
|
||||||
|
- `PAS1NCI`: Passage en Année Supérieure avec au moins 1 Niveau de Compétence Insuffisant (RCUE<8)
|
||||||
|
- `RED`: Redoublement de l'année
|
||||||
|
- `REO`: REOrientation - décision automatique (revient à une exclusion), plus de 4 semestres RED ou décision de Jury
|
||||||
|
- `DEM`: DEMission (lettre de l'étudiant).
|
||||||
|
- `EXC`: EXClusion, décision réservée à des décisions disciplinaires
|
||||||
|
- `ABAN`: ABANdon constaté (sans lettre de démission)
|
||||||
|
- `ABL`: Année BLanchie
|
||||||
|
- Au diplôme: `ADM`
|
||||||
|
|
||||||
|
|
||||||
|
#### Correspondance avec les codes classiques de ScoDoc
|
||||||
|
|
||||||
|
ScoDoc utilise des codes [documentés ici](GestionJury.md).
|
||||||
|
|
||||||
|
- Pour les semestres: `ADM`, `ADC`, `ADJ`, `ATT`, `ATB`, `ATJ`, `AJ`, `NAR`.
|
||||||
|
En BUT, pas besoin de codes semestriels. On ajoutera un code `APC` pour
|
||||||
|
simplement indiquer que le jury s'est tenu. Ce code ne sera pas exporté vers Apogée.
|
||||||
|
|
||||||
|
- Pour les UEs: **Codes d'état d'UE:**
|
||||||
|
|
||||||
|
ScoDoc classic | BUT AMUE |
|
||||||
|
----------|-----|-----
|
||||||
|
ADM | VAL | UE validée automatiquement |
|
||||||
|
CMP | COMP| UE validée par compensation|
|
||||||
|
AJ | AJ | UE ajournée (échec) |
|
||||||
|
- | UESBL | blanchissement (non dispo en ScoDoc 9) |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Diagramme de classes
|
||||||
|
|
||||||
|
Juste pour rire, car ce diagramme est quasiment inexploitable (dessin réalisé
|
||||||
|
automatiquement en Mermaid).
|
||||||
|
|
||||||
|
``` mermaid
|
||||||
|
erDiagram
|
||||||
|
FormSemestre ||--|{ ModuleImpl : contient
|
||||||
|
ModuleImpl ||--o{ Evaluation : contient
|
||||||
|
Module ||--o{ ModuleImpl : ""
|
||||||
|
Formation ||--o{ UE : ""
|
||||||
|
UE ||--|{ Module : ""
|
||||||
|
|
||||||
|
Formation {
|
||||||
|
str titre
|
||||||
|
str acronym
|
||||||
|
str code
|
||||||
|
}
|
||||||
|
|
||||||
|
Etudiant {
|
||||||
|
str nom
|
||||||
|
}
|
||||||
|
|
||||||
|
FormSemestre {
|
||||||
|
int dept_id
|
||||||
|
str titre
|
||||||
|
date date_debut
|
||||||
|
date date_fin
|
||||||
|
}
|
||||||
|
|
||||||
|
Etudiant }|..|{ ModuleImpl : ModuleImplInscription
|
||||||
|
Etudiant }|..|{ FormSemestre : FormSemestreInscription
|
||||||
|
Etudiant }|..|{ ApcParcours : "optionnel"
|
||||||
|
|
||||||
|
Formation ||--o{ FormSemestre : ""
|
||||||
|
|
||||||
|
ApcReferentielCompetences ||--o{ ApcCompetence : ""
|
||||||
|
ApcCompetence ||--o{ ApcNiveau : ""
|
||||||
|
ApcCompetence ||--o{ ApcSituationPro : ""
|
||||||
|
ApcCompetence ||--o{ ApcComposanteEssentielle : ""
|
||||||
|
ApcNiveau }o..|| UE : "optionnel"
|
||||||
|
ApcNiveau ||--o{ ApcAppCritique : ""
|
||||||
|
ApcAppCritique }o..o{ Module : "optionnel"
|
||||||
|
|
||||||
|
ApcReferentielCompetences ||--o{ ApcParcours : ""
|
||||||
|
ApcParcours ||--o{ ApcAnneeParcours : ""
|
||||||
|
|
||||||
|
ApcAnneeParcours {
|
||||||
|
int ordre
|
||||||
|
}
|
||||||
|
|
||||||
|
ApcCompetence }o--o{ ApcAnneeParcours : "ApcParcoursNiveauCompetence (1,2,3)"
|
||||||
|
|
||||||
|
Module }o--o{ ApcParcours : "parcours_modules"
|
||||||
|
FormSemestre }o--o{ ApcParcours : "parcours_formsemestre"
|
||||||
|
UE }o..o{ ApcParcours : "pour les ECTS"
|
||||||
|
```
|
@ -9,4 +9,3 @@ Lors de la création d'un module dans un programme pédagogique, on peut spécif
|
|||||||
Une fois le module créé (et ajouté à un semestre), on peut y déclarer une évaluation et saisir les notes de bonus/malus.
|
Une fois le module créé (et ajouté à un semestre), on peut y déclarer une évaluation et saisir les notes de bonus/malus.
|
||||||
Ces notes sont toujours *à prise en compte immédiate*, il n'est donc pas nécessaire de saisir des notes de malus pour tous les étudiants.
|
Ces notes sont toujours *à prise en compte immédiate*, il n'est donc pas nécessaire de saisir des notes de malus pour tous les étudiants.
|
||||||
|
|
||||||
|
|
||||||
|
@ -31,7 +31,6 @@ Toutes les préférences pour le semestre considéré (ou définies globalement)
|
|||||||
Voir la liste complète sur [NomsPreferences](NomsPreferences.md).
|
Voir la liste complète sur [NomsPreferences](NomsPreferences.md).
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Informations sur le semestre
|
### Informations sur le semestre
|
||||||
Variable | Valeur
|
Variable | Valeur
|
||||||
---------|-------
|
---------|-------
|
||||||
@ -61,7 +60,7 @@ descr_demission || "Démission le 01/02/2000" ou vide si pas de démissio
|
|||||||
decision_jury || "Validé", "Ajourné", ... (code semestre
|
decision_jury || "Validé", "Ajourné", ... (code semestre
|
||||||
descr_decision_jury| "Décision jury: Validé" (une phrase
|
descr_decision_jury| "Décision jury: Validé" (une phrase
|
||||||
decisions_ue || noms (acronymes) des UE validées, séparées par des virgules.
|
decisions_ue || noms (acronymes) des UE validées, séparées par des virgules.
|
||||||
descr_decisions_ue|| " UE acquises: UE1, UE2", ou vide si pas de dec. ou paramètrage
|
descr_decisions_ue|| " UE acquises: UE1, UE2", ou vide si pas de dec. ou paramétrage
|
||||||
mention| Mention, calculée d'après la moyenne générale
|
mention| Mention, calculée d'après la moyenne générale
|
||||||
|
|
|
|
||||||
**Absences:** |
|
**Absences:** |
|
||||||
@ -96,12 +95,50 @@ Le balisage XML est celui de [ReportLab](http://www.reportlab.com/) (intra-parag
|
|||||||
### Logos
|
### Logos
|
||||||
Une balise supplémentaire est interprétée par ScoDoc pour insérer des logos (images).
|
Une balise supplémentaire est interprétée par ScoDoc pour insérer des logos (images).
|
||||||
|
|
||||||
Les logos doivent être des images au format JPEG (extension `.jpg` uniquement), placées dans le répertoire `.../logos/`, et nommées `logo_xxx.jpg`.
|
Les logos sont des images au format JPEG (extension `.jpg` ou `.jpeg`) ou PNG
|
||||||
|
(extension `.png`), téléversés sur le serveur scodoc et intégrables dans les
|
||||||
|
documents PDF. [Plus d'information sur la gestion des logos ici](GestionLogos.md).
|
||||||
|
|
||||||
La balise `<logo name="xxx" width="44mm" height="22mm" valign="+5mm"/>`, placée dans un paragraphe, insère alors le logo `xxx` avec les dimensions indiquées. Le paramètre `valign` règle le positionnement vertical par rapport à la ligne de texte courante.
|
Principes généraux :
|
||||||
|
|
||||||
|
* Un logo est désigné par un identifiant (nom) et peut être défini soit globalement, soit pour un département;
|
||||||
|
|
||||||
|
* le nom d'un logo est exclusivement composé de caractères alphanumériques ou du caractère '`-`';
|
||||||
|
|
||||||
|
* les logos définis globalement sont accessibles pour tous les départements.
|
||||||
|
Toutefois, si un logo de même nom est également présent dans un département,
|
||||||
|
c'est le logo du département qui sera utilisé en lieu et place de logo global;
|
||||||
|
|
||||||
|
* les logos de nom '`header`' et '`footer`' définis globalement ne peuvent être supprimés (mais peuvent être redéfinis).
|
||||||
|
|
||||||
|
L'enregistrement, la modification ou la suppression d'un logo peut être réalisé via la page de configuration qui est accessible aux
|
||||||
|
administrateurs Scodoc depuis la page d'accueil.
|
||||||
|
|
||||||
|
Ce formulaire comporte une section pour les définitions globales plus une section par département.
|
||||||
|
|
||||||
|
Une section présente la liste des logos avec leurs propriétés (la dimension est donnée à titre indicatif quand elle est disponible).
|
||||||
|
|
||||||
|
Pour chaque logo, les actions disponibles sont :
|
||||||
|
|
||||||
|
* Le remplacement de l'image existante par un nouveau fichier ;
|
||||||
|
|
||||||
|
* la suppression du logo (sauf pour `header`et `footer`dans la section globale) ;
|
||||||
|
|
||||||
|
* l'ajout d'un nouveau logo dans une section (global ou département) et indiquant le nom.
|
||||||
|
|
||||||
|
*NB*. Quelle que soit l'opération effectuée, le nom du fichier téléversé n'a aucune importance
|
||||||
|
(Seul le nom indiqué dans le formulaire est pris en compte et le format du fichier est déduit des données propres du fichier)
|
||||||
|
|
||||||
|
La balise `<logo name="xxx" width="44mm" height="22mm" valign="+5mm"/>`, placée dans un paragraphe, insère le logo de nom `xxx` avec les dimensions indiquées.
|
||||||
|
Le paramètre `valign` règle le positionnement vertical par rapport à la ligne de texte courante.
|
||||||
|
|
||||||
|
Notez qu'il est possible de ne préciser que l'une des deux dimensions hauteur ou largeur.
|
||||||
|
Dans ce cas, la dimension manquante est déduite du ratio (rapport hauteur/largeur) de l'image originale.
|
||||||
Voir un exemple d'utilisation plus bas.
|
Voir un exemple d'utilisation plus bas.
|
||||||
|
|
||||||
|
### Fond de page.
|
||||||
|
Les modalités d'utilisation des fonds de pages sont similaires pour les PV, les lettres individuelles de décision et les bulletins.
|
||||||
|
Celles-ci sont décrites ici: [Paramétrage des PV. Images de fond de page](ParametragePV.md)
|
||||||
|
|
||||||
## Exemples
|
## Exemples
|
||||||
### Exemple 1: Bulletins par défaut
|
### Exemple 1: Bulletins par défaut
|
||||||
|
@ -10,14 +10,32 @@ Le PV de jury est en format paysage et liste les résultats des étudiants chois
|
|||||||
## Image de fond de page (logos, tête, pied)
|
## Image de fond de page (logos, tête, pied)
|
||||||
L'exemple ci-dessus utilise une image de fond qui contient l'en-tête et le pied de page, avec des logos. Il faut fournir à ScoDoc une image de fond. Le plus simple est généralement de la composer dans un logiciel de traitement de texte, et de l'enregistrer en image: exporter en PDF puis convertir le PDF en image PNG ou JPEG de bonne résolution (300dpi , par exemple avec un logiciel comme Aperçu sur Mac.
|
L'exemple ci-dessus utilise une image de fond qui contient l'en-tête et le pied de page, avec des logos. Il faut fournir à ScoDoc une image de fond. Le plus simple est généralement de la composer dans un logiciel de traitement de texte, et de l'enregistrer en image: exporter en PDF puis convertir le PDF en image PNG ou JPEG de bonne résolution (300dpi , par exemple avec un logiciel comme Aperçu sur Mac.
|
||||||
|
|
||||||
L'image doit ensuite être enregistrée sur le serveur à un emplacement spécifique (seul l'administrateur du serveur peut faire cela):
|
L'image obtenue peut ensuite être téléversée sur le serveur de la même façon que pour un simple logo
|
||||||
|
(voir la section [paramétrage des bulletins, section Logos](ParametrageBulletins.md)
|
||||||
|
avec le nom "`pvjury_background`" ou "`letter_background`" selon le type de document visé.
|
||||||
|
|
||||||
- Pour les PV de jury (A4 paysage), sous le chemin `/opt/scodoc/var/scodoc/config/logos/pvjury_background.png`
|
Il ne reste plus qu'à activer l'option correspondante soit globalement dans le
|
||||||
- Pour les lettres individuelles (format A4 portrait), sous `/opt/scodoc/var/scodoc/config/logos/letter_background.png`
|
paramétrage du département, soit (pour les bulletins) dans par le menu réglage
|
||||||
|
bulletin du semestre (qui a priorité):
|
||||||
|
|
||||||
Ne pas oublier d'activer l'option *"Mettre l'image de fond sur les PV de jury"* dans les [paramètres du département](PreferencesScoDoc.md).
|
- Mettre l'image de fond sur les PV de jury (paysage)
|
||||||
|
- Mettre l'image de fond sur les bulletins
|
||||||
|
- Mettre l'image de fond sur les lettres individuelles de décision
|
||||||
|
|
||||||
**Note :** on peut aussi ajouter les logos séparément, mais il est plus commode de fournir une trame de fond complète. Voir [ici](GuideConfig/#changement-des-logos-apparaissant-sur-les-documents) si besoin.
|
**Note** : pour les serveurs migrés depuis ScoDoc 7, les anciennes
|
||||||
|
configurations sont normalement reprises automatiquement.
|
||||||
|
|
||||||
|
L'image doit ensuite être enregistrée sur le serveur à un emplacement spécifique
|
||||||
|
(seul l'administrateur du serveur peut faire cela): [voir la page sur la
|
||||||
|
configuration les images](GestionLogos.md).
|
||||||
|
|
||||||
|
Ne pas oublier d'activer l'option *"Mettre l'image de fond sur les PV de jury"*
|
||||||
|
dans les [paramètres du département](PreferencesScoDoc.md).
|
||||||
|
|
||||||
|
**Note :** on peut aussi ajouter les logos séparément, mais il est souvent plus
|
||||||
|
commode de fournir une trame de fond complète. Voir
|
||||||
|
[ici](GuideConfig/#changement-des-logos-apparaissant-sur-les-documents) si
|
||||||
|
besoin.
|
||||||
|
|
||||||
## PV de Jury: textes, marges et autres paramètres
|
## PV de Jury: textes, marges et autres paramètres
|
||||||
|
|
||||||
@ -31,9 +49,11 @@ Les paragraphes de texte utilisent un balisage identique à celui des bulletins
|
|||||||
|
|
||||||
## Lettres individuelles
|
## Lettres individuelles
|
||||||
|
|
||||||
ScoDoc génère un docuement PDF contenant les letters de tous les étudiants du semestre ou d'un groupe.
|
ScoDoc génère un document PDF contenant les lettres de tous les étudiants du semestre ou d'un groupe.
|
||||||
|
|
||||||
Le principe est le même, mais on fournit une trame de fond au format portrait, come indiqué plus haut. Le texte de la lettre est configurable dans les préférences.
|
Le principe est le même, mais on fournit une trame de fond au format portrait,
|
||||||
|
comme indiqué plus haut. Le texte de la lettre est configurable dans les
|
||||||
|
préférences.
|
||||||
|
|
||||||
<img src="/screens/LettresPreferences.png" width="50%">
|
<img src="/screens/LettresPreferences.png" width="50%">
|
||||||
|
|
||||||
|
@ -1,19 +1,25 @@
|
|||||||
|
|
||||||
# Problèmes d'envoi de courriers électroniques
|
# Problèmes d'envoi de courriers électroniques
|
||||||
ScoDoc envoie des mails en plusieurs occasions (bulletins de notes, importation d'utilisateurs, alertes sur absences, exceptions dans le code).
|
ScoDoc envoie des mails en plusieurs occasions (bulletins de notes, importation
|
||||||
|
d'utilisateurs, alertes sur absences, exceptions dans le code).
|
||||||
|
|
||||||
Cette page explique ce qu'il faut vérifier si l'envoi des messages ne fonctionne pas.
|
Cette page explique ce qu'il faut vérifier si l'envoi des messages ne fonctionne
|
||||||
|
pas.
|
||||||
|
|
||||||
|
## Configuration du serveur
|
||||||
|
ScoDoc suppose que la machine serveur sur laquelle il s'exécute est dotée d'un
|
||||||
|
serveur de mail capable d'envoyer des messages (soit directement, soit via un
|
||||||
|
relais). L'installeur propose d'installer le logiciel serveur Postfix.
|
||||||
|
|
||||||
|
|
||||||
ScoDoc suppose que la machine serveur sur laquelle il s'exécute est dotée d'un serveur de mail capable d'envoyer des messages (soit directement, soit via un relais). L'installeur propose d'installer le logiciel serveur Postfix.
|
1. Vérifier que votre serveur de messagerie est bien configuré: dans un
|
||||||
|
terminal, envoyez un message
|
||||||
|
|
||||||
1. Vérifier que votre serveur de messagerie est bien configuré: dans un terminal, envoyez un message
|
|
||||||
```
|
```
|
||||||
mail mon_adresse@universite.fr
|
mail mon_adresse@universite.fr
|
||||||
... entrer votre texte, terminez par ctrl-d ...
|
... entrer votre texte, terminez par ctrl-d ...
|
||||||
```
|
```
|
||||||
Si vous ne recevez pas le message que vous vous envoyiez, revoir la configuration de votre serveur, par exemple avec la commande
|
Si vous ne recevez pas le message que vous vous envoyiez, revoir la
|
||||||
|
configuration de votre serveur, par exemple avec la commande
|
||||||
```
|
```
|
||||||
dpkg-reconfigure postfix
|
dpkg-reconfigure postfix
|
||||||
```
|
```
|
||||||
@ -29,14 +35,19 @@ Connected to localhost.
|
|||||||
Escape character is '^]'.
|
Escape character is '^]'.
|
||||||
220 nom_du_serveur ESMTP Postfix (Debian/GNU)
|
220 nom_du_serveur ESMTP Postfix (Debian/GNU)
|
||||||
```
|
```
|
||||||
(quitter avec ctrl-] puis quit)
|
(quitter avec ctrl-] puis `quit`)
|
||||||
|
|
||||||
3. Si cela fonctionne, passer au test de ScoDoc: créer un étudiant bidon, lui attribuer une adresse mail que vous pouvez lire, l'inscrire à un semestre, et lui envoyer son bulletin par mail. (sur la page web de son bulletin, petit menu "Autres opérations").
|
## Tests avec ScoDoc
|
||||||
|
|
||||||
A ce moment, regarder le log
|
Une fois que le mail, fonctionne, passer au test de ScoDoc: créer un étudiant
|
||||||
|
bidon, lui attribuer une adresse mail que vous pouvez lire, l'inscrire à un
|
||||||
|
semestre, et lui envoyer son bulletin par mail. (sur la page web de son
|
||||||
|
bulletin, petit menu "Autres opérations").
|
||||||
|
|
||||||
|
À ce moment, regarder le log
|
||||||
`/opt/scodoc/instance/log/notes.log`
|
`/opt/scodoc/instance/log/notes.log`
|
||||||
|
|
||||||
on devrait voir quelque chose ressemblant à:
|
On devrait voir quelque chose ressemblant à:
|
||||||
```
|
```
|
||||||
[Sun Sep 07 11:37:40 2008] mail bulletin a emmanuel.viennet@gmail.com
|
[Sun Sep 07 11:37:40 2008] mail bulletin a emmanuel.viennet@gmail.com
|
||||||
[Sun Sep 07 11:37:40 2008] sendEmail: ok
|
[Sun Sep 07 11:37:40 2008] sendEmail: ok
|
||||||
@ -51,6 +62,17 @@ delays=0.03/0/0.41/1, dsn=2.0.0, status=sent (250 2.0.0 OK 1220942550 y2si226470
|
|||||||
|
|
||||||
Cela devrait permettre de savoir:
|
Cela devrait permettre de savoir:
|
||||||
|
|
||||||
1. si ScoDoc tente d'envoyer un mail (notes.log)
|
1. si ScoDoc tente d'envoyer un mail (`notes.log`);
|
||||||
|
|
||||||
2. si le serveur SMTP arrive à traiter ce mail.
|
2. si le serveur SMTP arrive à traiter ce mail.
|
||||||
|
|
||||||
|
## Redirection des tous les mails de ScoDoc
|
||||||
|
|
||||||
|
Afin de vérifier les envois de mail, il peut être pratique de détourner tous les
|
||||||
|
envois vers une adresse (cela permet par exemple de tester les envois de
|
||||||
|
notification ou de bulletins sans déranger les étudiants ou les collègues).
|
||||||
|
|
||||||
|
Pour cela, aller sur la page *Paramétrage*, tout en bas, et indiquer une
|
||||||
|
*Adresse de test*. Ne pas oublier de l'enlever une fois les essais effectués !
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ Pour communiquer aux étudiants leurs réultats, plusieurs solutions:
|
|||||||
- Envoi des bulletins (pdf) par mail (c'est facile depuis le menu "Notes").
|
- Envoi des bulletins (pdf) par mail (c'est facile depuis le menu "Notes").
|
||||||
|
|
||||||
- Publication sur un autre site Web: typiquement l'ENT de l'établissement, ou un mini-site dédié.
|
- Publication sur un autre site Web: typiquement l'ENT de l'établissement, ou un mini-site dédié.
|
||||||
- Pour interfacer un ENT, [voir l'API](ScoDocAPI.md).
|
- Pour interfacer un ENT, [voir l'API](ScoDoc9API.md).
|
||||||
- Plusieurs collègues ont développé des mini-sites pour publier les notes (accès protégé par CAS ou autre). Ces codes ne font pas stricto censu partie de ScoDoc. Quelques exemples en PHP sont distribués dans le répertoire `misc/PublicationBulletins` ([voir ici](https://scodoc.org/git/viennet/ScoDoc/src/branch/master/misc/PublicationBulletins)).
|
- Plusieurs collègues ont développé des mini-sites pour publier les notes (accès protégé par CAS ou autre). Ces codes ne font pas stricto censu partie de ScoDoc. Quelques exemples en PHP sont distribués dans le répertoire `misc/PublicationBulletins` ([voir ici](https://scodoc.org/git/viennet/ScoDoc/src/branch/master/misc/PublicationBulletins)).
|
||||||
- Plus récemment (2020), des collègues de l'IUT de Mulhouse ont développé un mini-portail complet: [Scodoc_Notes](https://github.com/SebL68/Scodoc_Notes) (github), [historique](https://notes.iutmulhouse.uha.fr/maj.php).
|
- Plus récemment (2020), des collègues de l'IUT de Mulhouse ont développé un mini-portail complet: [Scodoc_Notes](https://github.com/SebL68/Scodoc_Notes) (github), [historique](https://notes.iutmulhouse.uha.fr/maj.php).
|
||||||
|
|
||||||
|
246
docs/RelationsEntreprises.md
Normal file
@ -0,0 +1,246 @@
|
|||||||
|
# Application "relations entreprises"
|
||||||
|
|
||||||
|
Cette application a pour but de permettre aux utilisateurs de retrouver et mémoriser toutes les relations entreprises dans un même endroit sous la forme d'une base interne à l'établissement.
|
||||||
|
|
||||||
|
Les utilisateurs interrogés insistent sur leur souhait d'avoir une interface simple et intuitive.
|
||||||
|
|
||||||
|
|
||||||
|
## Principales fonctionnalités
|
||||||
|
|
||||||
|
L'application, intégrée à ScoDoc, fournira:
|
||||||
|
|
||||||
|
- Saisie et gestion des entreprises
|
||||||
|
- Saisie et gestion des offres de stage et d'apprentissage
|
||||||
|
- Envoi des offres aux responsables de formations
|
||||||
|
- Historique à propos des entreprises
|
||||||
|
- Historique des modifications des fiches entreprises
|
||||||
|
- Journal de bord des étudiants pour suivre les candidatures
|
||||||
|
|
||||||
|
|
||||||
|
## Les utilisateurs
|
||||||
|
|
||||||
|
- le pôle des relations extérieures (le responsable, l'assistant, les chargés de relations entreprises)
|
||||||
|
- les secrétariats pédagogiques
|
||||||
|
- les responsables de stage
|
||||||
|
- les responsables de formations
|
||||||
|
|
||||||
|
Des actions et visibilités différentes selon le rôle de l'utilisateur (voir section "Rôles" plus loin).
|
||||||
|
|
||||||
|
|
||||||
|
## Les entreprises
|
||||||
|
|
||||||
|
Les entreprises possèderont chacune une fiche avec toutes leurs informations.
|
||||||
|
|
||||||
|
Lorsqu'un utilisateur souhaite indiquer une relation avec une entreprise ou
|
||||||
|
a été contacté par une entreprise, il pourra saisir les informations de
|
||||||
|
l'entreprise dans la base si elle n'existe pas encore.
|
||||||
|
Si l'entreprise existe mais que l'utilisateur veut ajouter ou corriger des infos ? Ou ajouter un "correspondant" ? Peut-être un lien vers la modification de cette entreprise.
|
||||||
|
|
||||||
|
|
||||||
|
### Données sur l'entreprise:
|
||||||
|
|
||||||
|
- SIRET
|
||||||
|
- Nom
|
||||||
|
- Adresse, Code postal, Ville, Pays
|
||||||
|
- Élements de contact (nom, prénom, numéro de téléphone, email)
|
||||||
|
|
||||||
|
Ces élements de contacts sont associés à une personne ou un service (par exemple "ressources humaine") au sein de l'entreprise. Il y en aura donc un nombre variable.
|
||||||
|
|
||||||
|
Une entreprise peut avoir plusieurs éléments de contact, il peut s'agir d'une personne physique, du service ressources humaines d'une entreprise ou d'un autre service selon la situation.
|
||||||
|
|
||||||
|
Les entreprises sont identifiés par leur SIRET (unique) pour éviter les duplications et doivent toujours posséder des éléments de contact sinon inexploitable par les utilisateurs.
|
||||||
|
|
||||||
|
Les entreprises possède un SIRET pour chaque établissement de l'entreprise ce qui le rend unique, je pense donc que le SIRET est un bon moyen d'identifier une entreprise, peut-être mettre le SIREN aussi?
|
||||||
|
|
||||||
|
TODO: distinguer SIRET et SIREN, pour les grandes entreprises multi-sites voir https://www.economie.gouv.fr/entreprises/numeros-siren-siret
|
||||||
|
|
||||||
|
(Les établissements avec le même SIREN sont présent sur la même fiche entreprise avec chacun leur adresse)
|
||||||
|
|
||||||
|
Un historique sur l'entreprise pour pouvoir savoir quel étudiant a déjà réalisé un stage ou un contrat d'alternance au sein de l'entreprise avec:
|
||||||
|
- identifiant de l'étudiant INE ou ScoDoc id (`etudid`)
|
||||||
|
- type de contrat
|
||||||
|
- date début et fin
|
||||||
|
- formation de l'étudiant (texte)
|
||||||
|
- formation de l'étudiant: identifiant ScoDoc (`formsemestre_id`)
|
||||||
|
|
||||||
|
Un historique sur les modifications faites sur chaque fiche entreprise :
|
||||||
|
- modification adresse
|
||||||
|
- ajout/modification/suppression contact
|
||||||
|
- ajout/modification/suppression offre
|
||||||
|
|
||||||
|
L'ajout d'entreprise envoie un mail d'alerte au pole des relations extérieures.
|
||||||
|
|
||||||
|
|
||||||
|
## Les offres
|
||||||
|
|
||||||
|
Une entreprise peut proposer des offres.
|
||||||
|
|
||||||
|
Un utilisateur reçoit une offre d'une entreprise, il peut saisir l'offre dans la base qui sera ensuite affiché sur la fiche entreprise de celle ci. L'offre pourra ensuite être validé ou non par un responsable de formation s'il pense que les missions sont adéquates à la formation.
|
||||||
|
|
||||||
|
### Données sur les offres:
|
||||||
|
|
||||||
|
- Intitulé du poste
|
||||||
|
- Présentation?
|
||||||
|
- Type de l'offre
|
||||||
|
- Missions
|
||||||
|
- Durée
|
||||||
|
|
||||||
|
Chaque offre est reliée à une entreprise.
|
||||||
|
|
||||||
|
Les utilisateurs ont la possibilité d'envoyer les offres aux responsables de formations par la suite les responsables de formations diffusent l'offre au sein de leur formation.
|
||||||
|
Les responsables de formations ne sont reliés à aucun objet. Les utilisateurs envoient l'offre aux responsables de formations s'ils pensent que l'offre correspond bien à la formation.
|
||||||
|
|
||||||
|
L'ajout d'une offre envoie un mail d'alerte au responsable du pole des relations extérieures.
|
||||||
|
|
||||||
|
|
||||||
|
## Journal de bord
|
||||||
|
|
||||||
|
Journal de bord pour les étudiants afin de suivre leurs candidatures dans les offres envoyées préalablement par son responsable de formation.
|
||||||
|
|
||||||
|
Sur le journal de bord apparaîtra les offres que la responsable de formation a reçu et valider puis envoyer à ces étudiants. Les étudiants doit pouvoir saisir un commentaire s'il n'a candidaté a l'offre ou indiquer qu'il a candidater.
|
||||||
|
|
||||||
|
Les utilisateurs pourront avoir accès a ces journaux de bord pour constater l'avancée et l'implication des étudiants dans leurs candidatures.
|
||||||
|
|
||||||
|
Les étudiants accèdent au journal de bord en se connectant avec leur compte personnel et peuvent commenter chaque offre de stage/alternance.
|
||||||
|
|
||||||
|
Possibilités:
|
||||||
|
- Oui, j'ai candidaté (quand)
|
||||||
|
- Non, je n'ai pas candidaté (pourquoi)
|
||||||
|
|
||||||
|
|
||||||
|
Permettre aux entreprises d'avoir accès au bordereau de stage afin qu'il puisse le remplir (s'il compte déjà prendre un stagiaire) ou de proposer une offre de stage.
|
||||||
|
Un lien pour télécharger un bordereau de stage ajouté par les utilisateurs de l'application pour les entreprises.
|
||||||
|
XXX accès des entreprises: avec quel compte (identifiant). Quand et par qui ce compte est-il créé ? Je ne sais pas encore.
|
||||||
|
|
||||||
|
## Rôles et actions associées
|
||||||
|
|
||||||
|
2 rôles avec des droits différents.
|
||||||
|
|
||||||
|
Utilisateur possédant un rôle avec visibilité totale et toutes les actions possibles sur la base:
|
||||||
|
- le pôle des relations extérieures avec le responsable, son assistant et les chargés de relations entreprises;
|
||||||
|
- administrateur informatique.
|
||||||
|
- directeur de l'IUT?
|
||||||
|
|
||||||
|
Utilisateur possédant un rôle avec seulement une visibilité sur la base selon le département dont il appartient :
|
||||||
|
- les reponsables de formations
|
||||||
|
- les secrétariat pédagogiques
|
||||||
|
- les chefs de département
|
||||||
|
- le responsable administratif
|
||||||
|
|
||||||
|
|
||||||
|
## Processus
|
||||||
|
|
||||||
|
Liste des principaux processus métiers identifiés: à préciser et compléter au cours du projet.
|
||||||
|
|
||||||
|
### Ajout d'une entreprise
|
||||||
|
|
||||||
|
- Acteur: tout personnel autorisé (le responsable et l' assistant du pôle des relations extérieures et les chargés de relations entreprises).
|
||||||
|
- Quand: à tout moment.
|
||||||
|
- Action: saisie des données sur une nouvelle entreprise, avec un point de contact
|
||||||
|
- Déclenche: notification au chargés de relations entreprises (à toutes les personnes du pôle des relations extérieures).
|
||||||
|
- Remarques: recherche d'entreprises ressemblantes pour éviter doublons.
|
||||||
|
|
||||||
|
### Modification d'une entreprise
|
||||||
|
- Acteur: tout personnel autorisé (le responsable et l' assistant du pôle des relations extérieures et les chargés de relations entreprises).
|
||||||
|
- Quand: à tout moment.
|
||||||
|
- Action: modifie les données sur une entreprise.
|
||||||
|
- Déclenche: ajout des modifications dans un historique visible.
|
||||||
|
- Remarques: ...
|
||||||
|
|
||||||
|
### Consultation des entreprises
|
||||||
|
- Acteur: tout personnel autorisé.
|
||||||
|
- Quand: à tout moment.
|
||||||
|
- Action: moteur de recherche, liste des entreprises.
|
||||||
|
- Déclenche: rien.
|
||||||
|
- Remarques: ...
|
||||||
|
|
||||||
|
### Consultation des offres
|
||||||
|
|
||||||
|
- Acteurs: tout personnel autorisé.
|
||||||
|
- Quand: à tout moment.
|
||||||
|
- Action: moteur de recherche, liste des offres de stages et d'alternance publiées.
|
||||||
|
- Déclenche: rien.
|
||||||
|
- Remarques: les offres devront impérativement avoir une date d'expiration pour éviter d'afficher ici des offres anciennes.
|
||||||
|
|
||||||
|
### Ajout d'une offre
|
||||||
|
|
||||||
|
- Acteurs: tout personnel autorisé (le responsable et l' assistant du pôle des relations extérieures et les chargés de relations entreprises).
|
||||||
|
- Quand: à tout moment.
|
||||||
|
- Action: saisie des données sur une nouvelle offre.
|
||||||
|
- Déclenche: notification au chargés de relations entreprises (à toutes les personnes du pôle des relations extérieures).
|
||||||
|
- Remarques: ...
|
||||||
|
|
||||||
|
### Validation d'une offre par un responsable de formation
|
||||||
|
- Acteur: les responsables de formation
|
||||||
|
- Quand: après la demande de validation d'une offre par le pôle des relations extérieures.
|
||||||
|
- Action: valide l'ajout d'une offre.
|
||||||
|
- Déclenche: notification au chargés de relations entreprises (à toutes les personnes du pôle des relations extérieures).
|
||||||
|
- Remarques: si l'ajout d'une offre est non validé, elle peut être modifier par la suite
|
||||||
|
|
||||||
|
### Modification d'une offre
|
||||||
|
- Acteurs: tout personnel autorisé (le responsable et l' assistant du pôle des relations extérieures et les chargés de relations entreprises).
|
||||||
|
- Quand: à tout moment.
|
||||||
|
- Action: modifie les données d'une offre.
|
||||||
|
- Déclenche: ajout des modifications dans un historique visible.
|
||||||
|
- Remarques: ...
|
||||||
|
|
||||||
|
### Suppression d'une offre
|
||||||
|
- Acteurs: tout personnel autorisé (le responsable et l' assistant du pôle des relations extérieures et les chargés de relations entreprises).
|
||||||
|
- Quand: à tout moment.
|
||||||
|
- Action: suppression d'une offre expiré (peut-être dans d'autre cas à voir)
|
||||||
|
- Déclenche: notification au chargés de relations entreprises (à toutes les personnes du pôle des relations extérieures).
|
||||||
|
- Remarques: ...
|
||||||
|
|
||||||
|
### Envoie d'une offre à un responsable de formation
|
||||||
|
- Acteurs: tout personnel autorisé (le responsable et l' assistant du pôle des relations extérieures et les chargés de relations entreprises).
|
||||||
|
- Quand: à tout moment.
|
||||||
|
- Action: envoie d'une offre a un responsable de formation.
|
||||||
|
- Déclenche: notification au responsable de formation.
|
||||||
|
- Remarques: ...
|
||||||
|
|
||||||
|
### Envoie d'une offre aux étudiants par le responsable de formation
|
||||||
|
- Acteurs: le responsable de formation.
|
||||||
|
- Quand: après avoir reçu une offre de la part du pôle des relations extérieures
|
||||||
|
- Action: envoie d'une offre aux étudiants d'une formation
|
||||||
|
- Déclenche: notification aux étudiants, ajout de l'offre dans le journal de bord des étudiants afin qu'il puisse candidater et commenter leur candidature
|
||||||
|
- Remarques: le responsable peut envoyer l'offre à tous ces élèves ou cibler les élèves.
|
||||||
|
|
||||||
|
### Consultation journal de bord des étudiants
|
||||||
|
- Acteurs: tout personnel autorisé.
|
||||||
|
- Quand: à tout moment.
|
||||||
|
- Action: accès aux journaux de bord par formation.
|
||||||
|
- Déclenche: rien.
|
||||||
|
- Remarques: ...
|
||||||
|
|
||||||
|
### ...
|
||||||
|
|
||||||
|
|
||||||
|
## Échanges de données avec ScoDoc et autres composants du SI
|
||||||
|
|
||||||
|
Dans cette section, on préciser les besoins de l'appli "relations entreprises": points API avec ScoDoc et éventuellement d'autres composants du SI.
|
||||||
|
|
||||||
|
L'API de ScoDoc 9 étant en cours de rénovation, on précisera simplement, dans un premier temps, les besoins sans indiquer les points d'API précis. par exemple:
|
||||||
|
- informations (dates, intitulés) sur une formation
|
||||||
|
- informations sur les formations suivies par un étudiant identifié par son INE
|
||||||
|
- récupérer l'id de l'utilisateur responsable d'une formation
|
||||||
|
- ...
|
||||||
|
|
||||||
|
Réfléchir à l'utilisation (ou non) d'un accès à l'annuaire LDAP de l'établissement pour avoir les rôles. Une autre solution serait de se reposer sur ScoDoc pour avoir les id utilisateurs et les rôles.
|
||||||
|
|
||||||
|
|
||||||
|
## Idées
|
||||||
|
|
||||||
|
Possibilité aux entreprises de saisir leurs offres avec validation par le pôle des relations extérieures.
|
||||||
|
|
||||||
|
Possibilité d'importer des données déjà existantes (Excel).
|
||||||
|
|
||||||
|
## Architecture de l'application
|
||||||
|
|
||||||
|
- Module ScoDoc (blueprint) offrant pages pour les personnels et API.
|
||||||
|
|
||||||
|
- Module étudiant: séparé, interfacé via API (à définir plus tard)
|
||||||
|
|
||||||
|
- Module entreprises: séparé, interfacé via API: à définir (plus tard ?)
|
||||||
|
|
||||||
|
## Questions
|
||||||
|
|
@ -1,23 +1,43 @@
|
|||||||
|
|
||||||
|
|
||||||
# Mise en place de sauvegardes des bases de données ScoDoc 9
|
# Mise en place de sauvegardes des bases de données ScoDoc 9
|
||||||
Il est ***vivement recommandé*** de mettre en place une stratégie de sauvegarde permettant de rétablir le service en minimisant les pertes de données à la suite d'un accident majeur mais probable comme: crash de disque dur, bug, vol du serveur, incendie...
|
Il est ***vivement recommandé*** de mettre en place une stratégie de sauvegarde
|
||||||
|
permettant de rétablir le service en minimisant les pertes de données à la suite
|
||||||
|
d'un accident majeur mais probable comme: crash de disque dur, bug, vol du
|
||||||
|
serveur, incendie...
|
||||||
|
|
||||||
Nous recommandons d'agir à deux niveaux:
|
Nous recommandons d'agir à deux niveaux:
|
||||||
|
|
||||||
* sauvegarde des bases de données postgresql: dump des bases dans des fichiers. Le script donné ci-dessous peut se charger de gérer cela.
|
* sauvegarde des bases de données postgresql: dump des bases dans des fichiers.
|
||||||
|
Le script donné ci-dessous peut se charger de gérer cela.
|
||||||
|
|
||||||
* sauvegarde du système complet (et de ses disques durs): la forme dépend de l'environnement (machine virtuelle ou non...). Dans tous les cas, les données doivent être sauvegardées dans une salle (voire un bâtiment) différente de celle abritant le serveur ScoDoc (vols ou incendies). Typiquement, une sauvegarde quotidienne (nocturne) est suffisante.
|
* sauvegarde du système complet (et de ses disques durs): la forme dépend de
|
||||||
|
l'environnement (machine virtuelle ou non...). Dans tous les cas, les données
|
||||||
|
doivent être sauvegardées dans une salle (voire un bâtiment) différente de
|
||||||
|
celle abritant le serveur ScoDoc (vols ou incendies). Typiquement, une
|
||||||
|
sauvegarde quotidienne (nocturne) est suffisante.
|
||||||
|
|
||||||
Notons que ScoDoc sauvegarde de nombreuses informations sous le répertoire `/opt/scodoc-data` (en particulier les photos, les documents archivés et divers réglages): *il est absolument nécessaire de sauvegarder aussi ce répertoire*, en plus des bases de données SQL.
|
Notons que ScoDoc sauvegarde de nombreuses informations sous le répertoire
|
||||||
|
`/opt/scodoc-data` (en particulier les photos, les documents archivés et divers
|
||||||
|
réglages): *il est absolument nécessaire de sauvegarder aussi ce répertoire*, en
|
||||||
|
plus des bases de données SQL.
|
||||||
|
|
||||||
|
|
||||||
### Dump des bases de données
|
## Dump des bases de données
|
||||||
Le script `backup_db9` (fourni dans le répertoire `/opt/scodoc/tools/backups`) peut être utilisé pour effectuer des sauvegardes automatisées des bases de données SQL. Les données sont extraites de la base et écrites sur le disque local du serveur, qui doit bien entendu être sauvegardé par d'autres moyens, comme indiqué ci-dessus.
|
Le script `backup_db9` (fourni dans le répertoire `/opt/scodoc/tools/backups`)
|
||||||
|
peut être utilisé pour effectuer des sauvegardes automatisées des bases de
|
||||||
|
données SQL. Les données sont extraites de la base et écrites sur le disque
|
||||||
|
local du serveur, qui doit bien entendu être sauvegardé par d'autres moyens,
|
||||||
|
comme indiqué ci-dessus.
|
||||||
|
|
||||||
Le script `backup_db9` permet de conserver des sauvegardes de chaque heure durant les 48 (par défaut) dernières heures, des sauvegardes quotidiennes des 40 derniers jours, hebdomadaires des 30 dernières semaines, et mensuelles des 200 derniers mois (tout ceci est paramétrable dans le script `/opt/scodoc/tools/backups/backup_rotation.sh`).
|
Le script `backup_db9` permet de conserver des sauvegardes de chaque heure
|
||||||
|
durant les 48 (par défaut) dernières heures, des sauvegardes quotidiennes des 40
|
||||||
|
derniers jours, hebdomadaires des 30 dernières semaines, et mensuelles des 200
|
||||||
|
derniers mois (tout ceci est paramétrable dans le script
|
||||||
|
`/opt/scodoc/tools/backups/backup_rotation.sh`).
|
||||||
|
|
||||||
Par défaut, les fichiers de sauvegardes sont créés dans le répertoire de l'utilisateur `postgres` (actuellement `/var/lib/postgresql/`).
|
Par défaut, les fichiers de sauvegardes sont créés dans le répertoire de
|
||||||
|
l'utilisateur `postgres` (actuellement `/var/lib/postgresql/`).
|
||||||
|
|
||||||
|
|
||||||
En tant que `root` sur le serveur, faire:
|
En tant que `root` sur le serveur, faire:
|
||||||
@ -34,10 +54,21 @@ et ajouter:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
### En cas de problème: restaurer la base à partir d'une sauvegarde
|
## En cas de problème: restaurer la base à partir d'une sauvegarde
|
||||||
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Attention, certaines informations sont stockées dans des fichiers et non dans la base de données: configuration du logiciel, photos des étudiants. Ce paragraphe ne traite que de la restauration à de la base de données.
|
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;"
|
||||||
|
alt="/!\" /> Attention, certaines informations sont stockées dans des fichiers
|
||||||
|
et non dans la base de données: configuration du logiciel, photos des étudiants.
|
||||||
|
Ce paragraphe ne traite que de la restauration de la base de données.
|
||||||
|
|
||||||
1. Choisir la sauvegarde à utiliser, en fonction de la date à partir de laquelle on a fait une erreur (eg suppression non intentionnelle d'un semestre...). Le fichier se trouve sous `/var/lib/postgresql/SCODOC-BACKUPS`où `XXX` est concerné. Utiliser par exemple `ls -lrt` pour visualiser les sauvegardes triées par date.
|
Rappel: en ScoDoc 9, il n'y a qu'une seule base de donnée SQL, nommée par défaut
|
||||||
|
`SCODOC`. Cette base contient les données des départements et la définition des
|
||||||
|
comptes utilisateurs.
|
||||||
|
|
||||||
|
1. Choisir la sauvegarde à utiliser, en fonction de la date à partir de
|
||||||
|
laquelle on a fait une erreur (par ex. suppression non intentionnelle d'un
|
||||||
|
semestre...). Le fichier se trouve sous
|
||||||
|
`/var/lib/postgresql/SCODOC-BACKUPS`où `XXX` est concerné. Utiliser par
|
||||||
|
exemple `ls -lrt` pour visualiser les sauvegardes triées par date.
|
||||||
|
|
||||||
1. Copier le fichier de sauvegarde choisi et le décomprimer; par exemple:
|
1. Copier le fichier de sauvegarde choisi et le décomprimer; par exemple:
|
||||||
|
|
||||||
@ -52,24 +83,44 @@ et ajouter:
|
|||||||
```
|
```
|
||||||
# en tant que root...
|
# en tant que root...
|
||||||
systemctl stop scodoc9 # arret du serveur
|
systemctl stop scodoc9 # arret du serveur
|
||||||
su postgres
|
su - scodoc
|
||||||
dropdb SCODOC # <<< votre base production
|
dropdb SCODOC # <<< votre base production
|
||||||
pg_restore -C -d scodoc /tmp/SCODOC_pgdump # <<<
|
createdb -E UTF-8 SCODOC
|
||||||
|
pg_restore -d SCODOC /tmp/SCODOC_pgdump.gz # (nom du fichier dump)
|
||||||
|
source venv/bin/activate
|
||||||
|
flask db upgrade # nécessaire seulement si sauvegarde ancienne
|
||||||
|
flask clear-cache
|
||||||
|
|
||||||
exit # retour a l'utilisateur root
|
exit # retour a l'utilisateur root
|
||||||
systemctl start scodoc # relance ScoDoc
|
systemctl start scodoc9 # relance ScoDoc
|
||||||
```
|
```
|
||||||
|
|
||||||
Attention: s'il y a eu des mise à jour du logiciel entre temps, il peut arriver
|
## Déplacement de toute une installation
|
||||||
que la base sauvegardée nécessite une migration. Arrêtez le sservice scodoc9,
|
Les scripts ci-dessus ne se chargent que de la base de données SQL.
|
||||||
puis, en tant qu'utilisateur `scodoc`, lancer les commandes suivantes:
|
|
||||||
|
|
||||||
cd /opt/scodoc
|
|
||||||
source venv/bin/activate
|
|
||||||
flask db upgrade
|
|
||||||
|
|
||||||
puis relancer le service (`systemctl start scodoc` comme root).
|
|
||||||
|
|
||||||
|
|
||||||
|
Pour créer une sauvegarde complète d'une installation, vous pouvez utiliser le
|
||||||
|
script
|
||||||
|
|
||||||
|
tools/save_scodoc9_data.sh /tmp/sauvegarde-scodoc.tgz
|
||||||
|
|
||||||
|
Ce script va générer une archive (`tar`, format `.tgz`) contenant non seulement
|
||||||
|
la base de données SQL mais aussi tous les fichiers générés par votre ScoDoc:
|
||||||
|
photos, configurations locales, archives, PV de jurys, logos, etc (tout ceci
|
||||||
|
étant stocké sous `/opt/scodoc-data`).
|
||||||
|
|
||||||
|
Attention à l'espace disque: le répertoire destination (`/tmp`dans l'exemple
|
||||||
|
ci-dessus) doit avoir de l'espace (sinon utilisez un autre répertoire dans
|
||||||
|
lequel l'utilisateur `scodoc` puisse écrire, ou montez un autre disque. La
|
||||||
|
commande `df -h`est votre amie).
|
||||||
|
|
||||||
|
Pour restaurer ce type de sauvegarde, sur une autre machine (ou plus tard sur la
|
||||||
|
même), transférer le fichier généré (`/tmp/sauvegarde-scodoc.tgz`) dans
|
||||||
|
l'exemple ci-dessus) et utiliser
|
||||||
|
|
||||||
|
tools/restore_scodoc9_data.sh /tmp/sauvegarde-scodoc.tgz
|
||||||
|
|
||||||
|
(Note: la sauvegarde s'effectue comme utilisateur `scodoc`, en revanche le
|
||||||
|
rechargement doit se faire en tant que `root` car il faut évidemment arrêter et
|
||||||
|
relancer le service).
|
||||||
|
|
||||||
|
|
||||||
|
2545
docs/ScoDoc9API.md
@ -914,8 +914,7 @@ Et un autre exemple en format JSON:
|
|||||||
|
|
||||||
|
|
||||||
## En savoir plus
|
## En savoir plus
|
||||||
Voir l'exemple complet d'utilisation de l'API JSON en Python, dans `misc/example-api-1.py`
|
Voir exemples d'utilisation de l'API en Python, dans `tests/api/`.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ lance l'ensemble des tests unitaires.
|
|||||||
|
|
||||||
## Tests Selenium (web)
|
## Tests Selenium (web)
|
||||||
|
|
||||||
TODO (Aurélien, JMP)
|
TODO (Aurélien, JMP) *ce projet est abandonné pour l'instant*.
|
||||||
|
|
||||||
## Portail pour tests
|
## Portail pour tests
|
||||||
|
|
||||||
@ -42,6 +42,70 @@ Lancement:
|
|||||||
|
|
||||||
/opt/scodoc/tools/fakeportal/fakeportal.py
|
/opt/scodoc/tools/fakeportal/fakeportal.py
|
||||||
|
|
||||||
|
## Tests de l'API ScoDoc9
|
||||||
|
|
||||||
|
L'API est [documentée ici](ScoDoc9API.md).
|
||||||
|
Des tests sont disponibles sous `scodoc/tests/api`. Le mécanisme de test est un
|
||||||
|
peu différent de celui des tests unitaire: on test un *client* de l'API. Il faut
|
||||||
|
donc un serveur, tournant sur la même machine ou sur une machine distante. Ce
|
||||||
|
serveur doit avoir été configuré avec des données de test.
|
||||||
|
|
||||||
|
### Configuration du serveur pour tester l'API
|
||||||
|
|
||||||
|
1. modifier /opt/scodoc/.env pour indiquer
|
||||||
|
```
|
||||||
|
FLASK_ENV=test_api
|
||||||
|
FLASK_DEBUG=1
|
||||||
|
```
|
||||||
|
2. En tant qu'utilisateur scodoc, lancer:
|
||||||
|
```
|
||||||
|
tools/create_database.sh --drop SCODOC_TEST_API
|
||||||
|
flask db upgrade
|
||||||
|
flask sco-db-init --erase
|
||||||
|
flask init-test-database
|
||||||
|
```
|
||||||
|
|
||||||
|
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,
|
||||||
|
l'initialiser et la peupler de données fictives pour les tests.
|
||||||
|
|
||||||
|
3. Relancer ScoDoc:
|
||||||
|
```
|
||||||
|
flask run --host 0.0.0.0
|
||||||
|
```
|
||||||
|
|
||||||
|
### Configuration du client de test API
|
||||||
|
1. Copier le fichier `scodoc/tests/api/dotenv_exemple` dans
|
||||||
|
`scodoc/tests/api/.env`, et éditer ce fichier `.env`pour y configurer votre
|
||||||
|
*client* de test (ne pas confondre avec `scodoc/.env` qui est la config de
|
||||||
|
votre serveur).
|
||||||
|
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:
|
||||||
|
```
|
||||||
|
SCODOC_URL = "http://localhost:5000/"
|
||||||
|
```
|
||||||
|
|
||||||
|
### Lancement des tests de l'API
|
||||||
|
|
||||||
|
Le serveur scodoc étant lancé comme expliqué ci-dessus, on utilise `pytest`sur
|
||||||
|
le client (qui peut être un autre shell de la même machine, bien sûr).
|
||||||
|
|
||||||
|
```
|
||||||
|
cd /opt/scodoc/
|
||||||
|
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,
|
||||||
|
```
|
||||||
|
pytest --pdb -x tests/api/test_api_departements.py
|
||||||
|
```
|
||||||
|
lancera un test en mode "interactif", utile pour les mises au point.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -4,150 +4,175 @@ Cette page tente de lister les utilisateurs connus de ScoDoc. Le logiciel étant
|
|||||||
|
|
||||||
## Établissements membres de l'association (2020-2021) [liste non à jour]
|
## Établissements membres de l'association (2020-2021) [liste non à jour]
|
||||||
|
|
||||||
* [IUT d'Annecy](https://www.iut-acy.univ-smb.fr);
|
* [IUT d'Annecy](https://www.iut-acy.univ-smb.fr).
|
||||||
|
|
||||||
* [IUT de Besançon-Vesoul](http://iut-bv.univ-fcomte.fr), depuis 2013;
|
* [IUT de Besançon-Vesoul](http://iut-bv.univ-fcomte.fr), depuis 2013.
|
||||||
|
|
||||||
* [IUT de Bordeaux](http://www.iut.u-bordeaux.fr), départements GMP, GEII, GCCD, INFO, MP, HSE, SGM, GLT, GEA;
|
* [IUT de Bordeaux](http://www.iut.u-bordeaux.fr), départements GMP, GEII, GCCD, INFO, MP, HSE, SGM, MLT, GEA.
|
||||||
|
|
||||||
* [IUT de Cachan](http://www.iut-cachan.u-psud.fr) (Université Paris-Saclay, depuis 2009);
|
* [IUT de Cachan](http://www.iut-cachan.u-psud.fr), (Université Paris-Saclay, depuis 2009).
|
||||||
|
|
||||||
* [IUT de Cergy-Pontoise](http://www.iut.u-cergy.fr) tous les départements (GB, GCCD, GEII x 2, GLT, QLIO, MMI, TC x 2), DUT, LP, années spéciales et FC : plus de 1600 étudiants en 2018, utilise ScoDoc depuis 2015;
|
* [IUT de Cergy-Pontoise](http://www.iut.u-cergy.fr), tous les départements (GB, GCCD, GEII x 2, MLT, QLIO, MMI, TC x 2), DUT, LP, années spéciales et FC : plus de 1600 étudiants en 2018, utilise ScoDoc depuis 2015.
|
||||||
|
|
||||||
* [IUT de Chartres](https://www.univ-orleans.fr/iut-chartres/);
|
* [IUT de Chartres](https://www.univ-orleans.fr/iut-chartres/).
|
||||||
|
|
||||||
* [IUT1 Grenoble - Alpes](https://iut1.univ-grenoble-alpes.fr): cinq départements (GMP, GTHE, GEII, RT, GCCD), déploiement en 2011;
|
* [IUT1 Grenoble - Alpes](https://iut1.univ-grenoble-alpes.fr), cinq départements (GMP, GTHE, GEII, RT, GCCD), déploiement en 2011.
|
||||||
|
|
||||||
* [IUT de Nantes](http://www.iutnantes.univ-nantes.fr/), départements Informatique, GEA, GEII, GMP, GTE, QLIO et SGM (DUT et Licences Pro, depuis 2008);
|
* [IUT de Nantes](http://www.iutnantes.univ-nantes.fr/), départements Informatique, GEA, GEII, GMP, GTE, QLIO et SGM (DUT et Licences Pro, depuis 2008).
|
||||||
|
|
||||||
* [IUT d'Orléans](http://www.univ-orleans.fr/iut-orleans/) depuis rentrée 2009, tous les départements (GTE, GEA, GMP, Chimie, QLIO), pour les DUT et LP (environ 1100 étudiants en sept. 2012);
|
* [IUT d'Orléans](http://www.univ-orleans.fr/iut-orleans/), depuis rentrée 2009, tous les départements (GTE, GEA, GMP, Chimie, QLIO), pour les DUT et LP (environ 1100 étudiants en sept. 2012).
|
||||||
|
|
||||||
* [IUT de Perpignan](http://www.iut-perpignan.fr) depuis 2013, départements GB, GEA, GIM, GLT sur Perpignan CJ et GCGP sur Narbonne et TC et STID sur Carcassonne;
|
* [IUT de Perpignan](http://www.iut-perpignan.fr), depuis 2013, départements GB, GEA, GIM, MLT sur Perpignan CJ et GCGP sur Narbonne et TC et STID sur Carcassonne.
|
||||||
|
|
||||||
* [IUT de Poitiers](http://iutp.univ-poitiers.fr/);
|
* [IUT de Poitiers](http://iutp.univ-poitiers.fr/).
|
||||||
|
|
||||||
* [IUT de Vélizy-Rambouillet](https://www.iut-velizy-rambouillet.uvsq.fr/) utilisateur depuis 2009, sur deux sites;
|
* [IUT de Vélizy-Rambouillet](https://www.iut-velizy-rambouillet.uvsq.fr/), utilisateur depuis 2009, sur deux sites.
|
||||||
|
|
||||||
* [IUT Sénart-Fontainebleau](http://www.iutsf.u-pec.fr).
|
* [IUT Sénart-Fontainebleau](http://www.iutsf.u-pec.fr).
|
||||||
|
|
||||||
* [IUT de Saint-Etienne](http://www.iut.univ-st-etienne.fr/);
|
* [IUT de Saint-Etienne](http://www.iut.univ-st-etienne.fr/).
|
||||||
|
|
||||||
### Départements membres de l'association (2020-2021)
|
### Départements membres de l'association (2020-2021)
|
||||||
|
* Département d'Informatique de l'IUT d'Aix en Provence.
|
||||||
|
|
||||||
* Département d'Informatique de l'IUT d'Aix en Provence;
|
* département Informatique de l'[IUT Grand Ouest Normandie](http://iut-caen.unicaen.fr/presentation/4-sites-geographiques/site-d-ifs-campus-iii/), site d'Ifs.
|
||||||
|
|
||||||
* département Informatique de l'[IUT Grand Ouest Normandie](http://iut-caen.unicaen.fr/presentation/4-sites-geographiques/site-d-ifs-campus-iii/), site d'Ifs;
|
* département Génie Biologique de l'[IUT de La Roche-sur-Yon](http://www.iutlaroche.univ-nantes.fr/), (utilisateur depuis 2009).
|
||||||
|
|
||||||
* département Génie Biologique de l'[IUT de La Roche-sur-Yon](http://www.iutlaroche.univ-nantes.fr/) (utilisateur depuis 2009);
|
* département GEA de l'[IUT de Tours](http://iut.univ-tours.fr/).
|
||||||
|
|
||||||
* département GEA de l'[IUT de Tours](http://iut.univ-tours.fr/);
|
* départements GIM et GMP de l'[IUT de Mantes](http://www.iut-mantes.uvsq.fr), (Université de Versailles St Quentin en Yvelines).
|
||||||
|
|
||||||
* départements GIM et GMP de l'[IUT de Mantes](http://www.iut-mantes.uvsq.fr) (Université de Versailles St Quentin en Yvelines).
|
* département Informatique de l'[IUT de Montpellier-Sète](https://iut-montpellier-sete.edu.umontpellier.fr/dut-informatique/).
|
||||||
|
|
||||||
* département Informatique de l'[IUT de Montpellier-Sète](https://iut-montpellier-sete.edu.umontpellier.fr/dut-informatique/)
|
|
||||||
|
|
||||||
### Autres membres
|
### Autres membres
|
||||||
* [IUT de La Rochelle](http://www.iut-larochelle.fr/).
|
* [IUT de La Rochelle](http://www.iut-larochelle.fr/).
|
||||||
|
|
||||||
* [IUT de Villetaneuse](http://www.iutv.univ-paris13.fr/) (Université Sorbonne Paris Nord), départements Informatique, CJ, GEA, GEII, R&T, STID Formation Continue (1600 étudiants, depuis 2005);
|
* [IUT de Villetaneuse](http://www.iutv.univ-paris13.fr/), (Université Sorbonne Paris Nord), départements Informatique, CJ, GEA, GEII, R&T, STID Formation Continue (1600 étudiants, depuis 2005).
|
||||||
|
|
||||||
## Établissements ayant contribué au développement de ScoDoc
|
## Établissements ayant contribué au développement de ScoDoc
|
||||||
|
* [IUT A de Lille](http://www-iut.univ-lille1.fr), (depuis 2010) 7 départements.
|
||||||
|
|
||||||
|
* [IUT du Havre](http://www-iut.univ-lehavre.fr/), 10 départements et 3 années spéciales, soit environ 1800 étudiants.
|
||||||
|
|
||||||
* [IUT A de Lille](http://www-iut.univ-lille1.fr) (depuis 2010) 7 départements;
|
* [IUT de Ville d'Avray](http://www.cva.u-paris10.fr/iut), (depuis 2008) 3 départements (GEII, Carrières Sociales et GEA) et 3 licences pro (350 étudiants/an, données de 2012).
|
||||||
|
|
||||||
* [IUT du Havre](http://www-iut.univ-lehavre.fr/), 10 départements et 3 années spéciales, soit environ 1800 étudiants;
|
|
||||||
|
|
||||||
* [IUT de Ville d'Avray](http://www.cva.u-paris10.fr/iut) (depuis 2008) 3 départements (GEII, Carrières Sociales et GEA) et 3 licences pro (350 étudiants/an, données de 2012);
|
|
||||||
|
|
||||||
* [International Business School](http://www.iscid-co.fr/), Institut Supérieur de Commerce International de Dunkerque – Côte d’Opale (Université du Littoral).
|
* [International Business School](http://www.iscid-co.fr/), Institut Supérieur de Commerce International de Dunkerque – Côte d’Opale (Université du Littoral).
|
||||||
|
|
||||||
## IUT utilisateurs
|
## IUT utilisateurs
|
||||||
* [IUT d'Amiens](http://www.iut-amiens.fr/) tous les départements (6, soit 1850 étudiants), depuis 2014;
|
* [IUT d'Aix en Provence (GEII)](http://iut.univ-amu.fr/diplomes/dut-genie-electrique-informatique-industrielle-dut-geii), (site de Salon).
|
||||||
|
|
||||||
* [IUT d'Aix en Provence (GEII)](http://iut.univ-amu.fr/diplomes/dut-genie-electrique-informatique-industrielle-dut-geii) (site de Salon);
|
* [IUT Aix-Marseille](http://iut.univ-amu.fr/), Mesures Physiques (depuis 2012) et Informatique.
|
||||||
|
|
||||||
* [IUT Aix-Marseille](http://iut.univ-amu.fr/) Mesures Physiques (depuis 2012) et Informatique;
|
* [IUT d'Amiens](http://www.iut-amiens.fr/), tous les départements (6, soit 1850 étudiants), depuis 2014.
|
||||||
|
|
||||||
* [IUT de Belfort-Montbéliard](http://www.iut-bm.univ-fcomte.fr/) (MP, R&T), depuis 2013;
|
* [IUT d'Annecy](https://www.iut-acy.univ-smb.fr).
|
||||||
|
|
||||||
* [IUT de Béthune](http://www.iutbethune.org) (Université d'Artois), tous départements (Chimie, GCCD, GEII, GMP, QLIO et R&T);
|
* [IUT de Belfort-Montbéliard](http://www.iut-bm.univ-fcomte.fr/), (MP, R&T), depuis 2013.
|
||||||
|
|
||||||
* [IUT de Béziers](http://www.iutbeziers.fr) depuis 2014 (RT, MMI, CS, TC);
|
* [IUT de Béthune](http://www.iutbethune.org), (Université d'Artois), tous départements (Chimie, GCCD, GEII, GMP, QLIO et R&T).
|
||||||
|
|
||||||
* [IUT de Blagnac](https://www.iut-blagnac.fr/fr/) CS, GIM, INFO, RT + 4 LP ; depuis 2017 ; environ 600 étudiants/an).
|
* [IUT de Béziers](http://www.iutbeziers.fr), depuis 2014 (RT, MMI, CS, TC).
|
||||||
|
|
||||||
* [IUT de Brest](http://www.iut-brest.fr) depuis 2009, 4 départements (DUT et licences pro) à Brest et 2 à Morlaix, environ 1350 étudiants suivis/an;
|
* [IUT de Blagnac](https://www.iut-blagnac.fr/fr/), CS, GIM, INFO, RT + 4 LP ; depuis 2017 ; environ 600 étudiants/an).
|
||||||
|
|
||||||
* [IUT de Bourges](http://www.univ-orleans.fr/iut-bourges/) départements GEA, QLIO, MP, CS, 2 années spéciales et 2 licences pro;
|
* [IUT de Bordeaux](http://www.iut.u-bordeaux.fr), départements GMP, GEII, GCCD, INFO, MP, HSE, SGM, MLT, GEA.
|
||||||
|
|
||||||
* IUT de Calais (détails?);
|
* [IUT de Brest](http://www.iut-brest.fr), depuis 2009, 4 départements (DUT et licences pro) à Brest et 2 à Morlaix, environ 1350 étudiants suivis/an.
|
||||||
|
|
||||||
* [IUT de Colmar](http://www.iutcolmar.uha.fr) (Université de Haute Alsace), département R&T et GB (depuis 2006);
|
* [IUT de Bourges](http://www.univ-orleans.fr/iut-bourges/), départements GEA, QLIO, MP, CS, 2 années spéciales et 2 licences pro.
|
||||||
|
|
||||||
* [IUT d'Evry Val d’Essonne](http://www.iut-evry.fr), départements GMP, QLIO, SGM, GEA et GLT;
|
* [IUT de Cergy-Pontoise](http://www.iut.u-cergy.fr), tous les départements (GB, GCCD, GEII x 2, MLT, QLIO, MMI, TC x 2), DUT, LP, années spéciales et FC : plus de 1600 étudiants en 2018, utilise ScoDoc depuis 2015.
|
||||||
|
|
||||||
* [IUT de Kourou](http://iut.univ-ag.fr/) (Guyane, depuis 2011);
|
* [IUT de Colmar](http://www.iutcolmar.uha.fr), (Université de Haute Alsace), département R&T et GB (depuis 2006).
|
||||||
|
|
||||||
* [IUT de l'Indre](http://www.univ-orleans.fr/iut-indre/): départements GEA, GEII, GLT, TC, depuis 2015;
|
* [IUT d'Evry Val d’Essonne](http://www.iut-evry.fr), départements GMP, QLIO, SGM, GEA et MLT.
|
||||||
|
|
||||||
* [IUT de Lannion](http://www.iut-lannion.fr/): 5 DUT et 5 LP, sur 4 départements;
|
* [IUT de Kourou](http://iut.univ-ag.fr/), (Guyane, depuis 2011).
|
||||||
|
|
||||||
* [IUT de La Rochelle](http://www.iut-larochelle.fr/): 5 départements (généralisé en 2017): 1070 étudiants de DUT et 9 LP (180 étudiants);
|
* [IUT de l'Indre](http://www.univ-orleans.fr/iut-indre/), départements GEA, GEII, MLT, TC, depuis 2015.
|
||||||
|
|
||||||
* [IUT de La Roche-sur-Yon](http://www.iutlaroche.univ-nantes.fr/) (départements GEA, IC, R&T, GB et licences pro, soit 550 étudiants/ans depuis 2009);
|
* [IUT de Lannion](http://www.iut-lannion.fr/), 5 DUT et 5 LP, sur 4 départements.
|
||||||
|
|
||||||
* [http://www.iut.univ-littoral.fr](IUT du Littoral Côte d'Opale), tous les départements (2018);
|
* [IUT de La Rochelle](http://www.iut-larochelle.fr/), 5 départements (généralisé en 2017): 1070 étudiants de DUT et 9 LP (180 étudiants).
|
||||||
|
|
||||||
* [IUT de Lorient](http://www-iutlorient.univ-ubs.fr) départements GTE, GIML, QLIO, GCGP, HSE;
|
* [IUT de La Roche-sur-Yon](http://www.iutlaroche.univ-nantes.fr/), (départements GEA, IC, R&T, GB et licences pro, soit 550 étudiants/ans depuis 2009).
|
||||||
|
|
||||||
* [IUT de Marseille](http://iut.univ-amu.fr/) (depuis 2007) départements ?
|
* [IUT Le Havre](http://www-iut.univ-lehavre.fr/), 10 départements et 3 années spéciales, soit environ 1800 étudiants.
|
||||||
|
|
||||||
* [IUT de Metz](http://www.iut.univ-metz.fr) (depuis 2011), départements GMP, TC ;
|
* [IUT Le Mans](https://www-iut.univ-lehavre.fr/).
|
||||||
|
|
||||||
* [IUT de Mulhouse](http://www.iutmulhouse.uha.fr/) (depuis 2014), départements GEA, GEII, GLT, GMP;
|
* [IUT A de Lille](http://www-iut.univ-lille1.fr), (depuis 2010) 7 départements.
|
||||||
|
|
||||||
* [IUT de Nouvelle Calédonie](https://unc.nc/formation/formation-a-l-iut/linstitut-universitaire-de-technologie/);
|
* [IUT du Littoral Côte d'Opale](http://www.iut.univ-littoral.fr), tous les départements (2018).
|
||||||
|
|
||||||
* [IUT de Nîmes](https://iut-nimes.edu.umontpellier.fr/) (depuis 2019, GEII, GMP, SGM, et [Polytech Montpellier](https://www.polytech.umontpellier.fr));
|
* [IUT de Lorient & Pontivy](http://www-iutlorient.univ-ubs.fr), départements GTE, GIML, QLIO, GCGP, HSE.
|
||||||
|
|
||||||
* [IUT Paris Descartes](http://www.iut.parisdescartes.fr) département Informatique, Année Spéciale, L3 Miage et un DU;
|
* [IUT de Mantes](http://www.iut-mantes.uvsq.fr), départements GIM et GMP (Université de Versailles St Quentin en Yvelines).
|
||||||
|
|
||||||
* [IUT Paris Diderot](https://universite.univ-paris-diderot.fr/structures/iut-paris-diderot) Mesures Physiques;
|
* [IUT de Marseille](http://iut.univ-amu.fr/), (depuis 2007) départements ?
|
||||||
|
|
||||||
* [IUT de Rennes](https://iut-rennes.univ-rennes1.fr/) départements GEII, GMP, Chimie et Génie Civil Construction durable (2015);
|
* [IUT de Metz](http://www.iut.univ-metz.fr), (depuis 2011), départements GMP, TC.
|
||||||
|
|
||||||
* [IUT de Roanne](http://portail.univ-st-etienne.fr/bienvenue/utilitaires/iut-de-roanne-26151.kjsp): dépt. Génie Industriel et Maintenance (GIM), environ 70 étudiants/an (2012);
|
* [IUT de Mulhouse](http://www.iutmulhouse.uha.fr/), (depuis 2014), départements GEA, SGM, GEII, GMP, MMI, MLT.
|
||||||
|
|
||||||
* [IUT de Saint-Denis (Université Sorbonne Paris Nord)](https://iutsd.univ-paris13.fr): départements HSE, GIM, GMP, TC, depuis 2009;
|
* [IUT de Nantes](http://www.iutnantes.univ-nantes.fr/), départements Informatique, GEA, GEII, GMP, GTE, QLIO et SGM (DUT et Licences Pro, depuis 2008).
|
||||||
|
|
||||||
* [IUT de Saint-Dié des Vosges](http://www.iutsd.uhp-nancy.fr) (GEII, autres ?, depuis 2009);
|
* [IUT de Nouvelle Calédonie](https://unc.nc/formation/formation-a-l-iut/linstitut-universitaire-de-technologie/).
|
||||||
|
|
||||||
* [IUT de Saint-Dié des Vosges](http://www.iutsd.uhp-nancy.fr/fr/accueil.html), département Informatique, depuis 2011;
|
* [IUT de Nîmes](https://iut-nimes.edu.umontpellier.fr/), (depuis 2019, GEII, GMP, SGM, et [Polytech Montpellier](https://www.polytech.umontpellier.fr)).
|
||||||
|
|
||||||
* [IUT de Saint-Nazaire](http://www.iut-sn.univ-nantes.fr/) tous les départements (GLT, GCCD, GIM, GCH, MP, TC) et 8 LP, 1400 étudiants, rentrée 2013. Et aussi Formation Continue, 1 DU PFST, 2 formations DUT par apprentissage (TC et GIM);
|
* [IUT d'Orléans](http://www.univ-orleans.fr/iut-orleans/), depuis rentrée 2009, tous les départements (GTE, GEA, GMP, Chimie, QLIO), pour les DUT et LP (environ 1100 étudiants en sept. 2012).
|
||||||
|
|
||||||
* [IUT de Tours](http://iut.univ-tours.fr/): départements GEII et TC2A: 450 étudiants/an, 2 DUT, 4 Licences Pro, 1 année spéciale, (ScoDoc depuis 2012);
|
* [IUT d'Orsay](https://www.iut-orsay.universite-paris-saclay.fr/).
|
||||||
|
|
||||||
* [IUT de Tremblay](http://www.iu2t.univ-paris8.fr/) (U. Paris 8, dépt. GIM, 2010);
|
* [IUT Paris Descartes](http://www.iut.parisdescartes.fr), département Informatique, Année Spéciale, L3 Miage et un DU.
|
||||||
|
|
||||||
* [IUT de Valenciennes](https://www.uphf.fr/IUT) 9 départements (en FI, FA, FC) - DUT & 20 LP;
|
* [IUT Paris Diderot](https://universite.univ-paris-diderot.fr/structures/iut-paris-diderot), Mesures Physiques.
|
||||||
|
|
||||||
* [IUT de Vannes](https://www.iutvannes.fr/) département Informatique (DUT et LP, 200 étudiants) depuis sept. 2014, et GEA (400 étudiants) et TC depuis 2016, STID depuis 2019;
|
* [IUT de Perpignan](http://www.iut-perpignan.fr), depuis 2013, départements GB, GEA, GIM, MLT sur Perpignan CJ et GCGP sur Narbonne et TC et STID sur Carcassonne.
|
||||||
|
|
||||||
* [IUT de Villeurbanne (Lyon 1)](http://iut.univ-lyon1.fr/) département GEII, environ 220 inscrits/an.
|
* [IUT de Poitiers](http://iutp.univ-poitiers.fr/).
|
||||||
|
|
||||||
|
* [IUT de Rennes](https://iut-rennes.univ-rennes1.fr/), départements GEII, GMP, Chimie et Génie Civil Construction durable (2015).
|
||||||
|
|
||||||
|
* [IUT de Roanne](http://portail.univ-st-etienne.fr/bienvenue/utilitaires/iut-de-roanne-26151.kjsp), dépt. Génie Industriel et Maintenance (GIM), environ 70 étudiants/an (2012).
|
||||||
|
|
||||||
|
* [IUT de Saint-Denis (Université Sorbonne Paris Nord)](https://iutsd.univ-paris13.fr), départements HSE, GIM, GMP, TC, depuis 2009.
|
||||||
|
|
||||||
|
* [IUT de Saint-Dié des Vosges](http://www.iutsd.uhp-nancy.fr), (GEII, autres ?, depuis 2009).
|
||||||
|
|
||||||
|
* [IUT de Saint-Dié des Vosges](http://www.iutsd.uhp-nancy.fr/fr/accueil.html), département Informatique, depuis 2011.
|
||||||
|
|
||||||
|
* [IUT de Saint-Malo](https://iut-stmalo.univ-rennes1.fr/).
|
||||||
|
|
||||||
|
* [IUT de Saint-Nazaire](http://www.iut-sn.univ-nantes.fr/), tous les départements (MLT, GCCD, GIM, GCH, MP, TC) et 8 LP, 1400 étudiants, rentrée 2013. Et aussi Formation Continue, 1 DU PFST, 2 formations DUT par apprentissage (TC et GIM).
|
||||||
|
|
||||||
|
* [IUT de Tours](http://iut.univ-tours.fr/), départements GEII et TC2A : 450 étudiants/an, 2 DUT, 4 Licences Pro, 1 année spéciale, (ScoDoc depuis 2012).
|
||||||
|
|
||||||
|
* [IUT de Tremblay](http://www.iu2t.univ-paris8.fr/), (U. Paris 8, dépt. GIM, 2010).
|
||||||
|
|
||||||
|
* [IUT de Valenciennes](https://www.uphf.fr/IUT), 9 départements (en FI, FA, FC) - DUT & 20 LP.
|
||||||
|
|
||||||
|
* [IUT de Vannes](https://www.iutvannes.fr/), département Informatique (DUT et LP, 200 étudiants) depuis sept. 2014, et GEA (400 étudiants) et TC depuis 2016, STID depuis 2019.
|
||||||
|
|
||||||
|
* [IUT de Vélizy-Rambouillet](https://www.iut-velizy-rambouillet.uvsq.fr/), utilisateur depuis 2009, sur deux sites.
|
||||||
|
|
||||||
|
* [IUT de Villetaneuse](http://www.iutv.univ-paris13.fr/), (Université Sorbonne Paris Nord), départements Informatique, CJ, GEA, GEII, R&T, STID Formation Continue (1600 étudiants, depuis 2005).
|
||||||
|
|
||||||
|
* [IUT de Villeurbanne (Lyon 1)](http://iut.univ-lyon1.fr/), département GEII, environ 220 inscrits/an.
|
||||||
|
|
||||||
|
|
||||||
## Autres établissements utilisateurs (hors IUT)
|
## Autres établissements utilisateurs (hors IUT)
|
||||||
* Licence de sciences (SPI) à L'Université de Bretagne Occidentale (UBO);
|
* Licence de sciences (SPI) à L'Université de Bretagne Occidentale (UBO).
|
||||||
|
|
||||||
* Masters de sciences, Institut Galilée, Université Sorbonne Paris Nord;
|
* Masters de sciences, Institut Galilée, Université Sorbonne Paris Nord.
|
||||||
|
|
||||||
* Master ISB, Université Sorbonne Paris Nord;
|
* Master ISB, Université Sorbonne Paris Nord.
|
||||||
|
|
||||||
* [IFAG de Sofia](http://www.ifag.auf.org), Bulgarie (masters administration et gestion, AUF);
|
* [IFAG de Sofia](http://www.ifag.auf.org), Bulgarie (masters administration et gestion, AUF).
|
||||||
|
|
||||||
* [Université Catholique d'Afrique Centrale](http://www.ucac-icy.net/) (UCAC, Yaoundé, Cameroun): Licences, Masters (2011);
|
* [Université Catholique d'Afrique Centrale](http://www.ucac-icy.net/), (UCAC, Yaoundé, Cameroun): Licences, Masters (2011).
|
||||||
|
|
||||||
* [École Supérieure des Sciences et Technologies de l'Ingénieur de Nancy](http://www.esstin.univ-lorraine.fr) (jusqu'en 2013);
|
* [École Supérieure des Sciences et Technologies de l'Ingénieur de Nancy](http://www.esstin.univ-lorraine.fr), (jusqu'en 2013).
|
||||||
|
|
||||||
|
BIN
docs/assets/grenouille_bleue.png
Normal file
After Width: | Height: | Size: 34 KiB |
BIN
docs/assets/images/android-chrome-192x192.png
Executable file
After Width: | Height: | Size: 9.5 KiB |
BIN
docs/assets/images/android-chrome-512x512.png
Executable file
After Width: | Height: | Size: 27 KiB |
BIN
docs/assets/images/apple-touch-icon.png
Executable file
After Width: | Height: | Size: 8.7 KiB |
BIN
docs/assets/images/favicon-16x16.png
Executable file
After Width: | Height: | Size: 502 B |
BIN
docs/assets/images/favicon-32x32.png
Executable file
After Width: | Height: | Size: 1.1 KiB |
BIN
docs/assets/images/favicon.png
Executable file
After Width: | Height: | Size: 1.1 KiB |
BIN
docs/fig/GrapheUser.odg
Normal file
BIN
docs/fig/GrapheUser.png
Normal file
After Width: | Height: | Size: 127 KiB |
@ -1,14 +1,19 @@
|
|||||||
# ScoDoc: un logiciel libre pour le suivi de la scolarité
|
# ScoDoc: un logiciel libre pour le suivi de la scolarité
|
||||||
|
|
||||||
|
|
||||||
ScoDoc est un logiciel libre créé par Emmanuel Viennet pour suivre la scolarité des étudiants universitaires. Il est principalement utilisé dans les IUT, mais aussi apprécié par plusieurs Écoles et Masters en France et à l'étranger. Il fournit notamment:
|
ScoDoc est un logiciel libre créé par Emmanuel Viennet pour suivre la scolarité
|
||||||
|
des étudiants universitaires. Il est principalement utilisé dans les IUT, mais
|
||||||
|
aussi apprécié par plusieurs Écoles et Masters en France et à l'étranger. Il
|
||||||
|
fournit notamment:
|
||||||
|
|
||||||
- suivi précis de la progression des étudiants, évaluations formatives et certificatives;
|
- suivi précis de la progression des étudiants, évaluations formatives et
|
||||||
|
certificatives
|
||||||
- saisie et gestion des notes;
|
- saisie et gestion des notes;
|
||||||
- aide à la décision pour les jurys;
|
- aide à la décision pour les jurys;
|
||||||
- listes des étudiants (groupes, trombinoscopes, bordereaux divers);
|
- listes des étudiants (groupes, trombinoscopes, bordereaux divers);
|
||||||
- suivi de l'assiduité (saisie et visualisation des absences);
|
- suivi de l'assiduité (saisie et visualisation des absences);
|
||||||
- tableaux de bords, rapports statistiques sur la formation (suivis de cohortes, ...) utiles pour l'évaluation et le suivi des formations;
|
- tableaux de bords, rapports statistiques sur la formation (suivis de
|
||||||
|
cohortes, ...) utiles pour l'évaluation et le suivi des formations;
|
||||||
- édition des procès-verbaux, bulletins et autres documents liés à la scolarité.
|
- édition des procès-verbaux, bulletins et autres documents liés à la scolarité.
|
||||||
|
|
||||||
|
|
||||||
@ -17,11 +22,17 @@ ScoDoc est un *logiciel libre*: vous pouvez [participer à son développement](C
|
|||||||
ScoDoc s'utilise sur un navigateur web standard: les utilisateurs n'ont rien à
|
ScoDoc s'utilise sur un navigateur web standard: les utilisateurs n'ont rien à
|
||||||
installer. Les établissements ou écoles doivent configurer un serveur: voir le [guide
|
installer. Les établissements ou écoles doivent configurer un serveur: voir le [guide
|
||||||
d'installation sur Debian 11](GuideInstallDebian11.md). La version ScoDoc 9 est
|
d'installation sur Debian 11](GuideInstallDebian11.md). La version ScoDoc 9 est
|
||||||
parue le 19 septembre 2021.
|
parue le 19 septembre 2021, la version 9.2 en avril 2022. Les mises à jour sont
|
||||||
|
appliquées régulièrement.
|
||||||
|
|
||||||
ScoDoc est utilisé dans de nombreux établissement français et étrangers, **dont au moins 58 IUT**: [liste des utilisateurs connus de ScoDoc](UtilisateursScoDoc.md).
|
ScoDoc est utilisé dans de nombreux établissement français et étrangers, **dont
|
||||||
|
au moins 58 IUT**: [liste des utilisateurs connus de
|
||||||
|
ScoDoc](UtilisateursScoDoc.md).
|
||||||
|
|
||||||
Depuis 2020, ScoDoc est soutenu par une [association à but non lucratif (1901)](AssociationScoDoc.md), à laquelle tous les départements ou établissements utilisateurs sont **invités à adhérer**. Bulletin d'adhésion à retourner à `Emmanuel.Viennet at gmail.com`.
|
Depuis 2020, ScoDoc est soutenu par une [association à but non lucratif
|
||||||
|
(1901)](AssociationScoDoc.md), à laquelle tous les départements ou
|
||||||
|
établissements utilisateurs sont **invités à adhérer**. Bulletin d'adhésion à
|
||||||
|
retourner à `Emmanuel.Viennet at gmail.com`.
|
||||||
|
|
||||||
## Présentation générale
|
## Présentation générale
|
||||||
|
|
||||||
@ -29,27 +40,37 @@ Depuis 2020, ScoDoc est soutenu par une [association à but non lucratif (1901)]
|
|||||||
|
|
||||||
- Quelques <a href="https://www.youtube.com/playlist?list=PLw49h6RbvswhasBk9bXj7PzOD8GDW3kG1" target="_blank">vidéos d'introduction sur YouTube <img src="img/tube.png" alt="" style="margin-top:0px; margin-bottom:0px; border-width:0px;"/></a>
|
- Quelques <a href="https://www.youtube.com/playlist?list=PLw49h6RbvswhasBk9bXj7PzOD8GDW3kG1" target="_blank">vidéos d'introduction sur YouTube <img src="img/tube.png" alt="" style="margin-top:0px; margin-bottom:0px; border-width:0px;"/></a>
|
||||||
|
|
||||||
- Présentation au colloque du [CRI-IUT](https://www.criiut.fr/) en 2013: [diapos en pdf](papers/presScoDocCRIIUT2013.pdf)
|
- Ancienne présentation au colloque du [CRI-IUT](https://www.criiut.fr/) en 2013: [diapos en pdf](papers/presScoDocCRIIUT2013.pdf)
|
||||||
- Un très ancien [article sur ScoDoc](papers/scodoc-reunion2007.pdf)
|
- Un très ancien [article sur ScoDoc](papers/scodoc-reunion2007.pdf)
|
||||||
|
|
||||||
|
|
||||||
## Communauté d'utilisateurs
|
## Communauté d'utilisateurs
|
||||||
|
|
||||||
- Le discord des utilisateurs: assistance chat ou audio [rejoindre le salon](https://discord.gg/ybw6ugtFsZ)
|
- Le Discord des utilisateurs: assistance chat ou audio [rejoindre le salon](https://discord.gg/ybw6ugtFsZ)
|
||||||
- [Listes de diffusion e-mail](ListesDeDiffusion.md)
|
- [Listes de diffusion e-mail](ListesDeDiffusion.md)
|
||||||
- Vous pouvez signaler ici des bugs ou déposer des suggestions d'amélioration via les "tickets":
|
- Vous pouvez signaler ici des bugs ou déposer des suggestions d'amélioration via les "tickets":
|
||||||
* [Liste des tickets en cours](https://scodoc.org/git/viennet/ScoDoc/issues)
|
* [Liste des tickets en cours](https://scodoc.org/git/viennet/ScoDoc/issues)
|
||||||
* Déclarer un nouveau ticket: demander un compte sur la liste scodoc-devel (lien ci-dessus).
|
* Déclarer un nouveau ticket: demander un compte sur la liste `scodoc-devel` (lien ci-dessus).
|
||||||
- [Contribuer à ScoDoc](Contribuer.md)
|
- [Contribuer à ScoDoc](Contribuer.md)
|
||||||
|
|
||||||
## Actualités
|
## Actualités
|
||||||
|
|
||||||
### Parution de ScoDoc 9.0
|
### Parution de ScoDoc 9
|
||||||
Version majeure, avec une architecture logicielle complètement remaniée. Dans un
|
Version majeure, avec une architecture logicielle complètement remaniée. Cette
|
||||||
premier temps, ScoDoc 9 n'offre presque pas de nouvelles fonctions par rapport à
|
version modernise l'infrastructure logicielle (maintenant basée sur Python
|
||||||
l'ancien ScoDoc 7, mais son code permet des évolutions plus aisées.
|
3/Flask/postgresql) et propose de nombreuses améliorations, notamment pour la
|
||||||
|
gestion du *[Bachelor Universitaire de Technologie (BUT)](BUT.md)*.
|
||||||
|
|
||||||
### Quatre stagiaires (printemps 2021)
|
### Contrats d'apprentissage
|
||||||
|
|
||||||
|
Deux étudiants ont été recrutés (LP IUT Orléans, et IUT Villetaneuse):
|
||||||
|
|
||||||
|
- développement d'une nouvelle API pour ScoDoc 9;
|
||||||
|
- développement d'un nouveau module de gestion des relations entreprises
|
||||||
|
(fichier, contacts, stages, alternance).
|
||||||
|
|
||||||
|
|
||||||
|
### Quatre stagiaires
|
||||||
|
|
||||||
- version spéciale pour mobiles, développée par un stagiaire de l'association;
|
- version spéciale pour mobiles, développée par un stagiaire de l'association;
|
||||||
- développements de tests unitaires et fonctionnels, par deux stagiaires, l'un
|
- développements de tests unitaires et fonctionnels, par deux stagiaires, l'un
|
||||||
@ -82,12 +103,32 @@ entente.
|
|||||||
### Feuille de route (roadmap)
|
### Feuille de route (roadmap)
|
||||||
Les prochaines versions de ScoDoc (*sous réserve !*):
|
Les prochaines versions de ScoDoc (*sous réserve !*):
|
||||||
|
|
||||||
|
|
||||||
|
- ScoDoc 9.3 : prévue en mai 2022
|
||||||
|
- tenue des jurys BUT et exports Apogée
|
||||||
|
- gestion des parcours (pour la mise en place des semestre)
|
||||||
|
|
||||||
|
|
||||||
|
- ScoDoc 9.2 : publiée en avril 2022 nouvelles fonctionnalités liées au BUT
|
||||||
|
- référentiels de compétences Orébut
|
||||||
|
- capitalisation des UE dans le BUT
|
||||||
|
- bonus/malus locaux
|
||||||
|
- bulletins BUT pdf
|
||||||
|
- nouveau module de gestion relations avec les entreprises
|
||||||
|
|
||||||
|
|
||||||
|
- ScoDoc 9.1 : décembre 2021 gestion du bachelor (BUT)
|
||||||
|
- type de formation BUT
|
||||||
|
- distinction SAE/ressources
|
||||||
|
- poids (coefs) des évaluations, affichage, édition
|
||||||
|
- coefs de modules (ressources, SAE): affichage et édition dans ScoDoc
|
||||||
|
- calculs moyennes modules et vérification conformité
|
||||||
|
- calcul des moyennes d'UE
|
||||||
|
- bulletin de note v1
|
||||||
|
|
||||||
- ScoDoc 9.0 : publiée le 19 sept. 2021, version complètement remaniée en
|
- ScoDoc 9.0 : publiée le 19 sept. 2021, version complètement remaniée en
|
||||||
Python 3/Flask.
|
Python 3/Flask.
|
||||||
|
|
||||||
- ScoDoc 9.1 : octobre 2021 gestion du bachelor (BUT)
|
|
||||||
|
|
||||||
- ScoDoc 9.2 : décembre 2021 nouvelles fonctionnalités liées au BUT.
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
|
51
docs/misc/scodoc-repo.gpg.key
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
mQINBGEkuIUBEAClK699yEifRP0TOVpslbEguSt59VMtTg8AYroPX5lalyB/ccdo
|
||||||
|
Z3hhFuzwTIQ/V7NG8P9OzFud/rKCH6gJLwlXum3a4/pHyg3Qj2naZsIRKEsy7SWp
|
||||||
|
YUmFS5MKWAynPVbUK1CuIdw1aU9/ENTL98FMBfDKA2l2vkFdDvYGDtZhJ243d1pW
|
||||||
|
7wq0nDuDCeNSh7QHS+sI9hNQ3loeIxGzvZD/89wTDJp5ihdcaw1tvU4EaCEqgAu2
|
||||||
|
hZ3luGsxsFcTqlbk0U26rWZlfDNhtHSmwtPobsHLD5p6OhjFgOhOiOJUe0Hp9VjQ
|
||||||
|
0Dkt6fyIxfU2UPZMEHhCByFsgHx2gfAZbi1orH6rmR0byVAJVbF58GEUXnuxNayq
|
||||||
|
sR1Bi+elWIoGxjs98Un4ho+LqBhZr0nSEqovYDMp9AgX8Rx+oAn8CB6EkDUHI8b6
|
||||||
|
BOrZFyGUt9UUQiIk7KkAH0VqdNxFtfqrwE1c1sc9RkEJcjxkLNaFPPyJKmpgtJfe
|
||||||
|
H4m2pX7EZH8NkvYhIMMRxSm5Jja6is2nJS+BLrLGiAjjYvGCqYq6Eurmjc+h6KKW
|
||||||
|
nLORHJCVkXwOYjJtX81fwos5cAcOmKz/QwoZPWU3QWvGq/KoAiTnFoQMwoagnVOA
|
||||||
|
55XhTLa1+V/3KpyrQupee4Uctj4doLeipZRuRXPcM/6A3z/XOMrucD6oUwARAQAB
|
||||||
|
tCdFbW1hbnVlbCBWaWVubmV0IDxlbW1hbnVlbEB2aWVubmV0Lm5ldD6JAjgEEwEI
|
||||||
|
ACIFAmEkuIUCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEDm3l8G72kz3
|
||||||
|
Y2wP/R3lu/wYsIiO17ISbQfJyBSOArs/Rkbl+Y01p35Hb1HvQ4rmJHkPt/+NuIZk
|
||||||
|
iu0mR5B9f/3RRFZYvqraVWSXtbuputIXaClRiMRsk/xYfa+u5E+vFTcG/uM7yifF
|
||||||
|
rNT7zdr/064MDXewhAN6YZsaCJHOHL+Ga+vtc3NwDHdqPDAon4P6j4eDlZQ4heZ2
|
||||||
|
7DTXDiVsyqbf1UTSgDSmGyfNI6kCHh9LTYxnT3k3G5sKrGwqtfYOij3o35M3CvB4
|
||||||
|
e3YP2UFjCf33ymRgzJz/INiLMeJAMtGb1f0F0LeLNaeCrmUSS2/BZTNVE6h2CcR4
|
||||||
|
hGvWQKZSedvVaP2oZ34WxlcxDkwi84bVMX5W4lKxu26D2KjbPJhrgoVf7pt1yNKd
|
||||||
|
FeqsmP7r9uE5W/C/WdDxb6vvW4GN6gK8SzBz/iIAW3JPfxL4EUuRT8XMgkaaojZd
|
||||||
|
yWaxk9N2t08joWUnK7eI2LPX9zYNO2EZbPmXOoQyUH7O7KMMAvEQkWvIUtO3GERG
|
||||||
|
FeLktW6yI9UZ8tQ2H8IgPU0k+YoABJBnRy4PbfnzCTlza+E93VyyFgk5ZltdYHTP
|
||||||
|
jfSVx2GrWVGrURGMKrOIeDCgSDhrQzow3uj7AUtqLOP5zJM2nL131dJ4lNkeh7VL
|
||||||
|
banmZvZofhJFK0gAzhuJd0JTul3vesoVS8/frm9OfwI+kIRruQINBGEkuIUBEACz
|
||||||
|
USdULoaXJXB1LKsLM+6lXzywHWzgmA3B2aiikAsooedc1n7y/xR20FFpHkieDQbK
|
||||||
|
xUNPSF75dxrfLMMuG4QQYo+r1G3ujHgBrw6IfytP8h0fmPhIaZOYzlEKWF47eeOZ
|
||||||
|
18FBAMGRX+hA72cv/mARDlmPVh7K4Rdl9FAIANBuEftU70i0eNPKj+CBJ8/qE4JV
|
||||||
|
iCEvG3hfrmCI+Oe8dlJliKBVVW5L0oMLF777GLvHUuFdKG51TNRIeRcrz7F8/Aax
|
||||||
|
9CuY3SY5jezVGeDxH/ZiVZua5Y8b9kh8qDuQuAdGj7q9uQU6vNJ9BhfGD2ZUUX1V
|
||||||
|
/KmMBkv3nDg5Bkk9Puf+E2jc09mQkcOhuo3hSYmD1AWH/JFs+W6fYKVEMPinLGUC
|
||||||
|
v4l225Jdtu9Ah8N+SxsRrkg/tDuvXM1eka/Xyy/ppXmst8zodPLSDv3uGUvd4rmk
|
||||||
|
GKs047CZbfbiqd7OrqIHkdxGX50MzPoJ46eq5tKKwyZ24WgXW0MJ/2ML6iGVGsr5
|
||||||
|
0QK8JMMYpTYuDMgvfuo8P7LSqxVZ1wdyltCyDDqiE6TBPkvjTIE89f4BpAj54H4l
|
||||||
|
+h26tFisVR+Qmu1CAVvqFR1N7UD6s17K2GYcyQauDJpViMVRTla+I5aB6c3rJdZ4
|
||||||
|
MYLNxzbinD48nxlU6CiBrCQ3rU7HHGHUCsoGA4UK0QARAQABiQIfBBgBCAAJBQJh
|
||||||
|
JLiFAhsMAAoJEDm3l8G72kz38lAP/3GEKlJs1HYvMQ/UrZrORS+ykuEVaSmVQBVD
|
||||||
|
zONYzlgxgyYEFpdIf90+QEORk32KySV+2MnSnL5jeaAbFlBS8KQ2u7ldlA68esuo
|
||||||
|
T4HdNTLOa+XCDTF8AJzr7tmulPiU5k2EhUfYGdU5vOufF1wUc5vqqSWaoy+EXSc/
|
||||||
|
kymLObC7R/Bgr6rXEaXwIpxZQTmodUmQgHaVDL3PPABhEs8QD/pm3OM2Qk26+4+/
|
||||||
|
ICc+O0qmM59wbH73cmWP1CGKRrqp6l++oDG3I+LnxioGJ+uqcxH4FdSy3fqh30q3
|
||||||
|
RTFgknBRZKDmGOjvNiOrExXhM9MornNQ8bJQZGehuVi8iWmq1bgcJbFaFiCzYyL3
|
||||||
|
1dvhuMA4ql65KrgcCciJE3jCo0Lq5xXCEm/zhA/WNnYLOwBM+2au3QmyFlRjSJIf
|
||||||
|
9KFkpUG0psS6NI9DvnyaZrrvhz6sdspap7SY93Vllweg7yRYlI+vsTaxDjqs+WlN
|
||||||
|
+LSHZnC57Gssl9jwq6WBm7VlAoJZ2sipTqrwlYbD4VdcaMd9C8pLCsVa5etJKwlr
|
||||||
|
Pdg5l37Os2zgsP00NieX1P4HHmGzV1j1TsYrzaiCJ5g35h/lIqQV7z6ndvPX2TD2
|
||||||
|
eokuBieXFuxRPlscA+Diudyvl6jJ1ATJI48GUpcUg2sC7iM91IsG4tC9GGOrmAqV
|
||||||
|
LwbpXjdu
|
||||||
|
=MuGd
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
28
docs/stylesheets/extra.css
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
div.md-sidebar--secondary,
|
||||||
|
div.md-sidebar--secondary div {
|
||||||
|
background-color: rgb(217, 217, 217);
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div.md-sidebar--secondary div.md-sidebar__scrollwrap {
|
||||||
|
margin-left: 0;
|
||||||
|
margin-right: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content h1,
|
||||||
|
.md-content h2,
|
||||||
|
.md-content h3 {
|
||||||
|
margin-block-start: 0px;
|
||||||
|
margin-top: 0px;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content ul {
|
||||||
|
margin-top: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.md-content h3+p {
|
||||||
|
margin-block-start: 0px;
|
||||||
|
margin-top: 0px;
|
||||||
|
}
|
54
mkdocs.yml
@ -1,32 +1,46 @@
|
|||||||
site_name: ScoDoc
|
site_name: ScoDoc
|
||||||
|
|
||||||
theme:
|
theme:
|
||||||
name: mkdocs
|
# name: mkdocs
|
||||||
|
name: material
|
||||||
navigation_depth: 3
|
navigation_depth: 3
|
||||||
|
features:
|
||||||
|
- navigation.tabs
|
||||||
|
- toc.follow
|
||||||
|
- navigation.top
|
||||||
|
palette:
|
||||||
|
primary: light blue
|
||||||
|
language: fr
|
||||||
|
logo: assets/images/android-chrome-192x192.png
|
||||||
|
|
||||||
|
extra_css:
|
||||||
|
- stylesheets/extra.css
|
||||||
|
|
||||||
nav:
|
nav:
|
||||||
|
- Accueil: index.md
|
||||||
- Documentation:
|
- Documentation:
|
||||||
- 'Guide utilisateur': GuideUtilisateur.md
|
- "Guide utilisateur": GuideUtilisateur.md
|
||||||
- 'Tutos vidéos': https://www.youtube.com/playlist?list=PLw49h6RbvswhasBk9bXj7PzOD8GDW3kG1
|
- "Tutos vidéos": https://www.youtube.com/playlist?list=PLw49h6RbvswhasBk9bXj7PzOD8GDW3kG1
|
||||||
- 'Responsables de formations': GuideAdminFormation.md
|
- "Responsables de formations": GuideAdminFormation.md
|
||||||
- 'FAQ': FAQ.md
|
- "Le BUT": BUT.md
|
||||||
|
- "FAQ": FAQ.md
|
||||||
|
|
||||||
- Installation:
|
- Installation:
|
||||||
- 'Guide administration': GuideAdminSys.md
|
- "Guide administration": GuideAdminSys.md
|
||||||
- 'Installation': GuideInstallDebian11.md
|
- "Installation": GuideInstallDebian11.md
|
||||||
- 'Mises à jour': MisesAJour.md
|
- "Mises à jour": MisesAJour.md
|
||||||
- 'Interfaces SI': InterrogationPortail.md
|
- "Interfaces SI": InterrogationPortail.md
|
||||||
- 'Publication des notes': PublicationEtudiants.md
|
- "Publication des notes": PublicationEtudiants.md
|
||||||
- 'Export Apogée': ScoDocApogee.md
|
- "Export Apogée": ScoDocApogee.md
|
||||||
- 'API': ScoDocAPI.md
|
|
||||||
|
|
||||||
- Association:
|
- Association:
|
||||||
- 'Association 1901': AssociationScoDoc.md
|
- "Association 1901": AssociationScoDoc.md
|
||||||
- 'Utilisateurs': UtilisateursScoDoc.md
|
- "Utilisateurs": UtilisateursScoDoc.md
|
||||||
|
|
||||||
- Développement:
|
- Développement:
|
||||||
- 'Git': https://scodoc.org/git
|
- "Git": https://scodoc.org/git
|
||||||
- 'Guide Développeurs': GuideDeveloppeurs.md
|
- "Guide Développeurs": GuideDeveloppeurs.md
|
||||||
|
- "API (interfaçages autres logiciels)": ScoDoc9API.md
|
||||||
|
|
||||||
- FAQ: FAQ.md
|
- FAQ: FAQ.md
|
||||||
|
|
||||||
@ -45,3 +59,11 @@ extra_javascript:
|
|||||||
markdown_extensions:
|
markdown_extensions:
|
||||||
- pymdownx.arithmatex:
|
- pymdownx.arithmatex:
|
||||||
generic: true
|
generic: true
|
||||||
|
- footnotes
|
||||||
|
- pymdownx.tasklist:
|
||||||
|
custom_checkbox: true
|
||||||
|
- pymdownx.superfences:
|
||||||
|
custom_fences:
|
||||||
|
- name: mermaid
|
||||||
|
class: mermaid
|
||||||
|
format: !!python/name:pymdownx.superfences.fence_code_format
|
||||||
|
@ -31,4 +31,4 @@ EOF
|
|||||||
(cd site && ln -s img/favicon.ico .)
|
(cd site && ln -s img/favicon.ico .)
|
||||||
|
|
||||||
# --- Publish
|
# --- Publish
|
||||||
rsync -vaze ssh site scodoc.org:/var/www/html
|
rsync -vaze ssh --delete site scodoc.org:/var/www/html
|
||||||
|