This commit is contained in:
leonard_montalbano 2022-04-26 16:15:35 +02:00
commit 5c8de2b9f2
39 changed files with 994 additions and 677 deletions

View File

@ -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).

View File

@ -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).

View File

@ -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
@ -162,14 +172,33 @@ Les conditions de passages vers l'année suivante sont:
3. Cas particulier du passage en BUT 3: nécessité davoir validé toutes les UE 3. Cas particulier du passage en BUT 3: nécessité davoir 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 dune compétence emporte la validation de
> La validation des deux UE du niveau dune compétence emporte la validation de lensemble des UE du niveau inférieur de cette même compétence.
> lensemble des UE du niveau inférieur de cette même compétence.
### Redoublements
La poursuite d'études dans un semestre pair dune 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 dUE ;
- et une moyenne égale ou supérieure à 8 sur 20 à chaque regroupement cohérent
dUE. 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)

View File

@ -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é:

View File

@ -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.

View File

@ -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).

View File

@ -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
View 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>``<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".

View File

@ -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,12 +19,14 @@ 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

View File

@ -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
`DEPT` est l'acronyme du département, par exemple "RT". Ce département `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
`LOGIN` sera le pseudo de l'utilisateur (utilisé pour se connecter), `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
`admin2` est ici le pseudo du nouvel admin. `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,21 +73,21 @@ console:
`LOGIN` est le pseudo de l'utilisateur. Le mot de passe est demandé `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 ### Ajout/retrait d'un rôle à un utilisateur
flask user-role username [-d departement] [-a RoleAAjouter] [-r RoleARetirer] flask user-role username [-d departement] [-a RoleAAjouter] [-r RoleARetirer]
@ -103,7 +102,7 @@ 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 départements (utile pour certains compte administrateurs ou utilisés en lecture
par des clients de l'API). par des clients de l'API).
## Migration des données de ScoDoc 7 ### 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.
@ -113,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
@ -129,14 +128,19 @@ 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 This cache (currently... clear-cache Clear ScoDoc cache This cache (currently...
create-dept Create new departement create-dept Create new departement
create-role Create a new role create-role Create a new role
delete-role Delete a role
delete-dept Delete existing departement delete-dept Delete existing departement
delete-role Delete a role
dumphelp dumphelp
edit-role Add [-a] and/or remove [-r] a permission... edit-role Add [-a] and/or remove [-r] a permission...
import-scodoc7-dept Import département ScoDoc 7: dept:... import-scodoc7-dept Import département ScoDoc 7: dept:...
@ -151,7 +155,8 @@ Commands:
scodoc-database print the database connexion string scodoc-database print the database connexion string
user-create Create a new user user-create Create a new user
user-db-clear Erase all users and roles from the... user-db-clear Erase all users and roles from the...
user-password Set (or change) user's password user-delete Try to delete this user.
user-password Set (or change) users password
user-role Add or remove a role to the given user... user-role Add or remove a role to the given user...
Usage: app sco-db-init [OPTIONS] Usage: app sco-db-init [OPTIONS]
@ -161,14 +166,12 @@ Usage: app sco-db-init [OPTIONS]
Options: Options:
--erase / --no-erase --erase / --no-erase
--help Show this message and exit.
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 !
Options:
--help Show this message and exit.
Usage: app user-create [OPTIONS] USERNAME ROLE DEPT Usage: app user-create [OPTIONS] USERNAME ROLE DEPT
@ -177,22 +180,23 @@ Usage: app user-create [OPTIONS] USERNAME ROLE DEPT
Options: Options:
-n, --nom TEXT -n, --nom TEXT
-p, --prenom TEXT -p, --prenom TEXT
--help Show this message and exit.
Usage: app user-delete [OPTIONS] USERNAME
Try to delete this user. Fails if its 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) users password
Options: Options:
--password TEXT --password TEXT
--help Show this message and exit.
Usage: app create-role [OPTIONS] ROLENAME [PERMISSIONS]... Usage: app create-role [OPTIONS] ROLENAME [PERMISSIONS]...
Create a new role Create a new role
Options:
--help Show this message and exit.
Usage: app edit-role [OPTIONS] ROLENAME Usage: app edit-role [OPTIONS] ROLENAME
@ -205,7 +209,13 @@ Usage: app edit-role [OPTIONS] ROLENAME
Options: Options:
-a, --add TEXT -a, --add TEXT
-r, --remove TEXT -r, --remove TEXT
--help Show this message and exit.
Usage: app delete-role [OPTIONS] ROLENAME
Delete a role
Options:
--help Show this message and exit.
Usage: app user-role [OPTIONS] USERNAME Usage: app user-role [OPTIONS] USERNAME
@ -222,22 +232,20 @@ Usage: app delete-dept [OPTIONS] DEPT
Delete existing departement Delete existing departement
Options: Options:
--yes
--help Show this message and exit. --help Show this message and exit.
Usage: app create-dept [OPTIONS] DEPT Usage: app create-dept [OPTIONS] DEPT
Create new departement Create new departement
Options:
--help Show this message and exit.
Usage: app list-depts [OPTIONS] [DEPTS]... Usage: app list-depts [OPTIONS] [DEPTS]...
If dept exists, print it, else nothing. Called without arguments, list all If dept exists, print it, else nothing. Called without arguments, list all
depts along with their ids. depts along with their ids.
Options:
--help Show this message and exit.
Usage: app scodoc-database [OPTIONS] Usage: app scodoc-database [OPTIONS]
@ -246,7 +254,7 @@ Usage: app scodoc-database [OPTIONS]
Options: Options:
-n, --name show database name instead of connexion string (required for -n, --name show database name instead of connexion string (required for
dropdb/createdb commands) dropdb/createdb commands)
--help Show this message and exit.
Usage: app import-scodoc7-users [OPTIONS] Usage: app import-scodoc7-users [OPTIONS]
@ -255,54 +263,43 @@ Usage: app import-scodoc7-users [OPTIONS]
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.
Options:
--help Show this message and exit.
Usage: app import-scodoc7-dept [OPTIONS] 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
Options:
--help Show this message and exit.
Usage: app migrate-scodoc7-dept-archives [OPTIONS] [DEPT] Usage: app migrate-scodoc7-dept-archives [OPTIONS] [DEPT]
Post-migration: renomme les archives en fonction des id de ScoDoc 9 Post-migration: renomme les archives en fonction des id de ScoDoc 9
Options:
--help Show this message and exit.
Usage: app migrate-scodoc7-dept-logos [OPTIONS] [DEPT] Usage: app migrate-scodoc7-dept-logos [OPTIONS] [DEPT]
Post-migration: renomme les logos en fonction des id / dept de ScoDoc 9 Post-migration: renomme les logos en fonction des id / dept de ScoDoc 9
Options:
--help Show this message and exit.
Usage: app localize-logo [OPTIONS] LOGO DEPT Usage: app localize-logo [OPTIONS] LOGO DEPT
Make local to a dept a global logo (both logo and dept names are mandatory) Make local to a dept a global logo (both logo and dept names are mandatory)
Options:
--help Show this message and exit.
Usage: app photos-import-files [OPTIONS] FORMSEMESTRE_ID XLSFILE ZIPFILE Usage: app photos-import-files [OPTIONS] FORMSEMESTRE_ID XLSFILE ZIPFILE
Options: Import des photos détudiants à partir dune liste excel et dun zip avec les images.
--help Show this message and exit.
Usage: app clear-cache [OPTIONS] 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] Usage: app dumphelp [OPTIONS]
Options: Génère la page daide complète pour la doc.
--help Show this message and exit.
Usage: app profile [OPTIONS] Usage: app profile [OPTIONS]
@ -316,41 +313,32 @@ Options:
--help Show this message and exit. --help Show this message and exit.
``` ```
## Changement des logos apparaissant sur les documents (*la liste ci-dessus est générée à l'aide de la commande* `flask dumphelp`).
### 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/`

View File

@ -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`).

View File

@ -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
@ -58,14 +58,16 @@ Exemple:
Le dépôt 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,10 +84,13 @@ 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 ```bash
git pull origin master git pull origin master
``` ```
@ -388,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:

View File

@ -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 !

View File

@ -110,11 +110,30 @@ Checklist minimale de votre système Linux Debian:
#### 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 :

View File

@ -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)

View File

@ -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).

View File

@ -25,8 +25,7 @@ l'ORM SQLAlchemy (recommandé pour tout nouveau code).
Les modèles correspondant sont déclarés dans `/opt/scodoc/app/models/`. Les modèles correspondant sont déclarés dans `/opt/scodoc/app/models/`.
Principales classes (le nom de certaines classes Python est donné en Principales classes (les noms des classes Python sont en `CamelCase`).
`CaractèresCommeCa`).
- Étudiants (classe `Identite`): nom, codes INE/NIP, etc - Étudiants (classe `Identite`): nom, codes INE/NIP, etc
- Formations: programmes pédagogiques, contenant - Formations: programmes pédagogiques, contenant
@ -73,3 +72,19 @@ def un_exemple():
... # etc ... # 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
```

View File

@ -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).

View File

@ -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)).

View File

@ -0,0 +1,183 @@
# Les 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*, *<-> ApcParcours*
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).
### 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, ordre)
- ApcAppCritique *<-> Module*
- ApcParcours
- ApcAnneeParcours
- ApcParcoursNiveauCompetence
Notons 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:
- Module ||--o{ ApcAppCritique : choix sur la page `module_edit`
- Module <-> ensemble de ApcParcours
- UE <-> ApcParcoursNiveauCompetence : choix sur la page `ue_edit`
- FormSemestre ||--o{ ApcParcours : choix sur la page
`formsemestre_editwithmodules`
- Identite }o--o{ ApcParcours : inscription au parcours, page à créer.
### Cas d'usage
#### 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
- inscrire les étudiants d'un groupe à tous les modules du parcours.
#### 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
##### 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 Modules de chaque année suffisent à couvrir le
parcours. Mais si les Modules 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 (code formation identique ou bien même
référentiel de compétence ?) dans lequel l'étudiant est inscrit.
2. Construire les couples d'UE (regroupements cohérent): apparier les UE qui
ont le même ApcParcoursNiveauCompetence.
#### 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.

View File

@ -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.

View File

@ -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,16 +95,19 @@ 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 sont des images au format JPEG (extension `.jpg` ou `.jpeg`) ou PNG (expension `.png`), téléversés sur le serveur scodoc et intégrables dans les documents html ou pdf. 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).
Principes généraux : 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; * 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 exclusiement composé de caractères alphanumériques ou du caractère '`-`'; * 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, * les logos définis globalement sont accessibles pour tous les départements.
, c'est le logo du département qui sera utilisé en lieu et place de logo global; 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). * les logos de nom '`header`' et '`footer`' définis globalement ne peuvent être supprimés (mais peuvent être redéfinis).
@ -116,7 +118,7 @@ Ce formulaire comporte une section pour les définitions globales plus une secti
Une section présente la liste des logos avec leurs propriétés (la dimension est donnée à titre indicatif quand elle est disponible). 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 diponibles sont : Pour chaque logo, les actions disponibles sont :
* Le remplacement de l'image existante par un nouveau fichier; * Le remplacement de l'image existante par un nouveau fichier;
@ -134,6 +136,9 @@ Notez qu'il est possible de ne préciser que l'une des deux dimensions hauteur o
Dans ce cas, la dimension manquante est déduite du ratio (rapport hauteur/largeur) de l'image originale. 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

View File

@ -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%">

View File

@ -55,10 +55,17 @@ 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.
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 1. Choisir la sauvegarde à utiliser, en fonction de la date à partir de
laquelle on a fait une erreur (eg suppression non intentionnelle d'un laquelle on a fait une erreur (par ex. suppression non intentionnelle d'un
semestre...). Le fichier se trouve sous semestre...). Le fichier se trouve sous
`/var/lib/postgresql/SCODOC-BACKUPS``XXX` est concerné. Utiliser par `/var/lib/postgresql/SCODOC-BACKUPS``XXX` est concerné. Utiliser par
exemple `ls -lrt` pour visualiser les sauvegardes triées par date. exemple `ls -lrt` pour visualiser les sauvegardes triées par date.
@ -76,24 +83,18 @@ 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/XXX # (nom de la BDD en majuscule) 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 scodoc9 # relance ScoDoc systemctl start scodoc9 # relance ScoDoc
``` ```
Attention: s'il y a eu des mise à jour du logiciel entre temps, il peut arriver
que la base sauvegardée nécessite une migration. Arrêtez le service scodoc9,
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 scodoc9` comme root).
## Déplacement de toute une installation ## Déplacement de toute une installation
Les scripts ci-dessus ne se chargent que de la base de données SQL. Les scripts ci-dessus ne se chargent que de la base de données SQL.

View File

@ -1,5 +1,5 @@
# API pour ScoDoc 9 ## API pour ScoDoc 9
L'API ScoDoc permet à des applications tierces d'interroger ScoDoc. Elle offre un accès aux informations aux formats XML et JSON. L'API ScoDoc permet à des applications tierces d'interroger ScoDoc. Elle offre un accès aux informations aux formats XML et JSON.
La version ScoDoc 9 a introduit une nouvelle API avec un nouveau mécanisme d'authentification. La version ScoDoc 9 a introduit une nouvelle API avec un nouveau mécanisme d'authentification.
@ -24,45 +24,51 @@ Les objets ScoDoc manipulables sont identifiés par des id.
L'URL complète est de la forme: `https://scodoc.example.com/ScoDoc/api/fonction`. L'URL complète est de la forme: `https://scodoc.example.com/ScoDoc/api/fonction`.
# Fonctions de l'API ScoDoc 7 portées en ScoDoc 9 ## Configuration de ScoDoc pour utiliser l'API
L'ancienne API ScoDoc 7 est décrite ici: [ScoDocAPI](ScoDocAPI.md) Il est nécessaire de disposer d'un compte utilisateur avec les droits adéquats.
Afin de garantir l'interopérabilité avec les clients ScoDoc 7 (ENT, etc), les En général, il est recommandé de créer un rôle, de lui attribuer les permissions
fonctions suivantes sont disponibles avec le mécanisme d'authentification que l'on veut utiliser, puis de créer un utilisateur ayant ce rôle.
basique de ScoDoc 7. Elles sont considérées comme *obsolètes* ("deprecated") et
disparaitront en juillet 2022.
Certaines ont plusieurs "routes" (URl), car ScoDoc 7 tolérait divers accès. En ligne de commande, cela peut se faire comme suit (voir détail des commandes
[sur le guide de configuration](GuideConfig.md)).
- `Absences/XMLgetBilletsEtud` (deviendra `api/absences/billets/etud/ etudid>`) ```
- `Absences/AddBilletAbsence` (deviendra `api/absences/billet/add`) # se connecter comme utilisateur scodoc
- `Absences/XMLgetAbsEtud` (deviendra `api/absences/ etudid>`, en json) su - scodoc
- `Notes/evaluation_listenotes` (non existante en ScoDoc9, trop complexe)
- `Notes/formsemestre_id` (deviendra `api/formsemestre`)
- `Notes/formsemestre_bulletinetud` (deviendra `api/etud/<etudid>/bul/<formsemestre_id>`)
- `Notes/XMLgetFormsemestres` (non existante en ScoDoc9, redondant avec `api/formsemestre` ?)
- `etud_info` ou `XMLgetEtudInfos` ou `Absences/XMLgetEtudInfos` ou `Notes/XMLgetEtudInfos` (deviendra `/api/etud/<etudid>`)
- `groups_view` (deviendra `groups`)
Les routes ci-dessus s'entendent à partir de l'URL de base de votre ScoDoc, c'est # Créer un rôle
à dire `https://votre.site.fr/ScoDoc/<dept>/Scolarite/`, et répondent en GET et flask create-role LecteurAPI
en POST. # Lui donner les droits nécessaires: ici APIView
flask edit-role LecteurAPI -a APIView
Note: # Créer un nouvel utilisateur avec ce rôle:
- `Absences/listeBillets` est un formulaire et ne fait pas partie de l'API. flask user-create lecteur_api LecteurAPI @all
# Fonctions d'API ScoDoc 9 (work in progress) # Ou bien, si on veut utiliser un compte existant:
# associer notre rôle à un utilisateur
flask user-role lecteur_api -a LecteurAPI
# Au besoin, changer le mot de passe de l'utilisateur
# (on aura besoin de ce mot de passe dans la configuration du client d'API)
flask user-password lecteur_api
...
```
## Fonctions d'API ScoDoc 9 (work in progress)
Basé sur le ticket [#149](https://scodoc.org/git/viennet/ScoDoc/issues/149) Basé sur le ticket [#149](https://scodoc.org/git/viennet/ScoDoc/issues/149)
La documentation ci-dessous concerne la **future** version De ScoDoc. La documentation ci-dessous concerne la **future** version de ScoDoc (9.3, avec
parties expérimentales progressivement mises en production à partir de 9.2.12).
## Accès à l'API REST ### Accès à l'API REST
Elle sera accessible à l'adresse: https://scodoc.monsite.tld/ScoDoc/api/fonction Elle sera accessible à l'adresse: https://scodoc.monsite.tld/ScoDoc/api/fonction
### Authentification #### Authentification
Lors de votre authentification (_connection avec login et mdp_) à Scodoc, il Lors de votre authentification (_connection avec login et mdp_) à Scodoc, il
vous sera attribué un jeton (token jwt _généré automatiquement_) vous permettant vous sera attribué un jeton (token jwt _généré automatiquement_) vous permettant
@ -87,7 +93,7 @@ La réponse doit ressembler à ceci:
Vous trouverez dans `/opt/scodoc/tests/api/exemple-api-basic.py` un exemple Vous trouverez dans `/opt/scodoc/tests/api/exemple-api-basic.py` un exemple
complet en python d'interrogation de l'API. complet en python d'interrogation de l'API.
### Codes HTTP #### Codes HTTP
Chaque appel à l'API donne lieu à une réponse retournant un code spécifique en Chaque appel à l'API donne lieu à une réponse retournant un code spécifique en
fonction du résultat obtenu. L'analyse de ce code vous permet de vous assurer fonction du résultat obtenu. L'analyse de ce code vous permet de vous assurer
que la requête a été traitée avec succès. que la requête a été traitée avec succès.
@ -105,7 +111,7 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
* [503](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/503) : L'API est momentanément indisponible, réessayez dans quelques minutes. * [503](https://developer.mozilla.org/fr/docs/Web/HTTP/Status/503) : L'API est momentanément indisponible, réessayez dans quelques minutes.
## Départements ### Départements
* **`departements`** * **`departements`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `viewable` (optionnel, si faux liste aussi les * **Paramètres:** `viewable` (optionnel, si faux liste aussi les
@ -117,15 +123,16 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
* **Exemple de résultat:** `[id_1, id_2, id_3, ...]` * **Exemple de résultat:** `[id_1, id_2, id_3, ...]`
* **`liste_etudiants`** * **`etudiants`** XXX à revoir
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `dept`, `semestre` * **Paramètres:** `dept`, `semestre`
* **Routes:** `/api/departements/<str:dept>/etudiants/liste/<str:semestre>` (_`semestre` étant un paramètre optionnel_) * **Routes:** `/api/departements/<str:dept>/etudiants/liste/<int:formsemestre_id>`
* **Exemple d'utilisation:** `/api/departements/MMI/etudiants/liste` * **Exemple d'utilisation:** `/api/departements/MMI/etudiants/liste`
* **Résultat:** liste des étudiants d'un département - semestre actuel par défaut. * **Résultat:** liste des étudiants d'un département - semestre actuel par
défaut. XXX à préciser
* **`liste_semestres_actifs`** * **`liste_semestres_actifs`** XXX à revoir
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `dept` * **Paramètres:** `dept`
* **Routes:** `/api/departements/<str:dept>/semestres_actifs` * **Routes:** `/api/departements/<str:dept>/semestres_actifs`
@ -133,15 +140,15 @@ Tous les codes >= 400 indiquent que la requête n'a pas été traitée avec succ
* **Résultat:** Liste des semestres actifs d'un département donné. (_réponse sous format json_) * **Résultat:** Liste des semestres actifs d'un département donné. (_réponse sous format json_)
* **`referenciel_competences`** * **`referentiel_competences`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `dept`, `formation` (_`formation` étant un id de formation, un programme pédagogique_) * **Paramètres:** `id`, id du référentiel
* **Routes:** `/api/departements/<str:dept>/formations/<int:formation>/referentiel_competences` * **Routes:** `/api/referentiel_competences/<int:id>`
* **Exemple d'utilisation:** `/api/departements/MMI/formations/12/referentiel_competences` * **Résultat:** Le référentiel de compétences d'une formation donnée (json). (_pas toujours présent_)
* **Résultat:** Le référentiel de compétences d'une formation donnée. (_pas toujours présent_)
* XXX obtenir la liste des référentiels
## Etudiants ### Etudiants
* **`etud_dept`** * **`etud_dept`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `code_nip` * **Paramètres:** `code_nip`
@ -451,7 +458,7 @@ formsemestre_id": "SEM12345",
} }
``` ```
## UE ### UE
* **`UEs`** * **`UEs`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `dept`, `̀semestre` * **Paramètres:** `dept`, `̀semestre`
@ -462,7 +469,7 @@ formsemestre_id": "SEM12345",
## Semestres de formation ### Semestres de formation
Les sessions de formation (dénommées "semestres" même si elles durent une année ou un mois) sont représentées par les `formsemestre`. Les sessions de formation (dénommées "semestres" même si elles durent une année ou un mois) sont représentées par les `formsemestre`.
* **`formsemestre`** * **`formsemestre`**
@ -492,7 +499,7 @@ Les sessions de formation (dénommées "semestres" même si elles durent une ann
] ]
``` ```
### Note sur les identifiants de sessions #### Note sur les identifiants de sessions
Le `session_id` peut être utilisé pour identifier de façon prévisible et Le `session_id` peut être utilisé pour identifier de façon prévisible et
(presque) unique une session dans un établissement, ce qui est utile (presque) unique une session dans un établissement, ce qui est utile
notamment pour interfacer ScoDoc à d'autres logiciels (par exemple gestion d'emplois notamment pour interfacer ScoDoc à d'autres logiciels (par exemple gestion d'emplois
@ -513,7 +520,7 @@ informations suivantes:
**Exemple:** `INFO-DUT-FI-S1-2014` équivaut à un semestre S1 d'un DUT informatique de 2014 en formation initiale (FI) **Exemple:** `INFO-DUT-FI-S1-2014` équivaut à un semestre S1 d'un DUT informatique de 2014 en formation initiale (FI)
## Modules de formation ### Modules de formation
Les moduleimpl sont les modules d'un semestre, ou les ressources, ou les SAÉs. Les moduleimpl sont les modules d'un semestre, ou les ressources, ou les SAÉs.
On peut récupérer soit un module par son id, soit la listes des modules d'un semestre. On peut récupérer soit un module par son id, soit la listes des modules d'un semestre.
@ -529,7 +536,7 @@ On peut récupérer soit un module par son id, soit la listes des modules d'un s
## Groupes et partitions ### Groupes et partitions
L'ensemble des étudiants d'un semestre peut être réparti selon une ou L'ensemble des étudiants d'un semestre peut être réparti selon une ou
plusieurs partitions (types de groupes). Chaque partition est constituée plusieurs partitions (types de groupes). Chaque partition est constituée
@ -663,7 +670,7 @@ d'un nombre quelconque de groupes d'étudiants.
TODO: à changer, passer les paramètres dans le corps de la requête TODO: à changer, passer les paramètres dans le corps de la requête
## Bulletins de notes ### Bulletins de notes
* **`evaluations`** * **`evaluations`**
* **Méthode:** GET * **Méthode:** GET
* **Paramètres:** `moduleimpl_id` * **Paramètres:** `moduleimpl_id`
@ -701,7 +708,7 @@ d'un nombre quelconque de groupes d'étudiants.
TODO vérifier et passer les valeurs dans le corps. TODO vérifier et passer les valeurs dans le corps.
## Absences ### Absences
**Remarques**, les dates sont au format iso `yyyy-mm-dd`. Les dates de fin ne sont pas incluses. Et `demi_journee`= 2 si journée complète, =1 si uniquement le matin, =0 si uniquement l'après-midi. **Remarques**, les dates sont au format iso `yyyy-mm-dd`. Les dates de fin ne sont pas incluses. Et `demi_journee`= 2 si journée complète, =1 si uniquement le matin, =0 si uniquement l'après-midi.
@ -761,7 +768,7 @@ d'un nombre quelconque de groupes d'étudiants.
] ]
``` ```
## Logos ### Logos
* **`liste des logos globaux`** * **`liste des logos globaux`**
* **Méthode:** GET * **Méthode:** GET
@ -797,6 +804,33 @@ d'un nombre quelconque de groupes d'étudiants.
* **Résultat :** l'image (format png ou jpg) * **Résultat :** l'image (format png ou jpg)
### En savoir plus
## En savoir plus
Voir exemples d'utilisation de l'API en Python, dans `tests/api/`. Voir exemples d'utilisation de l'API en Python, dans `tests/api/`.
## Fonctions de l'API ScoDoc 7 portées en ScoDoc 9
L'ancienne API ScoDoc 7 est décrite ici: [ScoDocAPI](ScoDocAPI.md)
Afin de garantir l'interopérabilité avec les clients ScoDoc 7 (ENT, etc), les
fonctions suivantes sont disponibles avec le mécanisme d'authentification
basique de ScoDoc 7. Elles sont considérées comme *obsolètes* ("deprecated") et
disparaitront en juillet 2022.
Certaines ont plusieurs "routes" (URl), car ScoDoc 7 tolérait divers accès.
- `Absences/XMLgetBilletsEtud` (deviendra `api/absences/billets/etud/ etudid>`)
- `Absences/AddBilletAbsence` (deviendra `api/absences/billet/add`)
- `Absences/XMLgetAbsEtud` (deviendra `api/absences/ etudid>`, en json)
- `Notes/evaluation_listenotes` (non existante en ScoDoc9, trop complexe)
- `Notes/formsemestre_id` (deviendra `api/formsemestre`)
- `Notes/formsemestre_bulletinetud` (deviendra `api/etud/<etudid>/bul/<formsemestre_id>`)
- `Notes/XMLgetFormsemestres` (non existante en ScoDoc9, redondant avec `api/formsemestre` ?)
- `etud_info` ou `XMLgetEtudInfos` ou `Absences/XMLgetEtudInfos` ou `Notes/XMLgetEtudInfos` (deviendra `/api/etud/<etudid>`)
- `groups_view` (deviendra `groups`)
Les routes ci-dessus s'entendent à partir de l'URL de base de votre ScoDoc, c'est
à dire `https://votre.site.fr/ScoDoc/<dept>/Scolarite/`, et répondent en GET et
en POST.
Note:
- `Absences/listeBillets` est un formulaire et ne fait pas partie de l'API.

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 502 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
docs/assets/images/favicon.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
docs/fig/GrapheUser.odg Normal file

Binary file not shown.

BIN
docs/fig/GrapheUser.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

View File

@ -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,8 +103,19 @@ 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.0 : publiée le 19 sept. 2021, version complètement remaniée en
Python 3/Flask. - 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) - ScoDoc 9.1 : décembre 2021 gestion du bachelor (BUT)
- type de formation BUT - type de formation BUT
@ -94,10 +126,9 @@ Les prochaines versions de ScoDoc (*sous réserve !*):
- calcul des moyennes d'UE - calcul des moyennes d'UE
- bulletin de note v1 - bulletin de note v1
- ScoDoc 9.2 : fin 2021 ou début 2022 nouvelles fonctionnalités liées au BUT - ScoDoc 9.0 : publiée le 19 sept. 2021, version complètement remaniée en
- tenue des jurys de S1 Python 3/Flask.
- gestion des parcours (pour la mise en place des semestre)
- import Orébut avec gestion adaptation locale (à l'étude)
<br> <br>

View 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-----

View 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;
}

View File

@ -1,33 +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
- 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 - "API (interfaçages autres logiciels)": ScoDoc9API.md
- FAQ: FAQ.md - FAQ: FAQ.md
@ -46,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

View File

@ -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