This commit is contained in:
Matthias HARTMANN 2023-06-07 09:31:25 +02:00
commit c009fc95b2
126 changed files with 6837 additions and 5248 deletions

View File

@ -1,56 +1,52 @@
# Gestion des utilisateurs dans ScoDoc
## Gestion des utilisateurs dans ScoDoc
ScoDoc gère sa liste d'utilisateurs (enseignants, secrétaires) dans
une base de données SQL.
ScoDoc gère sa propre base d'utilisateurs (enseignants, administratifs,
secrétaires). Rappelons que les étudiants ne sont pas des utilisateurs, ils
n'ont pas d'accès direct au logiciel.
### Principes généraux
## Principes généraux
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 utilisateurs sont associés à:
Les entités gérées par scodoc sont :
- Les utilisateurs;
- les rôles;
- en liaison avec les départements.
- un identifiant unique (`user_name`), propre à ScoDoc;
- une adresse email;
- un ensemble de rôles;
- un département ScoDoc de rattachement (optionnel);
- un statut actif/inactif.
- d'autres attributs, comme l'identifiant CAS (voir [Configuration du CAS](ConfigCAS.md))
#### 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.
### Rôles et permissions
#### 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
Les rôles sont eux-même associés à des permissions: on donne une permission (ex:
"enregistrer des absences") à un ou plusieurs rôles, et on associe chaque compte
utilisateur à un ou plusieurs rôles. Ce système est à la fois flexible et facile
à configurer. Plus de détails [sur la page dédiée](ConfigPermissionsDept.md).
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, ...).
Un rôle permet de grouper un ensemble de permissions nécessaire pour remplir des
tâches données (secrétariat, responsable de formation, intervenant enseignant,
...).
_Exemple:_
Un utilisateur peut être associé à un nombre quelconque de rôle, chaque
association étant valable pour un département donné (ou bien éventuellement
tous). Il peut ainsi être "Responsable" dans un département et "Enseignant" dans
un autre.
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 :
### Département de rattachement
- 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)`, ...
Le département de rattachement est utilisé pour afficher rapidement la liste des
comptes d'un département (accès par un responsable de formation, chef de
département, ...). Certains comptes ne sont pas rattachés à un département
(administrateurs).
Pour une description plus fine des privilèges, voir
[ConfigPermissions](ConfigPermissions.md)
### Fermeture des comptes
### Opérations et cycle de vie des utilisateurs
En principe, on ne **supprime** pas de compte utilisateur s'ils ont déjà été
utilisés. En effet, afin de permettre la traçabilité des opérations, ScoDoc
conserve des références aux utilisateurs. Pour fermer un compte, on le rend
**inactif**. Un utilisateur inactif ne peut plus se connecter, et n'apparait pas
dans les listes par défaut.
## Opérations et cycle de vie des utilisateurs
Un compte utilisateur peut être modifié par 3 types d'utilisateurs :
@ -60,11 +56,11 @@ Un compte utilisateur peut être modifié par 3 types d'utilisateurs :
Les opérations existantes sont :
- La création;
- La création;
- la demande de renouvellement de mot de passe;
- la désactivation.
#### Notes:
### 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
@ -73,10 +69,11 @@ Les opérations existantes sont :
mot de passe par mail) a été remplacé par l'ajout de la mention suivante dans
le formulaire de connexion :
```text
En cas d'oubli de votre mot de passe cliquez ici pour le réinitialiser.
```
` En cas d'oubli de votre mot de passe cliquez ici pour le réinitialiser. `
#### Création d'un utilisateur (par formulaire)
### Création d'un utilisateur (par formulaire)
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
@ -91,7 +88,7 @@ la page de gestion des utilisateurs (accessible par le menu latéral)
invité par un email qui lui est envoyé).
**Les options de création (mail)** permettent également de choisir parmi les 3
scenarii suivants :
scenarii suivants :
1. un message d'accueil l'invitant à initialiser son mot de passe;
2. un message de bienvenue simple;
@ -100,24 +97,22 @@ scenarii suivants :
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écisé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
```
Dans tous les cas les mails seront envoyés avec l'adresse de réponse précisée
par la valeur de la variable de configuration `email_from_addr`, qui peut être
spécifié au niveau général ou département par département (voir
[Configuration des envois d'emails](ConfigEmail.md))
**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)
### 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.
`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.
@ -130,17 +125,18 @@ Les colonnes à remplir sont les suivantes :
- `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).
- `cas_id`, ...: optionnel, voir [Configuration du CAS](ConfigCAS.md)
_Note_:
- Tous les utilisateurs sont créés ou bien aucun.
- Un mail est envoyé à chaque utilisateur nouvellement créé.
#### Changement du mot de passe
### Changement du mot de passe
Deux circonstances sont envisagées.
##### Oubli de mot de passe
#### 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
@ -149,15 +145,15 @@ 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
#### Édition 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.
permet à l'utilisateur d'éditer son profil.
#### Activation/désactivation
### Activation/désactivation
Une fois créé, le compte utilisateur conserve son existence. Il peut cependant être rendu inactif:
@ -169,7 +165,7 @@ 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)
## 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.
@ -183,7 +179,6 @@ On notera:
3. Que les états `créé`et `créé + ticket`permettent la connexion (sous réserve
de la connaissance du mot de passe).
<img src="/fig/GrapheUser.png" />
**SCODOC**.
@ -209,11 +204,17 @@ La table **user** contient:
|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 |
(les champs utilisé pour le CAS ne sont pas mentionnés ici)
<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.
🚸 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).
!!! note "Voir aussi"
- [Configuration du CAS](ConfigCAS.md)
- [Guide administrateur ScoDoc](GuideAdminSys.md)
- [Configuration des envois d'emails](ConfigEmail.md)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

View File

@ -1,38 +1,49 @@
# Cursus ScoDoc
# Parcours ScoDoc
Les cursus pédagogiques sont définis dans ScoDoc par des classes de "parcours" qui définissent les paramètres: nombre de semestres, modalités de validation des UE, etc.
Les cursus pédagogiques sont définis dans ScoDoc par des classes de "cursus" qui
définissent les paramètres: nombre de semestres, modalités de validation des UE,
etc.
Plusieurs parcours sont définis dans ScoDoc, l'utilisateur choisi l'un d'entre eux pour chacun des programmes pédagogique (menu **Type de parcours**).
Les parcours existants incluent les suivants:
Plusieurs cursus sont définis dans ScoDoc, l'utilisateur choisi l'un d'entre eux
pour chacun des programmes pédagogique (menu **Type de parcours**). Les cursus
existants incluent les suivants:
* DUT (*Diplôme Universitaire de Technologie*, en quatre semestres)
* Licence Professionnelle
* Master (différents types)
* etc.
* BUT (*Bachelor Universitaire de Technologie*, usuellement en 6 semestres)
* DUT (*Diplôme Universitaire de Technologie*, en quatre semestres)
* Licence Professionnelle
* Licence
* Master (différents types)
* etc.
Il est possible d'ajouter des parcours adaptés en ajoutant du code Python. Toutefois, afin de ne pas perturber les mises à jours et de garantir la pérennité des modifications, il est très recommandé de partager les modifications pour inclusion dans le code ScoDoc. Contacter pour cela la liste scodoc-devel ([listes de diffusion](ListesDeDiffusion.md)).
Il est possible d'ajouter des cursus adaptés en ajoutant du code Python.
Toutefois, afin de ne pas perturber les mises à jours et de garantir la
pérennité des modifications, il est très recommandé de partager les
modifications pour inclusion dans le code ScoDoc. Contacter pour cela les
développeurs ([Contacts](Contact.md)).
## Quelques indications pour les programmeurs
## Quelques indications pour les programmeurs
Les parcours sont définis dans le module `sco_codes_parcours.py`. Chaque parcours correspond à une sous-classe de `TypeParcours`, définissant des paramètres et quelques méthodes.
Les parcours sont définis dans le module `codes_cursus.py`. Chaque parcours
correspond à une sous-classe de `TypeCursus`, définissant des paramètres et
quelques méthodes.
Les paramètres (déclarés comme des variables de classe) sont les suivants:
Nom | Type | &nbsp;
--- | ---- | ---
TYPE_PARCOURS| `int` | id du parcours (un entier unique, à demander sur scodoc-devel)
NAME| `string` | nom du parcours présenté à l'utilisateur (requis)
NB_SEM| `int` | durée en semestres (1)
BARRE_MOY | `float` | seuil validation semestre (10/20)
BARRE_UE_DEFAULT | `float` | seuil moy UE pour valider semestre (8/20)
BARRE_UE | `dict { ue : seuil }`| seuil par UE (`{}`)
NOTES_BARRE_VALID_UE_TH | `float` | seuil validation UE (10./20)
ALLOW_SEM_SKIP| `bool` | passage: autorise-t-on les sauts de semestres ? (`False`)
SESSION_NAME| `string` | nom des sessions (`'semestre'`)
SESSION_ABBRV | `string` | `'S' -> S1, S2, ...`
UNUSED_CODES | `set` | ensemble des codes jury non autorisés dans ce parcours (`set()`)
UE_IS_MODULE| `bool` | un seul module par UE (si plusieurs modules, etudiants censéments inscrits à un seul d'entre eux) (`False`)
ECTS_ONLY| `bool` | parcours avec progression basée uniquement sur les ECTS (`False`)
ALLOWED_UE_TYPES | `set` | types d'UE autorisés dans ce parcours
TYPE_PARCOURS| `int` | id du parcours (un entier unique, à demander sur scodoc-devel)
NAME| `string` | nom du parcours présenté à l'utilisateur (requis)
NB_SEM| `int` | durée en semestres (1)
BARRE_MOY | `float` | seuil validation semestre (10/20)
BARRE_UE_DEFAULT | `float` | seuil moy UE pour valider semestre (8/20)
BARRE_UE | `dict { ue : seuil }`| seuil par UE (`{}`)
NOTES_BARRE_VALID_UE_TH | `float` | seuil validation UE (10./20)
ALLOW_SEM_SKIP| `bool` | passage: autorise-t-on les sauts de semestres ? (`False`)
SESSION_NAME| `string` | nom des sessions (`'semestre'`)
SESSION_ABBRV | `string` | `'S' -> S1, S2, ...`
UNUSED_CODES | `set` | ensemble des codes jury non autorisés dans ce parcours (`set()`)
UE_IS_MODULE| `bool` | un seul module par UE (si plusieurs modules, etudiants censéments inscrits à un seul d'entre eux) (`False`)
ECTS_ONLY| `bool` | parcours avec progression basée uniquement sur les ECTS (`False`)
ALLOWED_UE_TYPES | `set` | types d'UE autorisés dans ce parcours

View File

@ -216,12 +216,12 @@ Type | Nom | Description | Exemple de valeur
Type | Nom | Description | Exemple de valeur
----| --- | ---- | ---
int | annee | | 2011
int | annee | | 2011
string | etatincursem | état (I=inscrit, D=démissionnaire) | 'I'
string | inscription | | 'DUT GEII, semestre 1 FI (Mars 2011 - Jul 2011)'
string | situation | | 'inscrit en DUT GEII, semestre 1 FI (Mars 2011 - Jul 2011) le 11/09/2011'
string | statut | ? | *
| descr_inscription | | 'Inscrit le 27/06/2011.'
| descr_inscription | | 'Inscrit le 27/06/2011.'
En outre, les attributs `sems`, `cursem` et `ins` apportent des informations
sur les semestres auxquels l'étudiant est ou a été inscrit.
@ -229,6 +229,14 @@ sur les semestres auxquels l'étudiant est ou a été inscrit.
`etud['sems']`est une liste de dictionnaire représentants les
semestres auxquels est ou a été inscrit l'étudiant.
#### Parcours et référentiel BUT
Type | Nom | Description | Exemple de valeur
--------| ---------------------- | ---- | ---
string | parcours_titre | titre du parcours | "Cybersécurité"
string | parcours_code | code du parcours | "Cyber"
string | refcomp_specialite | code spécialité | "RT"
string | refcomp_specialite_long| spécialité | "Réseaux et Télécommunications"
### Résultats (notes) de l'étudiant dans le semestre
Quelques infos sur les résultats. Le détail des notes est dans la

View File

@ -1,6 +1,5 @@
# Association 1901 ScoDoc
ScoDoc est un logiciel libre et gratuit, Open Source.
Le développement du projet a été porté par son créateur, Emmanuel Viennet,
@ -8,26 +7,26 @@ professeur à l'université Sorbonne Paris Nord (ex Paris 13), plusieurs fois ch
du département Réseaux et Télécommunications de l'IUT de Villetaneuse et
Président de l'ACD R&T. Plusieurs collègues bénévoles ont contribué, corrigeant
ou ajoutant des fonctions. Ils sont enseignants ou BIATSS dans les IUT de
Colmar, Ville d'Avray, Grenoble, Le Havre, Lille, Nantes, pour ne citer que
ceux-là.
Colmar, Ville d'Avray, Grenoble, Le Havre, Lille, Lyon, Mulhouse, Nantes, pour
ne citer que ceux-là.
Le développement d'un logiciel de cette ampleur prend du temps et demande des
moyens matériels : serveurs, machines de développement et de test. La
possibilité de recruter des stagiaires, apprentis ou CDD pour travailler sur le
projet a souvent été évoquée. Pour se donner ces possibilités et pérenniser le
projet, nous avons créé début 2020 une association à but non lucratif (loi
1901).
1901).
Les établissements ou départements qui utilisent ScoDoc sont encouragés à
adhérer à l'association. Leur cotisation permettra de financer les actions de
l'association et leur permettra d'accéder aux nouvelles fonctionnalités, mise à
jour et support technique.
jour et support technique.
Plusieurs types d'adhésion sont possibles, voir le [bulletin d'adhésion
PDF](papers/Adhesion-2022-2023-Association-ScoDoc.pdf) ([version
Word](papers/Adhesion-2022-2023-Association-ScoDoc.docx)), à renvoyer à
PDF](papers/Adhesion-2023-2024-Association-ScoDoc.pdf) ([version
Word](papers/Adhesion-2023-2024-Association-ScoDoc.docx)), à renvoyer à
<emmanuel.viennet@gmail.com>. (note: toutes les informations nécessaires à la
"création fournisseur" sont sur le bulletin d'adhésion).
Nous vous remercions de votre support qui rendra possible la pérennité du projet
ScoDoc.
ScoDoc.

View File

@ -1,4 +1,3 @@
# Le Bachelor Universitaire de Technologie (BUT)
Formation en trois ans dispensées par les IUT français, introduite en 2021, et
@ -6,42 +5,49 @@ 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.
gérer avec ScoDoc. Vous trouverez ensuite un exemple de mise en place des
semestres d'un BUT ici: [Modélisation BUT: exemple de la spécialité
Informatique](BUTExempleInfo.md). Pour les curieux et les développeurs, la page
[modélisation des parcours BUT](ModelisationParcoursBUT.md) donne quelques
détails sur la façon dont ScoDoc organise les objets du BUT.
De nombreux aspects sont aussi décrits dans les
<a
href="https://www.youtube.com/playlist?list=PLw49h6RbvswhasBk9bXj7PzOD8GDW3kG1"
target="_blank">Tutoriels sur YouTube <img src="/img/tube.png" alt=""
style="margin-top:0px; margin-bottom:0px; border-width:0px;"/></a>
## UE, modules, évaluations
- UE : Unité d'Enseignement, associée à des crédits (ECTS) et validée (ou non)
en jury. Une UE est rattachée à une *formation*.
- Module: dans ScoDoc, un module désigne une dispositif pédagogique, évalué.
Dans les formations BUT, le module prend la forme d'une *ressource* ou d'une
SAE (*situation d'apprentissage et d'évaluation*). Un module est rattaché à
une (seule) UE.
- UE : Unité d'Enseignement, associée à des crédits (ECTS) et validée (ou non)
en jury. Une UE est rattachée à une *formation*.
Dans le BUT, un module est aussi associé à une ou ou plusieurs UE, cette
association étant affecté de *coefficients* (une valeur par UE associée).
- Évaluation: dispositif produisant une note pour les étudiants inscrits à un
module. L'évaluation est associée à des coefficients.
- Module: dans ScoDoc, un module désigne une dispositif pédagogique, évalué.
Dans les formations BUT, le module prend la forme d'une *ressource* ou d'une
SAE (*situation d'apprentissage et d'évaluation*). Un module est rattaché à
une (seule) UE.
Dans le BUT, un module est aussi associé à une ou ou plusieurs UE, cette
association étant affecté de *coefficients* (une valeur par UE associée).
- Évaluation: dispositif produisant une note pour les étudiants inscrits à un
module. L'évaluation est associée à des coefficients.
## Structure des formations par compétences de type BUT
L'architecture d'une formation BUT est définie par les éléments suivants:
- Compétence
- Niveau
- Composantes essentielles ("En respectant les règles métiers...")
- Situations professionnelles ("Surveillance de la qualité de la
production...")
- Compétence
- Niveau
- Composantes essentielles ("En respectant les règles métiers...")
- Situations professionnelles ("Surveillance de la qualité de la
production...")
- Niveaux de compétence: associés à une année. Attention, le niveau 1 commence
parfois en deuxième année.
- Numéro (1, 2, 3)
- Titre
- Apprentissages critiques (AC): "Identifier les dysfonctionnements du réseau local..."
- Niveaux de compétence: associés à une année. Attention, le niveau 1 commence
parfois en deuxième année.
- Numéro (1, 2, 3)
- Titre
- Apprentissages critiques (AC): "Identifier les dysfonctionnements du réseau local..."
Chaque niveau se décompose en deux UE (aka "regroupement cohérent d'UE"), en
semestres impair et pair d'une année scolaire.
@ -54,14 +60,15 @@ niveaux) et UEs.
## Calcul des notes
Les rôles des SAÉ et ressources étant symétriques, on appellera dans la suite (et
dans ScoDoc) *module* un objet de type SAÉ _ou_ ressource.
dans ScoDoc) *module* un objet de type SAÉ *ou* ressource.
Dans la suite, on considère les poids et coefficients toujours positifs ou
nuls (pas de coefficients négatifs).
### Coefficients des SAÉ et ressources
Les coefficients des modules (ressources et SAÉ) sont fixés par le PN (*adapté
localement*).
localement*).
Traditionnellement, chaque module $m$ est noté par une note (moyenne de ses
évaluations) représentée par le nombre $\mu_m$. Si $c_{u,m}$ désigne le coefficient du
@ -92,20 +99,20 @@ La note (moyenne) d'un module (SAÉ ou ressource) se calcule à partir de ses
évaluations. Chaque évaluation est pondérée, par un poids $p$ est fixé par
l'enseignant. Ce poids joue le même rôle que le coefficient d'une évaluation
classique, mais peut se décliner en plusieurs valeurs, une par UE associée au
module.
module.
Soit $n_e$ la note à l'évaluation $e$ du module $m$, et $p_{e, u}$ son poids
vers l'UE $u$. La somme des notes d'un module pour l'UE $u$ est:
vers l'UE $u$. La somme des notes d'un module pour l'UE $u$ est:
$$n_u = \sum_e p_{e,u} \, n_e$$
Chaque UE indiquée par le référentiel de formation doit être évaluée: si le
coefficient du module vers l'UE $u$ est non nul, la somme des poids vers
coefficient du module vers l'UE $u$ est non nul, la somme des poids vers
une UE $u$ *doit* être non nulle; si ce n'est pas le cas, le module sera déclaré
*non conforme* et le jury ne pourra pas être tenu.
*non conforme* et le jury ne pourra pas être tenu.
### Moyenne de module (SAÉ ou ressource)
La moyenne d'un étudiant dans un module est un vecteur, car on a une note moyenne par UE:
$$\mu_{m, u} = \frac{\sum_e p_{e,u} \, n_e}{\sum_{e} \, p_{u,e}}$$
@ -130,6 +137,7 @@ Par ailleurs, il est (parfois, peut-être) utile de calculer des moyennes par
pôles au sein de l'UE: pôle SAÉ, pôle ressource.
### Validation d'une UE
La validation ou non d'une UE dépend uniquement de la moyenne générale (et des
conditions habituelles d'assiduité et de défaillance spécifiées dans les
règlements des établissements):
@ -166,6 +174,7 @@ Attention, les UEs sans notes sont ici considérées comme ayant une moyenne
nulle. En début d'année, la moyenne générale indicative sera donc souvent très basse.
### Passage d'une année à l'autre
Les conditions de passages vers l'année suivante sont:
1. Moyenne supérieure ou égale à 10/20 obtenue à plus de de la moitié des
@ -179,15 +188,16 @@ Note: La validation des deux UE du niveau dune compétence emporte la validat
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
- 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.
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
@ -197,12 +207,11 @@ appréciée par ses soins. Tout refus d'autorisation de redoubler est pris aprè
avoir entendu l'étudiant à sa demande. Il doit être motivé et assorti de
conseils d'orientation.
### Obtention du diplôme
Le diplôme de BUT est obtenu lorsque toutes les compétences du parcours suivi
sont validées.
### Modules "bonus" (sport, culture, LV2)
Les modules hors formation comme le sport ou les langues vivantes supplémentaires
@ -216,7 +225,7 @@ Les règles précises du calcul de ce bonus sont malheureusement variables d'un
situation sera identique avec le BUT et ScoDoc 9, et la mise en place d'une
fonction spécifique dans ScoDoc demandera un paramétrage particulier.
# Éditer ou importer une formation
## Éditer ou importer une formation
ScoDoc permet d'importer des programmes de formations créés par d'autres
applications, comme Orébut, puis de les modifier pour introduire une *adaptation
@ -224,21 +233,22 @@ locale*.
TODO: voir si on offre la possibilité de voir/gérer le delta entre le PN et le local.
# Modules et évaluations
## Modules et évaluations
## Créer une évaluation
### Créer une évaluation
Pour fixer les poids des évaluations du module, on peut employer plusieurs méthodes:
- un nombre (poids de l'évaluation dans le module, sans préciser si cette
évaluation affecte plus un UE qu'une autre);
- un nombre (poids de l'évaluation dans le module, sans préciser si cette
évaluation affecte plus un UE qu'une autre);
- cocher des apprentissages critiques (on rappelle que les AC sont associés à des niveaux de
compétences, donc à 2 UE consécutives);
- cocher des apprentissages critiques (on rappelle que les AC sont associés à des niveaux de
compétences, donc à 2 UE consécutives);
- indiquer un poids par UE.
- indiquer un poids par UE.
#### Coefficient et poids d'une évaluation
Afin de faciliter la tâche des enseignants, ScoDoc sépare le coefficient d'une
évaluation (qui donne sa place dans le module) et les poids (qui ajustent son
impact dans chaque UE). On introduit donc un coefficient $w_e$, et les poids
@ -250,21 +260,19 @@ $$p_{e, u} = w_e \, \frac{b_{e,u}}{\sum_u b_{e,u}}$$
<img src="/fig/but-dialog-eval-create.png" width="50%">
- L'enseignant _doit_ renseigner le coefficient de l'évaluation.
- Par défaut, les poids valent 1 (la contribution de l'évaluation vers les
différentes UE respecte alors le PN).
- Si on décoche un AC, les poids sont mis à jour, au prorata du nombre d'AC
dans chaque UE (compétence).
- L'enseignant *doit* renseigner le coefficient de l'évaluation.
- Par défaut, les poids valent 1 (la contribution de l'évaluation vers les
différentes UE respecte alors le PN).
- Si on décoche un AC, les poids sont mis à jour, au prorata du nombre d'AC
dans chaque UE (compétence).
## Tableau de bord module
Fonctions de base, en plus de celles déjà présentes en ScoDoc 7:
- Vérification de la conformité (tous les AC cochés dans le PN sont évalués)
- Vérification de la conformité (tous les AC cochés dans le PN sont évalués)
- Poids de chaque évaluation dans chaque UE et conformité au programme de la formation
- Poids de chaque évaluation dans chaque UE et conformité au programme de la formation
En bas du tableau de bord du module on aura un tableau récapitulatif:
@ -275,20 +283,19 @@ des poids ou oubli d'une évaluation):
<img src="/fig/but-tableau-evals-module-ko.png" width="50%">
# Bulletins de notes
## Bulletins de notes
La quantité d'information à présenter rend la conception des bulletins de notes difficile.
## Modèle "Lillois"
### Modèle "Lillois"
Proposition de l'IUT de Lille:
- en ligne, les ressources, puis les SAÉ;
- en colonnes, les UE;
- dans chaque case, le coefficient et la note obtenue;
- on peut ajouter les évaluations (lignes);
- on pourrait ajouter les infos habituelles en colonnes: min/max/moy/rangs/...
- en ligne, les ressources, puis les SAÉ;
- en colonnes, les UE;
- dans chaque case, le coefficient et la note obtenue;
- on peut ajouter les évaluations (lignes);
- on pourrait ajouter les infos habituelles en colonnes: min/max/moy/rangs/...
Avantage: toutes les informations importantes sont présentées.
@ -297,7 +304,8 @@ exploiter pour un non spécialiste du BUT (poursuites d'études, employeurs).
<img src="/fig/but-bul-lille.png" width="50%">
## Modèle "Bordelais"
### Modèle "Bordelais"
Cette proposition a été reçue sous différentes formes de plusieurs collègues.
L'idée est de présenter le bulletin en deux parties: d'abord les résultats de
chaque ressource et SAE, puis les résultats de chaque UE.
@ -306,17 +314,22 @@ Un exemple préliminaire:
<img src="/fig/but-bul-bdx.png" width="50%">
# Tenue des Jury BUT
## Tenue des Jury BUT
La tenue des jury BUT dans ScoDoc est très similaire à celle du DUT, avec moins
de décisions ad-hoc (compensations plus simples, moins de cas de mise en attente).
- Validation des semestres (bien que cela ait peu de conséquences concrètes
pour les semestres impairs.
- Règles de compensation au sein de chaque niveau, pour validation de l'année.
- Validation des semestres (bien que cela ait peu de conséquences concrètes
pour les semestres impairs.
- Règles de compensation au sein de chaque niveau, pour validation de l'année.
!!! note "Voir aussi"
- [Modélisation BUT: exemple de la spécialité Informatique](BUTExempleInfo.md)
- [Guide utilisateur](GuideUtilisateur.md)
- [Guide du responsable de formation](GuideAdminFormation.md)
- [Tutoriels vidéo](https://www.youtube.com/channel/UCb0JYCBRi0CsE4XFp4ByhXg)
- [FAQ](FAQ.md)
- [Développeurs: Implémentation des parcours du BUT](ModelisationParcoursBUT.md)
- [Contacts](Contact.md)

51
docs/BUTApogee.md Normal file
View File

@ -0,0 +1,51 @@
# Exports des résultats BUT vers Apogée
Les exports des résultats du BUT vers Apogée (et dans le futur vers Pégase)
posent un certain nombre de problèmes spécifiques liés aux caractéristiques
atypiques du BUT. Nous listons ci-dessous quelques points qu'il est important
d'avoir à l'esprit.
## Compétences et référentiels
Avant toute chose, et avant de tenir un jury BUT, s'assurer que la formation est
bien configurée, liée à son référentiel de compétences et que chaque UE est bien
associée à un niveau de compétence (dans le bon parcours le cas échéant).
## Pas de moyennes générales en BUT
En BUT, les seules notes définies sans ambigüité sont:
- les moyennes d'UE dans chaque semestre;
- les moyennes de ressources et SAÉ *vers chaque UE* (une note par couple
UE/ressource ou UE/SAÉ);
- les notes d'évaluations.
En conséquence, aucune moyenne générale d'année ou de semestre ne devrait
logiquement figurer sur des documents officiels comme les procès verbaux de jury
ou les exports Apogée (utilisés en général pour éditer les diplômes).
Pour la même raison, il n'y a pas de classement par ordre de mérite en BUT (même
si ScoDoc propose moyennes indicatives et classements).
## Résultats semestriels et annuels
En général, les établissement ont l'habitude d'exporter les résultats de ScoDoc
vers Apogée en fin de semestre. Ce n'est pas strictement nécessaire en BUT après
les semestres impairs (S1, S3, S5), mais c'est possible.
Après un semestre impair, on peut donc exporter les résultats aux UEs (décisions
de jury et notes), ainsi bien entendu que les résultats plus fins (ressources,
évaluations).
Après les jurys de fin d'année scolaire (juillet), on peut exporter, outre les
résultats aux UEs:
- la décision annuelle (à l'étape): code jury (pas de note en BUT);
- les décisions RCUEs (niveaux de compétences) [**note: pas encore disponible en
ScoDoc 9.4.x** : personne ne l'a demandé !].
!!! note "Voir aussi"
- [Interfaces ScoDoc / Apogée](ScoDocApogee.md)
- [Le Bachelor Universitaire de Technologie (BUT)](BUT.md)
- [Contacts](Contact.md)

View File

@ -0,0 +1,79 @@
# Capitalisation des Unités d'Enseignement en BUT
## Principe général
Une formation est constituée d'une succession de semestres (dans ScoDoc un
"semestre" peut avoir une durée quelconque, mais pour le BUT ce sont de vrais
semestres), eux-mêmes divisés en Unités d'Enseignement (UEs).
Les UEs sont constituées de modules (ressources et SAÉs en BUT). Les UEs sont
*capitalisables* et associées à des crédits académiques (ECTS). Lorsqu'un
étudiant interrompt ses études ou redouble, il conserve ses UEs capitalisées.
ScoDoc prend en compte cela par différents mécanismes:
- lorsqu'un étudiant redouble dans la même formation, ses UEs capitalisées sont
automatiquement prises en compte. L'étudiant peut choisir de refaire une UE
capitalisée. Dans ce cas, ScoDoc prendra automatiquement en compte celle ayant
la meilleure note. Il peut aussi choisir de ne pas refaire cette UE (voir plus
loin).
- Il arrive que les programmes évoluent d'une année sur l'autre (changement de
version, réformes). ScoDOc permet d'indiquer si des UEs de différents
programmes sont équivalentes et peuvent se capitaliser.
- Enfin, ScoDoc permet d'enregistrer la validation d'une UE obtenue par ailleurs
(par exemple dans un autre établissement suite à un transfert, à l'étranger,
etc.).
## Formations ScoDoc et UEs
Chaque UE possède un code interne ScoDoc que l'on peut modifier via la page
d'édition des programmes:
<img src="/screens/ue-edit-code.png" width="70%"
alt="Modification du code interne d'une UE">
On peut utiliser un code quelconque, y compris celui donné dans un autre
logiciel comme Apogée. En bas de cette même page, ScoDoc affiche la liste des
UEs ayant le même code, afin de vérifier facilement la compatibilité:
<img src="/screens/ue-edit-code-equiv.png" width="70%"
alt="UEs partageant le même code">
Ne pas confondre ce code d'UE interne avec le code Apogée, qui n'est utilisé que pour
les exports de résultats.
## Exemple BUT avec UE capitalisée
Soit une formation BUT, ici R&T, avec 3 UE. Certaines ressources (comme R101) sont communes à
deux ou trois UEs.
<img src="/fig/but-uescap-coefs.png" width="25%">
L'étudiant "Mael REDOUBLE" a redoublé sa première année, mais avait capitalisé
l'UE 1 de S1. Son parcours s'affiche ainsi:
<img src="/fig/but-uescap-fiche.png" width="60%">
Son bulletin montre l'UE 1 actuelle (moyenne 8,32/20) et celle capitalisée
(moyenne 10,36/20):
<img src="/fig/but-uescap-bul-avant.png" width="70%">
Il décide de ne pas refaire cette UE1. Pour cela, on le désinscrit de l'UE (menu
**Inscriptions** / **Gérer les inscriptions aux UEs et modules**).
<img src="/fig/but-uescap-desincr.png" width="40%">
Maintenant, son UE1 capitalisée apparait seule sur son bulletin.
Dans cet exemple, la ressource `R101` (commune) est rattachée à l'UE 1 (mais ce
rattachement technique n'a pas de conséquences pratiques). L'étudiant reste bien
sûr inscrit à `R101` (et doit suivre ses cours), puisque cette ressource
intervient dans les autres UE non capitalisées.
S'il y a des ressources dont les notes ne contribuent qu'à l'UE1, l'étudiant
peut ne pas les suivre: il faut alors le désincrire sélectivement au niveau du
tableau de bord module.
C'est dans cet exemple le cas pour la SAÉ `SAE11`.
<img src="/fig/but-uescap-inscrmodule.png" width="30%">

210
docs/BUTExempleInfo.md Normal file
View File

@ -0,0 +1,210 @@
# Modélisation BUT: exemple de la spécialité Informatique
Le BUT Informatique possède quatre parcours basés sur six compétences. Les
parcours se différencient en BUT3 (S5/S6) par des approfondissements différents
de certaines compétences, comme on le voit ici:
<img src="/screens/but-info-niveaux-parcours.png" width="70%"
alt="Niveaux de compétences des parcours du BUT Informatique">
Les coefficients des ressources et SAÉs en BUT sont définis localement par les
établissement, ainsi que les crédits ECTS associés aux UE.
Cette page détaille un exemple de mise en place d'un BUT Info. Cette
configuration est plus complexe que le cas d'une spécialité typique de BUT: on
va supposer que les coefficients d'une même ressource varient suivant le
parcours suivi par l'étudiant, et que les ECTS d'une même UE dépendent parfois
du parcours.
Après mise en place de la formation, nous allons créer les semestres, y inscrire
les étudiants et ternir un jury.
## Saisir ou importer le programme de formation
Avant toute chose, il faut saisir le programme pédagogique de la formation. On
peut souvent l'importer en demandant à des collègues d'autres IUT sur le Discord
assistance ScoDoc, ou à son ACD. le fichier importé sera alors modifié pour
refléter son adaptation locale.
Ensuite, **associer ce programme au référentiel de compétence du BUT Info**:
## Associer la formation à son référentiel de compétences
<img src="/screens/but-info-assoc-refcomp.png" width="50%">
Les référentiels officiels sont fournis par ScoDoc:
<img src="/screens/but-choix-refcomp.png" width="50%">
## Associer les UE à des parcours
Une UE peut intervenir dans un ou plusieurs parcours. Par défaut, elle
intervient dans *tous les parcours*. Un étudiant inscrit à un parcours devra
valider toutes les UEs de celui-ci. Il est donc fondamental de bien indiquer dans
quels parcours intervient une UE.
Pour cela, passer par le formulaire d'édition de l'UE:
<img src="/screens/but-info-edit-ue.png" width="50%">
et cliquer sur le ou les parcours:
<img src="/screens/but-info-choix-ue-parcours.png" width="50%">
Ici l'UE 45, compétence *Conduire*, n'existe que dans les parcours C et D.
Faire de même pour toutes les UEs de la formation qui ne sont pas identiques
dans tous les parcours.
Pour le S4 du BUT Info, cela pourrait donner:
<img src="/screens/but-info-ues-S4.png" width="100%">
où l'on a dupliqué l'UE41 afin de lui affecter des coefficients différents dans
les parcours A et B. Notez que dans cet exemple, l'UE46 est commune et identique
dans tous les parcours.
De même, pour le S6, version simplifiée sans UE spécifiques:
<img src="/screens/but-info-ues-S6.png" width="100%">
## Remarque: nommer les UEs
!!! note "Bien nommer les UEs !"
Prenez soin de nommer correctement et uniformément vos UEs, c'est
important pour obtenir de beaux relevés de notes et PV de jurys.
- pas de redondance: le titre de l'UE ne doit pas reprendre
l'acronyme, et il est inutile d'indiquer le parcours ou autre infos déjà présentes par ailleurs;
- acronymes uniformes: `UE41` pour la première UE du S4;
- le plus simple en BUT est de reprendre le nom (éventuellement abrégé) de la compétence.
<img src="/screens/but-info-choisir-nom-ue.png" width="50%">
## Associer les UE et les niveaux de compétences
Chaque niveau de compétence (1, 2 ou 3) correspond à une année, donc à deux UEs
consécutives. Il faut indiquer à ScoDoc le niveau de compétence associé à
chacune des UEs.
Pour cela, cliquer sur un parcours:
<img src="/screens/but-info-choix-parcours.png" width="50%">
ce qui permet de visualiser l'ensemble des UEs et compétences du programme:
<img src="/screens/but-info-parcours-formation.png" width="75%">
et d'associer une UE à chaque niveau de compétence:
<img src="/screens/but-info-choix-ue-niveau.png" width="75%">
Le symbole <img src="/screens/but-info-symbole-tc.png" width="20px" alt="TC">
(TC) désigne les niveaux du tronc commun (c'est à dire présents dans tous les
parcours de la spécialité).
Notez qu'une UE ne peut être associée qu'à un seul niveau de compétences (mais
chaque niveau peut-être en relation avec plusieurs UE, de parcours ou programme
différents).
### Parcours A
Après édition, le parcours A ressemble à ceci:
<img src="/screens/but-info-parcours-A.png" width="75%">
Remarques:
- Pas d'UEs en compétences *Administrer*, *Gérer* et *Conduire* car dans ce
parcours elles s'arrêtent au niveau 2.
- UE5.2 et UE6.2 spécifiques au parcours A car on veut y indiquer des
coefficients et ECTS spécifiques: nous les avons nommées `UE5.2-A` et
`UE6.2-A`.
## Parcours B
On fait la même chose pour le parcours B.
Pour changer de parcours, cliquer sur les boutons au dessus:
<img src="/screens/but-info-but-parcours.png" width="30%">
Les niveaux de tronc commun sont déjà associés. Dans certains cas (UE
spécifiques à un parcours, on doit changer l'association). Bien vérifier
l'ensemble avant de poursuivre !
## ECTS par parcours
Dans la plupart des cas, le nombre de crédits ECTS d'une UE est constant. Néanmoins,
certaines spécialités ou établissement, on peut vouloir le faire varier selon le
parcours. Une solution serait de dupliquer l'UE (comme on le fait pour décliner
les coefficients), mais il est plus simple de déclarer les ECTS dans chaque
parcours:
<img src="/screens/but-info-ue-lien-ects.png" width="40%">
<img src="/screens/but-info-ects-parcours.png" width="40%">
## Coefficients des ressources et SAÉs
Imaginons qu'en S4, la ressource `R4.01` ait le coefficient 14 vers l'UE41 dans
le parcours A, mais le coefficient 23 dans le parcours B. Nous avons vu plus
haut que nous avions créé une UE par parcours, `UE41-A` et `UE41-B`. reste à
leur attribuer leurs coefficients via le formulaire habituel:
<img src="/screens/but-info-edit-coefs-S4.png" width="40%">
L'intérêt de cette approche est qu'on a une seule ressource pour les deux
parcours, ce qui simplifie la saisie et le suivi des évaluations et des notes.
Bien sûr, si la ressource était pédagogiquement distincte dans les deux parcours
(activités différentes, examens spécifiques...) il serait préférable de créer
deux versions de la ressources (par exemple `R4.01-A`et `R4.01-B`).
## Mise en place des semestres
La création des semestres ne présentent aucune particularité dans ce cas. Il
faut juste indiquer les parcours proposés dans le semestre. Dans notre exemple:
<img src="/screens/but-info-sem-parcours-A-B.png" width="50%">
Remarque: si la spécialité n'a que des compétences communes dans ce semestre
(tronc commun, fréquent en BUT1), *ne pas cocher de parcours*.
## Affectation des étudiants aux parcours
Nous supposons dans la suite que nous avons les deux parcours A et B dans notre
département, les étudiants des deux parcours étant dans les mêmes semestres
ScoDoc. Les ressources et coefficients proposés sont là pour illustrer et ne
correspondent pas à la réalité.
On affecte les étudiants aux parcours grâce à l'éditeur de groupes et partitions
(accessible via le menu **Groupes**): la partition nommée *parcours* est
spéciale et est utilisée par ScoDoc pour savoir à quel parcours appartient
l'étudiant.
Dans l'exemple ci-dessous, on a deux étudiants dans chaque parcours A et B:
<img src="/screens/but-info-groupes-parcours.png" width="75%">
## Inscriptions des étudiants aux modules de leurs parcours
Il faut que chaque étudiant soit inscrit aux modules (ressources ou SAÉs) de
tronc commun, à et à ceux spécifiques à son parcours. Pour cela, on passe par le
menu "**Inscriptions / Gérer les inscriptions aux UEs et modules**".
Dans chaque module, on peut régler les inscriptions:
<img src="/screens/but-info-inscr-module.png" width="30%">
!!! note "Voir aussi"
- [Le BUT: détails et calculs](BUT.md)
- [Guide du responsable de formation](GuideAdminFormation/md)
- [Édition des programmes de formation](VersionProgrammes.md)
- [Guide utilisateur](GuideUtilisateur.md)
- [Tutoriels vidéo](https://www.youtube.com/channel/UCb0JYCBRi0CsE4XFp4ByhXg)
- [Gestion des UE Bonus](https://www.youtube.com/watch?v=SVbjuDpq-lI)
- [Mise en place des parcours BUT](https://www.youtube.com/watch?v=OnuOXJo-3ro)
- [Saisie des codes Apogée](https://www.youtube.com/watch?v=MW0nNhbBjDM)
- [Du DUT au BUT: comment transformer un programme](https://www.youtube.com/watch?v=9HizGTvYgck)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

View File

@ -1,14 +1,13 @@
## Calcul des notes
# Calcul des notes
*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).
Pour les formations par compétences, voir aussi [la page dédiée au BUT](BUT.md).
### En résumé:
## En résumé
A chaque instant, ScoDoc prend en compte les notes des évaluations "complètes"
À chaque instant, ScoDoc prend en compte les notes des évaluations "complètes"
(dans lesquelles toutes les notes ont été saisies ou bien signalées "en attente"
avec le code ATT. Les évaluations partiellement saisies ne sont pas prises en
compte, sauf si l'option "*prise en compte immédiate*" a été cochée sur
@ -21,41 +20,50 @@ Les moyennes d'UE et générale sont calculées à partir des moyennes de module
en utilisant les coefficients du programme pédagogique (dénommé dans ScoDoc
"formation").
Plus de détails ci-dessous.
### Calcul des moyennes de modules
## Calcul des moyennes de modules
Chaque évaluation produit des notes de différents types:
* note numérique (positive ou nulle): sera normalisée entre 0 et 20
* note numérique (positive ou nulle): sera normalisée entre 0 et 20
* note absente: considérée comme zéro
* note absente: considérée comme zéro
* note en attente: non prise en compte
* note en attente: non prise en compte
* note excusée: non pris en compte
* note excusée: non pris en compte
Chaque étudiant a donc un nombre variable de notes à prendre en compte dans
chaque module. Chaque note est associée à un coefficient: le coefficient de
l'évaluation dans le module.
### En formation classique (hors approches par compétences, BUT)
La moyenne de module est la somme pondérée par le coefficient des évaluations
des notes aux évaluations prises en compte, sauf si on a défini une formule
spécifique.
### En BUT
#### Formules de calcul spéciales
Comme expliqué en détail sur [la page dédiée au BUT](BUT.md), chaque module
(ressource ou SAÉ) peut produire des notes différentes pour chaque UE. Le
programme pédagogique (adapté du Programme National publié au BO) défini des
coefficients permettant le calcul des moyennes d'UE.
Il est possible de définir des formules de calcul spéciales pour calculer les
moyennes. Ces formules sont alors utilisées par ScoDoc à la place de la moyenne
pondérée standard. Voir
[FormulesCalculUtilisateur](FormulesCalculUtilisateur.md)
pour plus d'informations.
De façon plus fine, chaque évaluation peut s'adresser à un sous-ensemble
d'apprentissages critiques, et donc être associée à une ou plusieurs UE avec des
pondérations différentes: les poids de l'évaluation.
On a donc **pour chaque évaluation**:
### Moyennes d'UE
- des poids, un par UE, qui sont par défaut égaux à 1 pour les UE concernées
(c'est à dire ayant un coefficient non nul);
- un coefficient.
Le calcul de la moyenne du module vers les UEs s'effectue en *multipliant* les poids par le coefficient.
## Moyennes d'UE
moyenne_ue = moyenne pondérée des moyennes de modules de l'UE (- malus)
@ -66,18 +74,9 @@ Le malus appliqué à la moyenne d'UE est donné par la somme des notes du ou de
modules de malus de cette UE (un type spécial de modules, voir
[ModulesMalus](ModulesMalus.md)).
Comme pour le calcul des moyennes de modules, il est possible de définir une
formule ad-hoc pour le calcul de la moyenne d'UE (cela est toutefois rarement
nécessaire, et il est recommandé de ne pas abuser de cette fonctionnalité: la
présence de formules ralentit considérablement les calculs).
La syntaxe et les variables sont les mêmes que pour les modules; ici, le vecteur
de notes est celui des moyennes de modules (et non des évaluations). Voir
[FormulesCalculUtilisateur](FormulesCalculUtilisateur.md).
## Calcul de la moyenne générale
La présence de formules d'UE est signalée sur le tableau de bord du semestre.
### Calcul de la moyenne générale
### En formations classiques
moyenne = moyenne pondérée des moyennes d'UE + bonus sport/culture
@ -98,8 +97,14 @@ Les modules des UEs de type "Sport & Culture" ne sont évidemment pas pris en
compte dans la moyenne pondérée: ils sont utilisés pour calculer le bonus, comme
expliqué ci-dessous.
### Moyenne générale en BUT
### Notes de rattrapage
En BUT, on calcule des notes pour les Unités d'Enseignement, et la moyenne
générale n'est pas définie. Toutefois, ScoDoc calcule une *moyenne indicative*,
qui est la moyenne des moyennes des UE du semestre pondérée par leurs ECTS. Voir
détails [sur la page BUT](BUT.md#moyenne-generale)
## Notes de rattrapage
Dans chaque module, il est possible de définir une évaluation de "rattrapage".
Lors de la création (ou modification) de l'évaluation, indiquer le type
@ -110,9 +115,7 @@ Lors de la création (ou modification) de l'évaluation, indiquer le type
Pour chaque étudiant, la note obtenue à l'évaluation de rattrapage remplace la
moyenne du module, seulement si elle est supérieure à celle-ci.
### Bonus sport/culture
## Bonus sport/culture
Ce bonus s'applique directement sur la **moyenne générale** et/ou sur les
moyennes d'UE (notamment en BUT).
@ -121,7 +124,7 @@ Les notes des UEs de type spécial "Sport & Culture" sont utilisées pour calcul
Pour qu'un étudiant bénéficie de ce bonus, il doit être inscrit à un module
d'une UE de type "Sport&Culture". Cette UE et modules associés doivent donc être
prévu dans le programme pédagogique.
prévu dans le programme pédagogique.
La règle appliquée dépend de l'établissement. Par exemple, l'Université de
Haute Alsace appliquait le règlement suivant: *Les étudiants de l'IUT peuvent
@ -137,3 +140,44 @@ vous souhaitez disposer d'une nouvelle règle, il faut contacter l'équipe de
développement en indiquant (en français) le règlement en vigueur dans votre
établissement. Le code correspondant sera ajouté via une mise à jour.
## Arrondis et affichages
ScoDoc calcule les notes en haute précision. On peut saisir des notes comme
`12,3456789 / 20` (convenons que c'est un peu ridicule, mais possible).
Les résultats sont en général affichés avec 4 chiffres (12,34/20), soit 1 millième de précision.
Le nombre de chiffres exportés vers Apogée (dans des fichiers textes) est paramétrable.
Les exports vers Excel conservent la précision maximale (types numériques).
Les décisions prises par ScoDoc (`ADM` automatique par exemple) sont calculées
avec une *tolérance* pour éviter que les étudiants ne soient victimes d'erreurs
d'arrondis: par exemple:
```text
Pour valider une RCUE, on vérifie que moy_rcue > sco_codes.BUT_RCUE_SUFFISANT
où est défini comme BUT_RCUE_SUFFISANT = 8.0 - NOTES_TOLERANCE.
avec
NOTES_TOLERANCE = 0.00499999999999
```
Donc un étudiant avec 7.996 (affichée `08.00` dans les tableaux) validera mais un autre avec 7.995 (affichée `07.99`) ne validera pas.
⚠️ Attention: il y a deux façon d'exporter vers Excel:
1- l'une est fournie par le navigateur (javascript) et part de la version
affichée. C'est commode et conserve la mise en forme du tableau affiché, mais on
n'a pas toute la précision.
2- la seconde est exportée par ScoDoc qui veille à conserver le maximum d'information.
![menu export excel](fig/menu-export-excel.png)
!!! note "Voir aussi"
- [Guide utilisateur](GuideUtilisateur.md)
- [Calculs spécifiques en BUT](BUT.md)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

View File

@ -1,86 +1,104 @@
## Capitalisation des UEs de DUT
# Capitalisation des UEs de DUT
Brève note expliquant le système de capitalisation de UE dans le cadre des DUT.
### Principe
## Principe
***Arrêté d'août 2005***
**Article 19** - *Les unités d'enseignement sont définitivement acquises et
capitalisables dès lors que l'étudiant y a obtenu la moyenne.
L'acquisition de l'unité d'enseignement emporte l'acquisition
des crédits européens correspondants.*
capitalisables dès lors que l'étudiant y a obtenu la moyenne. L'acquisition de
l'unité d'enseignement emporte l'acquisition des crédits européens
correspondants.*
*Toute unité d'enseignement capitalisée est prise en compte dans le
dispositif de compensation, au même titre et dans les mêmes conditions
que les autres unités d'enseignement.*
*Toute unité d'enseignement capitalisée est prise en compte dans le dispositif
de compensation, au même titre et dans les mêmes conditions que les autres
unités d'enseignement.*
*Dans le cas de redoublement d'un semestre, si un étudiant ayant acquis
une unité d'enseignement souhaite, notamment pour améliorer les
conditions de réussite de sa formation, suivre les enseignements de
cette unité d'enseignement et se représenter au contrôle des
connaissances correspondant, la compensation prend en compte le
résultat le plus favorable pour l'étudiant.*
*Dans le cas de redoublement d'un semestre, si un étudiant ayant acquis une
unité d'enseignement souhaite, notamment pour améliorer les conditions de
réussite de sa formation, suivre les enseignements de cette unité d'enseignement
et se représenter au contrôle des connaissances correspondant, la compensation
prend en compte le résultat le plus favorable pour l'étudiant.*
(...)
**Article 25** - *Les unités d'enseignement dans lesquelles la moyenne de
10 a été obtenue sont capitalisables en vue de la reprise d'études en
formation continue.*
**Article 25** - *Les unités d'enseignement dans lesquelles la moyenne de 10 a
été obtenue sont capitalisables en vue de la reprise d'études en formation
continue.*
### Exemple (cas simple)
#### Exemple (cas simple)
Soit un étudiant qui suit un parcours S1, S2, S2D (redoublement en semestre
décalé). En S2, il obtient 11.5 à l'UE 1. En S2D, il obtient 10.2 en UE 1: on
calcule alors sa moyenne de S2D en remplaçant ce 10.2 par 11.5.
Soit un étudiant qui suit un parcours S1, S2, S2D (redoublement en semestre décalé). En S2, il obtient 11.5 à l'UE 1. En S2D, il obtient 10.2 en UE 1: on calcule alors sa moyenne de S2D en remplaçant ce 10.2 par 11.5.
ScoDoc prend automatiquement en compte la capitalisation des UE et l'indique sur
les bulletins.
ScoDoc prend automatiquement en compte la capitalisation des UE et l'indique sur les bulletins.
## UE capitalisées et inscriptions aux modules
En général, les étudiants ayant capitalisé des UE et qui redoublent un ou deux
semestres peuvent choisir de repasser ou non ces UE. ScoDoc conservera
automatiquement la meilleure note moyenne.
### UE capitalisées et inscriptions aux modules
Si l'étudiant décide de ne pas repasser l'UE, il est préférable de ne pas
l'inscrire aux modules correspondant du semestre qu'il redouble. Le menu
"Inscription / Voir les inscriptions aux modules" permet de gérer facilement
cela.
En général, les étudiants ayant capitalisé des UE et qui redoublent un ou deux semestres peuvent choisir de repasser ou non ces UE. ScoDoc conservera automatiquement la meilleure note moyenne.
### Cas des changements de programmes
Si l'étudiant décide de ne pas repasser l'UE, il est préférable de ne pas l'inscrire aux modules correspondant du semestre qu'il redouble. Le menu "Inscription / Voir les inscriptions aux modules" permet de gérer facilement cela.
Il arrive que le programme pédagogique change et que l'étudiant redoublant suive
un programme différent de celui de l'UE qu'il a capitalisé. Ici, les textes sont
flous et la jurisprudence fait défaut pour déterminer quelles UE sont
capitalisables. En pratique, les responsables de formation (chefs de
département) décident au cas par cas des équivalences entre UE de l'ancien
programme et du nouveau. ScoDoc permet de faire cela en spécifiant un code d'UE
qui sera identique (ou non) dans les deux programmes. Il convient d'être
particulièrement attentif à ce point: dans le passé récent des IUT, il est
arrivé dans certaines spécialités que l'UE 1 devienne l'UE 2 du nouveau
programme.
## Calcul des coefficients
#### Cas des changements de programmes
Il arrive que le programme pédagogique change et que l'étudiant redoublant suive un programme différent de celui de l'UE qu'il a capitalisé. Ici, les textes sont flous et la jurisprudence fait défaut pour déterminer quelles UE sont capitalisables. En pratique, les responsables de formation (chefs de département) décident au cas par cas des équivalences entre UE de l'ancien programme et du nouveau. ScoDoc permet de faire cela en spécifiant un code d'UE qui sera identique (ou non) dans les deux programmes. Il convient d'être particulièrement attentif à ce point: dans le passé récent des IUT, il est arrivé dans certaines spécialités que l'UE 1 devienne l'UE 2 du nouveau programme.
Le calcul des coefficients des UE capitalisées pour le calcul de la moyenne
générale est un peu compliqué. En effet:
* les UE n'ont pas de coefficients propres: dans le programme pédagogique, les
coefficients sont attribués aux modules et non aux UE;
### Calcul des coefficients
* le coefficient d'une UE est donc la somme des coefficients des modules qui la composent;
Le calcul des coefficients des UE capitalisées pour le calcul de la moyenne générale est un peu compliqué. En effet:
* remarque: en cas d'absences excusées (notes neutralisées sur tout un module),
le coef. d'une UE peut fort bien varier d'un étudiant à l'autre (ou, pour un
même étudiant, d'un semestre à l'autre s'il redouble).
* les UE n'ont pas de coefficients propres: dans le programme pédagogique, les coefficients sont attribués aux modules et non aux UE;
* en cas de capitalisation, ScoDoc calcule actuellement le coef. de l'UE
capitalisée comme la somme des coefficients des modules de cette UE dans
lesquels l'étudiant était inscrit *dans le programme du semestre durant lequel
il a capitalisé l'UE* (changement en janvier 2016). Il est aussi possible de
forcer manuellement le coefficient utilisé (via la page "modification du
semestre").
* le coefficient d'une UE est donc la somme des coefficients des modules qui la composent;
* remarque: en cas d'absences excusées (notes neutralisées sur tout un module), le coef d'une UE peut fort bien varier d'un étudiant à l'autre (ou, pour un même étudiant, d'un semestre à l'autre s'il redouble).
* en cas de capitalisation, ScoDoc calcule actuellement le coef. de l'UE capitalisée comme la somme des coefficients des modules de cette UE dans lesquels l'étudiant était inscrit *dans le programme du semestre durant lequel il a capitalisé l'UE* (changement en janvier 2016). Il est aussi possible de forcer manuellement le coefficient utilisé (via la page "modification du semestre").
#### Exemple (cas compliqué)
### Exemple (cas compliqué)
Soit un étudiant qui suit un parcours S1, S2, S2.2 (redoublement en semestre décalé) et capitalise l'UE 2.1 du S2.
* en S2, moy. UE = 11.03, coef 8
* en S2, moy. UE = 11.03, coef. 8
* en S2,2, moy UE = 10.32, coef 5.7 car pas de notes en M322 et M324
* en S2,2, moy. UE = 10.32, coef. 5.7 car pas de notes en M322 et M324
Mais supposons que le programme de S2,2 ne soit *pas le même* que celui de S2 !. Par exemple on pourrait avoir:
* En S2: UE2.1 = { M121, M221, M322, M324, AL2.1 } coef 8
* En S2: UE2.1 = { M121, M221, M322, M324, AL2.1 } coef. 8
* En S2.2: UE2.1 = { M121, M221, M322, M324, TH21, ESP21, ESPDEB21 } coef 9
* En S2.2: UE2.1 = { M121, M221, M322, M324, TH21, ESP21, ESPDEB21 } coef. 9
ScoDoc prend le coef 9, afin que l'UE2.1 pèse la même chose pour tous
ScoDoc prend le coef. 9, afin que l'UE2.1 pèse la même chose pour tous
les étudiants de S2,2.
#### Conclusion
### Conclusion
Les textes officiels étant muets sur cette question, il n'y a pas de consensus sur la meilleure façon de calculer le coefficient
affecté aux UEs capitalisées. Le mode de calcul par défaut de ScoDoc à l'avantage d'avoir les
@ -88,13 +106,12 @@ mêmes coefficients d'UE pour tous les étudiants du semestre (sauf
absences et options), et l'inconvénient de voir la même UE affectée
de coefs différents dans des semestres successifs.
## Mise en œuvre dans ScoDoc
### Mise en œuvre dans ScoDoc
* ScoDoc offre depuis le 21 janvier 2008 la possibilité de forcer les coefficients des UE capitalisées. Passer par "Modifier le semestre".
* Pour entrer les moyennes d'UE capitalisées antérieurement (dans un semestre non géré par ScoDoc ou dans un autre établissement, etc), passer par le bulletin de note de l'étudiant, et dans le menu "Autres opérations", choisir ""Enregistrer une validation d'UE antérieure".
* ScoDoc offre depuis le 21 janvier 2008 la possibilité de forcer les
coefficients des UE capitalisées. Passer par "Modifier le semestre".
* Pour entrer les moyennes d'UE capitalisées antérieurement (dans un semestre
non géré par ScoDoc ou dans un autre établissement, etc), passer par le
bulletin de note de l'étudiant, et dans le menu "Autres opérations", choisir
""Enregistrer une validation d'UE antérieure".

View File

@ -1,17 +1,24 @@
## Compensation des semestres
L'[arrêté du 3 août 2005](http://www.education.gouv.fr/bo/2005/31/MENS0501754A.htm) définit les modalités des parcours de DUT.
# Compensation des semestres DUT
L'article 20 (b) stipule "*Lorsque les conditions posées ci-dessus ne sont pas remplies, la
validation est assurée, sauf opposition de l'étudiant, par une
compensation organisée entre deux semestres consécutifs sur la base
d'une moyenne générale égale ou supérieure à 10 sur 20 et d'une
moyenne égale ou supérieure à 8 sur 20 dans chacune des unités
d'enseignement constitutives de ces semestres. Le semestre servant à
compenser ne peut être utilisé qu'une fois au cours du cursus.*".
L'[arrêté du 3 août
2005](http://www.education.gouv.fr/bo/2005/31/MENS0501754A.htm) définit les
modalités des parcours de DUT.
L'article 20 (b) stipule "*Lorsque les conditions posées ci-dessus ne sont pas
remplies, la validation est assurée, sauf opposition de l'étudiant, par une
compensation organisée entre deux semestres consécutifs sur la base d'une
moyenne générale égale ou supérieure à 10 sur 20 et d'une moyenne égale ou
supérieure à 8 sur 20 dans chacune des unités d'enseignement constitutives de
ces semestres. Le semestre servant à compenser ne peut être utilisé qu'une fois
au cours du cursus.*".
ScoDoc propose automatiquement la compensation du semestre *n+1* avec le semestre *n* lorsque c'est possible: le code décision est alors ADC, et on mémorise que le semestre *n* a été utilisé pour compenser.
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> cette possibilité n'est offerte que lorsque l'option "*proposer compensations de semestres (parcours DUT)*" (menu "*Modifier le semestre*") est activée (en effet, la règle de compensation est spécifique aux DUT et ne s'applique pas à toutes les formations LMD).
ScoDoc propose automatiquement la compensation du semestre *n+1* avec le
semestre *n* lorsque c'est possible: le code décision est alors ADC, et on
mémorise que le semestre *n* a été utilisé pour compenser.
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;"
alt="/!\" /> cette possibilité n'est offerte que lorsque l'option "*proposer
compensations de semestres (parcours DUT)*" (menu "*Modifier le semestre*") est
activée (en effet, la règle de compensation est spécifique aux DUT et ne
s'applique pas à toutes les formations LMD).

167
docs/ConfigCAS.md Normal file
View File

@ -0,0 +1,167 @@
# Configuration de l'authentification CAS
*Cette page s'adresse aux administrateurs système en charge de ScoDoc.*
Le CAS, *Central Authentication Service* CAS est un système d'authentification
unique (SSO) très utilisé dans les universités. Il permet à l'utilisateur de
s'identifier sur un site unique (souvent appelé "ENT" en raccourci), pour
ensuite accéder aux différents services. Il évite de s'authentifier à
chaque fois qu'on accède à une application en mettant en place un système de
ticket.
Notons que le CAS peut introduire des faiblesses dans l'application:
- indisponibilité ou lenteur du service;
- vulnérabilité si le serveur CAS (ou l'annuaire sur lequel il s'appuie) venait
à être piraté.
Il est donc conseillé de s'assurer du bon fonctionnement et de la sécurisation de
son service CAS avant d'aller plus loin.
## Comptes utilisateurs ScoDoc et CAS
Rappel: voir [Gestion des utilisateurs](AdminUsers.md)
Pour simplifier, l'utilisateur va partir de ScoDoc, passer par le site CAS (redirection), puis
revenir si l'authentification réussi, avec un jeton et un identifiant CAS. À ce moment, ScoDoc cherche s'il a un
utilisateur ayant l'identifiant donné, dans le champ `cas_id`de sa base
utilisateur. Si oui, il ouvre une session pour cet utilisateur, avec ses rôles
et permissions.
## Paramètres spécifiques pour le CAS
### Configuration générale
Les pages de configuration générale de ScoDoc sont accessibles via la page
d'accueil, uniquement lorsqu'on est connecté comme super-admin.
![accès au panneau de config](fig/config-accueil.png)
De cette page, on accède à la page consacrée au CAS:
![config du CAS](fig/config-cas.png)
Page sur laquelle on va pouvoir spécifier:
- si on active le CAS (ce qui permet aussi de le désactiver globalement);
- si on force son utilisation;
- l'URL complète du serveur CAS (exemple: `https://mon.serveur.cas.fr:1234/cas/`);
- un attribut pour l'identification (laisser vide normalement);
- si on veut vérifier le certificat SSL (normalement oui, par sécurité, et
fournir le fichier certificat PEM dans le champ suivant).
Si l'option **Forcer l'utilisation du CAS** est activée, l'utilisateur qui tente
de se connecter sera immédiatement redirigé vers la page du CAS. Sinon, il aura
le choix via le formulaire classique, avec un lien en plus:
![login scodoc avec CAS](fig/config-cas-cnx.png)
🚸 Attention, le lien de réinitialisation du mot de passe ne concerne évidemment
pas le mot de passe du CAS, mais celui de ScoDoc. C'est ennuyeux.
À ce stade, CAS est utilisable, mais on n'a aucun utilisateur reconnu !
### Configuration des utilisateurs
ScoDoc doit connaitre l'identifiant CAS de ses utilisateurs. A défaut d'un
annuaire, il va falloir saisir ces identifiants pour chaque compte. On peut le
faire via le formulaire habituel de paramétrage du compte utilisateur, ou bien
par import Excel.
Cette configuration n'est accessible qu'au super-admin.
![form. config. utilisateur](fig/config-cas-user.png)
Ici trois champs nous intéressent:
- **Identifiant CAS**: nécessaire
- **Autorise connexion via CAS**: spécifie si ce compte peut ou non se connecter via CAS.
- **Autorise connexion via ScoDoc**: spécifie si cet utilisateur peut se connecter via
ScoDoc, sans CAS, lorsque le CAS est activé et forcé. Ceci est nécessaire par
exemple pour des comptes utilisés pour l'API, ou bien pour des personnes
extérieures à l'établissement et qui ne seraient pas (encore) dans le CAS.
En cas de besoin, les comptes "super-admin" peuvent toujours se connecter à ScoDoc sans CAS: si le
forçage est activé, il leur faut passer par une adresse spéciale:
```text
https://votre.serveur.scodoc.fr/auth/login_scodoc
```
(remplacer `https://votre.serveur.scodoc.fr` par le début de l'adresse de votre serveur).
🚸 **Attention**: en général, les **clients d'API** (et notamment la
"passerelle") n'utilisent pas le CAS: si vous forcez les utilisateurs à utiliser
le CAS, pensez à autoriser les comptes de l'API à se connecter sur ScoDoc sans
CAS.
## Sécurité: permissions et informations
L'utilisateur connecté via CAS a exactement les mêmes permissions que s'il
s'était connecté via ScoDoc.
### Permission
Le paramétrage CAS au niveau général nécessite la permission `Super Administrateur`.
Il est naturel de déléguer la création des comptes utilisateurs ScoDoc aux
responsables de département ou à leur représentant. Toutefois, le réglage CAS
pourrait créer des problèmes de sécurité (par exemple affecter à un département
un utilisateur CAS qui n'en fait pas réellement partie).
Le CAS ajoute une permission ScoDoc `ScoUsersChangeCASId` qui contrôle la
possibilité de changer l'identifiant CAS d'un compte. Cette permission peut ou
non être associée au rôle `Admin` d'un département, selon la politique de
l'établissement.
Les réglages par compte **Autorise connexion via CAS**
et **Autorise connexion via ScoDoc** sont réservés au `Super Administrateur`.
### Informations sur un utilisateur
Le super-administrateur (et elle seule) peut visualiser les dates de:
- dernière utilisation (date du dernier chargement de page);
- dernière connexion (login) via CAS.
dans les tables d'utilisateurs et sur la page de chaque compte:
![Informations sur un utilisateur](fig/config-user-view.png)
### Logs
Les connexions et tentatives de connexions via CAS sont logguées au niveau
`INFO`, qui arrive par défaut dans `/opt/scodoc-data/scodoc.log`.
Exemples:
- Connexion réussie:
```text
INFO: CAS: login user_name
```
- Tentative de connexion CAS réussie mais utilisateur non reconnu par ScoDoc:
```text
INFO: CAS login denied for cas_id=prenom.nom (unknown or inactive)
```
## Accès via l'API
L'authentification des clients de l'API utilise un jeton (*token*), qui est
demandé par l'appel `/ScoDoc/api/tokens` (qui lui même appelle
`User.get_token()`). Ce mécanisme ne passe jamais par le CAS, à condition que le
compte utilisateur utilisé par l'API soit "*Autorisé à se connecter via ScoDoc*"
(voir le formulaire plus haut, [configuration des
utilisateurs](#configuration-des-utilisateurs)).
!!! note "Voir aussi"
- [Gestion des utilisateurs](AdminUsers.md)
- [Rôles et permissions](ConfigPermissionsDept.md)
- [Config. des rôles et permissions en ligne de commande](GuideConfig.md#creation-dun-nouveau-role)
- [Guide administrateur ScoDoc](GuideAdminSys.md)
- [API pour ScoDoc 9](ScoDoc9API.md)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

42
docs/ConfigEmail.md Normal file
View File

@ -0,0 +1,42 @@
# Configuration des envois d'emails
ScoDoc envoie ou peut envoyer des emails, ou e-mails, ou courriels à de
nombreuses occasions, par exemple:
- comptes utilisateurs (réinitialisation mot de passe);
- envois de bulletins par mail aux étudiants;
- envois de notifications (notamment concernant l'assiduité);
- messages de diagnostic lors d'erreurs logicielles pour les développeurs.
Il est donc important de bien configurer le système de messagerie du serveur
ScoDoc. Ce point ne peut pas être documenté ici, car il dépend de
l'environnement local: relais de messagerie, politiques de filtrage, etc.
Par défaut, ScoDoc utilise le service SMTP Postfix, qui doit donc être configuré
pour relayer les messages vers la passerelle de l'établissement: voir la page
[envoi des courriers électroniques](ProblemesMail.md).
Une fois cela fait, l'utilisateur (administrateur) de ScoDoc a peu de réglages a
effectuer.
## Adresse d'origine (From)
On peut spécifier l'adresse d'origine (le champ `From`) de tous les mails émis.
![Réglage de l'adresse origine](fig/config-generale-mail.png)
Ce réglage peut être modifié au niveau de chaque département, via la page
**Paramétrage**:
![Réglage de l'adresse origine sur un département](fig/config-dept-mail.png)
## Notifications d'absences
Les notifications liées à l'absentéisme (fréquences, contenu) peuvent être
réglées via via la page **Paramétrage** de chaque département:
![Réglage des notifications](fig/config-dept-abs.png)
!!! note "Voir aussi"
- Configuration système: [Envoi des courriers électroniques](ProblemesMail.md)
- Installation, flux réseaux et configuration: [Guide d'installation](GuideInstallDebian11.md)
- [Contacts](Contact.md)

View File

@ -1,12 +1,16 @@
## Rôles définis dans l'installation standard
# Rôles définis dans l'installation standard
🚧 *cette page est ancienne et à revoir*.
Voir aussi sur les rôles et leur utilisation la page [ConfigPermissionsDept](ConfigPermissionsDept.md)
Les informations ci-dessous ne sont utiles que pour les développeurs ou pour des usages avancés de ScoDoc.
## Principales permissions et fonctions associées
## Principales permissions et fonctions associées
### Liste des permissions Zope
Les permissions utilisées par ScoDoc ont des noms qui commencent par "Sco", de façon à les grouper dans l'interface de Zope (ZMI), qui est peu pratique.
Pour changer ces permissions (plus précisément pour associer les permissions à des rôles), aller dans l'onglet "Security" du dossier "Dept" (celui qui *contient* l'instance de ScoDoc, habituellement nommée "Scolarite").

View File

@ -1,13 +1,44 @@
# Rôles et permissions dans ScoDoc
## Rôles définis dans l'installation standard
ScoDoc défini par défaut quatre rôles principaux (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 permissions, voir
[ConfigPermissions](ConfigPermissions.md).
## Rôles définis dans l'installation standard
`XXX` désigne typiquement le nom du département ("RT" ou "GEA").
* `AdminXXX`: toutes opérations ScoDoc (chef de département, et éventuellement un ou deux collaborateurs de confiance);
* `AdminXXX`: toutes opérations ScoDoc (chef de département, et éventuellement un ou deux collaborateurs de confiance);
* `EnsXXX`: enseignant du département;
* `EnsXXX`: enseignant du département;
* `SecrXXX`: secrétaire du département.
* `SecrXXX`: secrétaire du département.
L'installation standard défini aussi un utilisateur "*admin*", qui a le rôle "Manager", ce qui lui confère normalement tous les droits sur toutes les parties du site. L'usage de cet utilisateur particulier devrait être réduit à la création de nouveaux départements, et son mot de passe ne devrait pas être divulgué aux utilisateurs de ScoDoc.
@ -17,20 +48,26 @@ Un utilisateur peut avoir un nombre quelconque de rôles dans différents dépar
Le département de rattachement est utile pour indiquer qui (quel administrateur) a le droit de modifier l'utilisateur (lui changer son mot de passe, etc), mais n'influe pas sur les permissions accordées à l'utilisateur (sauf pour les administrateurs).
Le fait d'être, ou non, associé à un département est important pour les responsables (rôle `AdminXXX`. En effet, si le responsable est associé à un département, il ne pourra créer des utilisateurs que dans ce département (c'est en général ce qu'on veut pour un chef de département, qui "recrute" des enseignant uniquement dans son département).
Le fait d'être, ou non, associé à un département est important pour les responsables (rôle `AdminXXX`. En effet, si le responsable est associé à un département, il ne pourra créer des utilisateurs que dans ce département (c'est en général ce qu'on veut pour un chef de département, qui "recrute" des enseignant uniquement dans son département).
## Permissions dépendantes du contexte
## Permissions dépendantes du contexte
Outre les rôles associés à chaque utilisateur, le calcul des autorisations dépend du contexte de l'opération. Par exemple, un responsable de semestre a des droits particulier sur ce semestre, ou encore un responsable de module sur la saisie des notes dans ce module.
### Qui peut saisir des notes ?
### Qui peut saisir des notes ?
Peuvent saisir des notes dans une évaluation située dans un module:
* le ou les administrateurs (rôle `AdminXXX`, où `XXX` est le département);
* le responsable du semestre (directeur des études);
* le responsable du module;
* les enseignants "associés" au module (en général des collègues désignés par le responsable de module ou le directeur des études).
----
Voir aussi la page [ConfigPermissions](ConfigPermissions.md) pour plus de détails sur les permissions (pour les développeurs).
* le ou les administrateurs (rôle `AdminXXX`, où `XXX` est le département);
* le responsable du semestre (directeur des études);
* le responsable du module;
* les enseignants "associés" au module (en général des collègues désignés par le responsable de module ou le directeur des études).
!!! note "Voir aussi"
- [ConfigPermissions](ConfigPermissions.md) pour plus de détails sur les permissions (pour les développeurs)
- [Gestion des utilisateurs](AdminUsers.md)
- [Config. des rôles et permissions en ligne de commande](GuideConfig.md#creation-dun-nouveau-role)
- [Guide administrateur ScoDoc](GuideAdminSys.md)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

51
docs/Contact.md Normal file
View File

@ -0,0 +1,51 @@
# Contacter le projet ScoDoc
La plate-forme Discord est le principal canal de communication entre les
utilisateurs et entre les développeurs:
[rejoindre le discord ScoDoc Assistance](https://discord.gg/ybw6ugtFsZ)
Il existe aussi un autre salon Discord réservé aux développeurs, n'hésitez pas à
demander à le rejoindre.
## Liste de diffusion
* [scodoc-annonces](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-annonces) liste à très faible trafic, en lecture seule, seules des annonces importantes sont postées (quelques messages par an), tous les utilisateurs sont encouragés à s'y abonner. Indispensable aux administrateurs du logiciel.
## Signaler un problème (bug logiciel)
Tous les utilisateurs sont encouragés à signaler les erreurs qu'ils rencontrent,
afin qu'elles soient rapidement corrigées.
Pour cela, il existe un canal dédié sur le Discord: [🐞 bugs](https://discord.gg/BvAFnZU6UA)
Pour signaler un bug, il faut donner le maximum d'informations pour que nous
puissions le reproduire. Le mieux est d'envoyer les données d'assistance (lien
en bas de la page d'accueil du département) et d'indiquer quelle page ou
étudiant ou opération pose problème. Les données d'assistance ne contiennent pas
les noms, adresses et autres données personnelles: il faut donc indiquer
l'adresse de la page et jamais le nom d'un étudiant. Par exemple
`QLIO/Scolarite/Notes/formsemestre_bulletinetud?formsemestre_id=123&etudid=123456`
permet d'indiquer le semestre et l'étudiant à regarder.
![Envoi des données d'assistance](fig/envoi-assistance.png)
## Développeurs
Vous trouverez les sources du projet, les tickets (*issues*) et autres outils sur
* [gitea](https://scodoc.org/git/)
Vous pouvez demander un compte sur cette plate-forme pour ajouter des tickets,
proposer votre code (*pull requests*).
(Nous avons choisi le logiciel libre [Gitea](https://gitea.io) et non GitHub
afin de ne pas dépendre d'une plate-forme commerciale et de garder un contrôle
complet sur nos travaux).
## Anciennes listes de diffusion
Ces listes ne sont plus utilisées, remplacées par le Discord.
* [Notes](https://listes.univ-paris13.fr/mailman/listinfo/notes) discussions ou questions liées à l'utilisation du logiciel, entraide entre utilisateurs: vous pouvez y intervenir librement (les messages sont modérés pour éviter le spam).
* [scodoc-devel](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-devel) échanges entre développeurs. Abonnez-vous si vous êtes intéressés par le développement du logiciel, souhaitez participer ou poser des questions techniques.

View File

@ -1,30 +1,37 @@
# Contribuer à ScoDoc
ScoDoc est un logiciel libre, et repose sur des volontaires comme vous. Chacun
peut aider, en améliorant la documentation (page, vidéos), en s'abonnant à la
liste Notes (voir [listes de diffusion](ListesDeDiffusion.md)) pour y aider les
peut aider, en améliorant la documentation (page, vidéos), en rejoignant le
serveur Discord (voir [contacts](Contact.md)) pour y aider les
collègues, ou en développant ou testant le logiciel.
Les canaux de communication entre développeurs sont d'une part la liste de
diffusion mail [scodoc-devel](ListesDeDiffusion.md), d'autre part un serveur
Discord (accès sur invitation, demander par mail). Vous pourrez demander un
compte sur le [git du projet](https://scodoc.org/git), consulter/ajouter des
tickets, proposer votre code (*pull requests*).
Les canaux de communication entre développeurs sont
[indiqués sur cette page](Contact.md). Vous pouvez demander un compte sur le [git du
projet](https://scodoc.org/git), consulter/ajouter des tickets, proposer votre
code (*pull requests*).
## Contribuer à la documentation
La documentation est constituée de deux parties:
- les vidéos postées sur [la chaîne
YouTube](https://www.youtube.com/playlist?list=PLw49h6RbvswhasBk9bXj7PzOD8GDW3kG1).
Proposez de nouvelles vidéos, c'est très facile à faire !
- les vidéos postées sur [la chaîne
YouTube](https://www.youtube.com/playlist?list=PLw49h6RbvswhasBk9bXj7PzOD8GDW3kG1).
Proposez de nouvelles vidéos, c'est très facile à faire !
- Les pages Web comme celle que vous lisez actuellement. La documentation est
générée via `MkDocs, un système très simple basé sur le format
[Markdown](https://www.markdownguide.org/basic-syntax/). Toutes les sources
sont sur le [dépôt git DocScoDoc](https://scodoc.org/git/viennet/DocScoDoc).
- Les pages Web comme celle que vous lisez actuellement. La documentation est
générée via `MkDocs`, un système très simple basé sur le format
[Markdown](https://www.markdownguide.org/basic-syntax/). Toutes les sources
sont sur le [dépôt git DocScoDoc](https://scodoc.org/git/viennet/DocScoDoc).
## Contribuer au logiciel
Le [dépot principal](https://scodoc.org/git/viennet/ScoDoc) comporte plusieurs
branches. Voir le [guide pour les développeurs](GuideDeveloppeurs.md).
Le [dépôt principal](https://scodoc.org/git/viennet/ScoDoc) comporte plusieurs
branches. Voir le [guide pour les développeurs](GuideDeveloppeurs.md).
!!! note "Voir aussi"
- [Guide développeurs](GuideDeveloppeurs.md)
- [Guide administrateur ScoDoc](GuideAdminSys.md)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

53
docs/DonneesEtudiant.md Normal file
View File

@ -0,0 +1,53 @@
# Données personnelles pour l'étudiant
## Description d'un étudiant
La désignation d'un étudiant (classiquement civilité-nom-prenom) peut prendre différentes formes en fonctions des circonstances et des souhaits de l'étudiant.
On distingue les éléments suivants:
* `nom`: (obligatoire): le nom de l'étudiant (en usage dans l'établissement). Généralement (mais pas toujours) le nom d'état-civil de l'étudiant.
* `prenom`: (obligatoire): le prénom de l'étudiant
* `civilité`: (obligatoire): la civilité utilisée parmi les valeurs:
* `MR` (ou aussi `H` ou `M`)
* `MME` (ou aussi `F`)
* `X` décrit plus loin
* `nom_usuel`: si présent s'affiche à la place du `nom`.
* `prenom_etat_civil`: Si présent, indique le prénom qui doit être utilisé dans les documents officiels (PV et bulletin).
* `civilite_etat_civil` est associé au prénom d'état-civil (donc jamais utilisé si `prenom_etat_civil` n'est pas renseigné.
## Personalisations
L'étudiant peut:
* déclarer un nom d'usage qui remplacera le nom initial dans tous les documents
(par exemple par l'adoption d'un nom marital pour remplacer le patronyme)
Il faut dans ce cas remplir la donnée `nom_usuel` avec le nouveau nom souhaité.
* Demander la suppression de la civilité courante (`MR` ou `MME`). La valeur `X` peut être utlisée dans ce cas.
* demander l'utilisation d'un prénom d'usage ([1] et [2]).
Ce prénom, qui ne demande pas d'acte officiel (hormis une demande formelle à l'université d'appartenence) remplace le prénom initial dans tous les documents internes
sauf dans les documents officiels (procès-verbal et bulletin de notes). Ce changement peut être accompagné d'un changement de civilité.
Il faut dans ce cas:
* Reporter le prénom et la civilité initiaux dans les champs `prenom_etat_civil` et `civilite_etat_civil`
* Remplacer les champs `civilite` et `prenom` avec les valeurs souhaitées par l'étudiant.
## Dans le logiciel
Les données personnelles sont modifiables:
* Dans l'écran `Changer les données identité/admission` du menu `Étudiant` dans la fiche étudiant.
* Par la procédure d'importation par tableur (`Import/export des données d'admission` du menu `INSCRIPTIONS`)
Les civilités et prénom d'état-civil sont prises en compte:
* Automatiquement lors de la production du procés-verbal
* Dans l'édition du bulletin au format pdf (pas sur la passerelle étudiant) à condition que les descriptions spécifiées dans le paramètrage du département et/ou les réglages bulletin des semestres concernés mentionne
la balise `etat_civil` plutôt que la balise `nomprenom` (cf. [Paramètrage des bulletins / Valeurs remùplacées](https://scodoc.org/ParametrageBulletins/#valeurs-remplacees)).
Les données personalisées figurent toutes dans les données livrées par l'API.
## Références
[1] [Lettre ministre aux chefs d'établissement de l'enseignement supérieur](https://cache.media.enseignementsup-recherche.gouv.fr/file/Lutte_contre_les_discriminations/84/4/lettre_ministre_1117844.pdf)
[2] [Avis du conseil d'état](https://www.conseil-etat.fr/fr/arianeweb/CE/decision/2022-09-28/458403)

View File

@ -1,66 +1,80 @@
# Echanges de programmes pédagogiques entre établissements
ScoDoc permet d'exporter et d'importer des programmes pédagogiques, échangés sous forme de fichiers XML.
# Échanges de programmes pédagogiques entre établissements
Pour importer un programme, suivre le lien "Importer une formation" sur la page "Programmes".
ScoDoc permet d'exporter et d'importer des programmes pédagogiques, échangés
sous forme de fichiers XML.
A titre d'exemple, quelques programmes de DUT, donnés sans aucune garantie d'exactitude ! Ces programmes peuvent être importés dans ScoDoc puis modifiés pour s'adapter à vos besoins.
Pour importer un programme, suivre le lien "Importer une formation" sur la page
"Programmes".
A titre d'exemple, quelques programmes de DUT, donnés sans aucune garantie
d'exactitude ! Ces programmes peuvent être importés dans ScoDoc puis modifiés
pour s'adapter à vos besoins.
🚸 *S'il est possible, et nécessaire, de modifier localement les programmes de
formation, il est interdit de modifier les référentiels de compétences BUT, qui
sont publiés par le ministère et non adaptables.*
## Diplôme Universitaire des Technologie (PPN DUT) (par ordre alphabétique)
* DUT Carrières Sociales option AS (IUT du Havre, juillet 2013) : <a class="attachment" href="/attachments/formation_CS_OptionAS.xml" download>formation_CS_OptionAS.xml</a> + version 2014: <a class="attachment" href="/attachments/formation_exportCS_AS_LeHavre.xml" download>formation_exportCS_AS_LeHavre.xml</a> (voir mise à jour plus bas)
* DUT Carrières Sociales option AS (IUT du Havre, juillet 2013) : <a
class="attachment" href="/attachments/formation_CS_OptionAS.xml"
download>formation_CS_OptionAS.xml</a> + version 2014: <a class="attachment"
href="/attachments/formation_exportCS_AS_LeHavre.xml"
download>formation_exportCS_AS_LeHavre.xml</a> (voir mise à jour plus bas)
* DUT Carrières Sociales option ASSC (IUT du Havre, juillet 2013) : <a class="attachment" href="/attachments/formation_CS_OptionASSC.xml" download>formation_CS_OptionASSC.xml</a> + version 2014: <a class="attachment" href="/attachments/formation_exportCS_ASSC_LeHavre.xml" download>formation_exportCS_ASSC_LeHavre.xml</a> (voir mise à jour plus bas)
* DUT Carrières Sociales option ASSC (IUT du Havre, juillet 2013) : <a class="attachment" href="/attachments/formation_CS_OptionASSC.xml" download>formation_CS_OptionASSC.xml</a> + version 2014: <a class="attachment" href="/attachments/formation_exportCS_ASSC_LeHavre.xml" download>formation_exportCS_ASSC_LeHavre.xml</a> (voir mise à jour plus bas)
* DUT GEA (IUT du Havre, juillet 2013) : <a class="attachment" href="/attachments/formation_GEA.xml" download>formation_GEA.xml</a> + version 2014: <a class="attachment" href="/attachments/formation_exportGEA_LeHavre.xml" download>formation_exportGEA_LeHavre.xml</a> (voir mise à jour plus bas)
* DUT GEA (IUT du Havre, juillet 2013) : <a class="attachment" href="/attachments/formation_GEA.xml" download>formation_GEA.xml</a> + version 2014: <a class="attachment" href="/attachments/formation_exportGEA_LeHavre.xml" download>formation_exportGEA_LeHavre.xml</a> (voir mise à jour plus bas)
* DUT GEA (IUT Villetaneuse, 2010) : <a class="attachment" href="/attachments/gea_iutv_v6.xml" download>gea_iutv_v6.xml</a>
* DUT GEA (IUT Villetaneuse, 2010) : <a class="attachment" href="/attachments/gea_iutv_v6.xml" download>gea_iutv_v6.xml</a>
* DUT GEII (PPN été 2013). Version contribuée par J. Billoué, IUT de Tours: <a class="attachment" href="/attachments/dut_geii_tours_2013.xml" download>dut_geii_tours_2013.xml</a> + version 2014 Le Havre: <a class="attachment" href="/attachments/formation_exportGEII_LeHavre.xml" download>formation_exportGEII_LeHavre.xml</a>
* DUT GEII (PPN été 2013). Version contribuée par J. Billoué, IUT de Tours: <a class="attachment" href="/attachments/dut_geii_tours_2013.xml" download>dut_geii_tours_2013.xml</a> + version 2014 Le Havre: <a class="attachment" href="/attachments/formation_exportGEII_LeHavre.xml" download>formation_exportGEII_LeHavre.xml</a>
* DUT GEII (PPN juillet 2008). Version utilisée par l'IUT de Lyon 1 (contribuée par Anthony Chaussat) : <a class="attachment" href="/attachments/dut_geii_lyon_2010.xml" download>dut_geii_lyon_2010.xml</a>
* DUT GEII (PPN juillet 2008). Version utilisée par l'IUT de Lyon 1 (contribuée par Anthony Chaussat) : <a class="attachment" href="/attachments/dut_geii_lyon_2010.xml" download>dut_geii_lyon_2010.xml</a>
* DUT Génie Chimique - Génie des Procédés (ppn 2013, IUT de Saint-Nazaire) : <a class="attachment" href="/attachments/DUT GCGP S1S2 2013.xml" download>DUT GCGP S1S2 2013.xml</a>
* DUT Génie Chimique - Génie des Procédés (ppn 2013, IUT de Saint-Nazaire) : <a class="attachment" href="/attachments/DUT GCGP S1S2 2013.xml" download>DUT GCGP S1S2 2013.xml</a>
* DUT Génie Civil (IUT du Havre, juillet 2013) : <a class="attachment" href="/attachments/formation_GC2013.xml" download>formation_GC2013.xml</a>
* DUT Génie Civil (IUT du Havre, juillet 2013) : <a class="attachment" href="/attachments/formation_GC2013.xml" download>formation_GC2013.xml</a>
* DUT Génie Industriel et Maintenance (GIM) (IUT de Tremblay-en-France, sept. 2013): <a class="attachment" href="/attachments/PPN_GIM-2013.xml" download>PPN_GIM-2013.xml</a> Autre version contribuée par Roanne et Saint-Nazaire: <a class="attachment" href="/attachments/formation_gim.xml" download>formation_gim.xml</a>
* DUT Génie Industriel et Maintenance (GIM) (IUT de Tremblay-en-France, sept. 2013): <a class="attachment" href="/attachments/PPN_GIM-2013.xml" download>PPN_GIM-2013.xml</a> Autre version contribuée par Roanne et Saint-Nazaire: <a class="attachment" href="/attachments/formation_gim.xml" download>formation_gim.xml</a>
* DUT Génie Mécanique et Productique (IUT du Havre, juillet 2013) : <a class="attachment" href="/attachments/formation_GMP2013.xml" download>formation_GMP2013.xml</a> + version 2014 <a class="attachment" href="/attachments/formation_exportGMP_LeHavre.xml" download>formation_exportGMP_LeHavre.xml</a>
* DUT Génie Mécanique et Productique (IUT du Havre, juillet 2013) : <a class="attachment" href="/attachments/formation_GMP2013.xml" download>formation_GMP2013.xml</a> + version 2014 <a class="attachment" href="/attachments/formation_exportGMP_LeHavre.xml" download>formation_exportGMP_LeHavre.xml</a>
* DUT Gestion Logistique des Transports (IUT du Havre, juillet 2013) : <a class="attachment" href="/attachments/formation_glt.xml" download>formation_glt.xml</a> + version 2014: <a class="attachment" href="/attachments/formation_exportGLT_LeHavre.xml" download>formation_exportGLT_LeHavre.xml</a> (voir mise à jour plus bas)
* DUT Gestion Logistique des Transports (IUT du Havre, juillet 2013) : <a class="attachment" href="/attachments/formation_glt.xml" download>formation_glt.xml</a> + version 2014: <a class="attachment" href="/attachments/formation_exportGLT_LeHavre.xml" download>formation_exportGLT_LeHavre.xml</a> (voir mise à jour plus bas)
* DUT Hygiène Sécurité Environnement (HSE) (IUT du Havre, sept 2013) : <a class="attachment" href="/attachments/maquette_HSE2013.xml" download>maquette_HSE2013.xml</a> (voir mise à jour plus bas)
* DUT Hygiène Sécurité Environnement (HSE) (IUT du Havre, sept 2013) : <a class="attachment" href="/attachments/maquette_HSE2013.xml" download>maquette_HSE2013.xml</a> (voir mise à jour plus bas)
* DUT InfoCom, option GIDO : <a class="attachment" href="/attachments/maquette_Infocom2013_INFO.xml" download>maquette_Infocom2013_INFO.xml</a>
* DUT InfoCom, option Métiers du Livre et du Patrimoine (MLP) : <a class="attachment" href="/attachments/maquette_Infocom2013_MLP.xml" download>maquette_Infocom2013_MLP.xml</a>
* DUT InfoCom, option Publicité (PUB) : <a class="attachment" href="/attachments/maquette_Infocom2013_PUB.xml" download>maquette_Infocom2013_PUB.xml</a>
* DUT InfoCom, option GIDO : <a class="attachment" href="/attachments/maquette_Infocom2013_INFO.xml" download>maquette_Infocom2013_INFO.xml</a>
* DUT InfoCom, Le Havre, 2014: <a class="attachment" href="/attachments/formation_exportINFOCOM_LeHavre.xml" download>formation_exportINFOCOM_LeHavre.xml</a> (voir mise à jour plus bas)
* DUT InfoCom, option Métiers du Livre et du Patrimoine (MLP) : <a class="attachment" href="/attachments/maquette_Infocom2013_MLP.xml" download>maquette_Infocom2013_MLP.xml</a>
* DUT Informatique (IUT du Havre, juillet 2013) : <a class="attachment" href="/attachments/formation_INFO2013.xml" download>formation_INFO2013.xml</a> + version 2014 Le Havre: <a class="attachment" href="/attachments/formation_exportINFO_LeHavre.xml" download>formation_exportINFO_LeHavre.xml</a>
* DUT InfoCom, option Publicité (PUB) : <a class="attachment" href="/attachments/maquette_Infocom2013_PUB.xml" download>maquette_Infocom2013_PUB.xml</a>
* DUT Informatique (version complétée par Vélizy, juillet 2013) : <a class="attachment" href="/attachments/ppn-info-2013.xml" download>ppn-info-2013.xml</a>
* DUT InfoCom, Le Havre, 2014: <a class="attachment" href="/attachments/formation_exportINFOCOM_LeHavre.xml" download>formation_exportINFOCOM_LeHavre.xml</a> (voir mise à jour plus bas)
* DUT Métiers du Multimédia et de l'Internet (IUT de Vélizy, juillet 2013) : <a class="attachment" href="/attachments/ppn-dut-mim-2013.xml" download>ppn-dut-mim-2013.xml</a>
* DUT Informatique (IUT du Havre, juillet 2013) : <a class="attachment" href="/attachments/formation_INFO2013.xml" download>formation_INFO2013.xml</a> + version 2014 Le Havre: <a class="attachment" href="/attachments/formation_exportINFO_LeHavre.xml" download>formation_exportINFO_LeHavre.xml</a>
* DUT QLIO (IUT Evry, 2015) : <a class="attachment" href="/attachments/ppn_qlio_evry.xml" download>ppn_qlio_evry.xml</a>
* DUT Informatique (version complétée par Vélizy, juillet 2013) : <a class="attachment" href="/attachments/ppn-info-2013.xml" download>ppn-info-2013.xml</a>
* DUT Réseaux et Télécommunications (PPN juillet 2013) : <a class="attachment" href="/attachments/dut_rt_ppn2013_v1.xml" download>dut_rt_ppn2013_v1.xml</a>
* DUT Métiers du Multimédia et de l'Internet (IUT de Vélizy, juillet 2013) : <a class="attachment" href="/attachments/ppn-dut-mim-2013.xml" download>ppn-dut-mim-2013.xml</a>
* DUT Réseaux et Télécommunications (PPN juillet 2013, version tagguée pour avis de poursuite d'études, IUT de Grenoble) : <a class="attachment" href="/attachments/formation_RT_PPN2013_tagguee.xml" download>formation_RT_PPN2013_tagguee.xml</a>
* DUT Réseaux et Télécommunications (PPN juillet 2008): <a class="attachment" href="/attachments/DUT_RT_PPN2008_v4.xml" download>DUT_RT_PPN2008_v4.xml</a>
* DUT QLIO (IUT Evry, 2015) : <a class="attachment" href="/attachments/ppn_qlio_evry.xml" download>ppn_qlio_evry.xml</a>
* DUT Techniques de commercialisation (TC) (IUT du Havre, sept 2013) : <a class="attachment" href="/attachments/maquetteS1_S2_TC2013.xml" download>maquetteS1_S2_TC2013.xml</a>
* DUT Réseaux et Télécommunications (PPN juillet 2013) : <a class="attachment" href="/attachments/dut_rt_ppn2013_v1.xml" download>dut_rt_ppn2013_v1.xml</a>
* DUT Réseaux et Télécommunications (PPN juillet 2013, version tagguée pour avis de poursuite d'études, IUT de Grenoble) : <a class="attachment" href="/attachments/formation_RT_PPN2013_tagguee.xml" download>formation_RT_PPN2013_tagguee.xml</a>
* DUT Réseaux et Télécommunications (PPN juillet 2008): <a class="attachment" href="/attachments/DUT_RT_PPN2008_v4.xml" download>DUT_RT_PPN2008_v4.xml</a>
* DUT Techniques de commercialisation (TC) (IUT du Havre, sept 2013) : <a
class="attachment" href="/attachments/maquetteS1_S2_TC2013.xml"
download>maquetteS1_S2_TC2013.xml</a>
Et aussi: 11 programmes pédagogiques utilisés à l'IUT du Havre, à jour en mars 2015: HSE, TC, InfoCom, GEA, CS_AS, GC, GLT, GMP, INFO, GEII: <a class="attachment" href="/attachments/PPN-LeHavre2015.zip" download>PPN-LeHavre2015.zip</a> (contribution Dominique Soudière)
## Licences Professionnelles
## Licences Professionnelles
* LP Energies Renouvelables et Gestion de l'Energie Electrique (J. Billoué, Tours) : <a class="attachment" href="/attachments/lpro_ergee_tours_2012.xml" download>lpro_ergee_tours_2012.xml</a>
@ -71,6 +85,3 @@ Et aussi: 11 programmes pédagogiques utilisés à l'IUT du Havre, à jour en ma
* Licence professionnelle Réseaux et Télécommunications, option Administration et Sécurité des Réseaux (ASUR) : <a class="attachment" href="/attachments/lp_assur.xml" download>lp_assur.xml</a>:
----
Dominique Soudiere (IUT du Havre) a développé une macro Excel pour faciliter la saisie des programmes pédagogiques: <a class="attachment" href="/attachments/MaquetteVersion2017.xlsm" download>MaquetteVersion2017.xlsm</a>

View File

@ -38,8 +38,8 @@ affichage sur leur ENT en général, cet affichage pouvant être désactivé dep
ScoDoc pour un semestre particulier). A défaut, il faut leur envoyer leurs
bulletins par mail.
### Comment supprimer une évaluation ?
### Comment supprimer une évaluation ?
1. Supprimer toutes les notes saisies dans cette évaluation, s'il y en a: passer
par la page "Saisie des notes" et suivre le lien "Effacer toutes les notes de
cette évaluation".
@ -48,42 +48,52 @@ bulletins par mail.
bord du module: cliquer dessus pour supprimer l'évaluation.
### En IUT, comment gérer les licences professionnelles ?
* On peut créer un département regroupant les licences, ou bien rattacher
chaque licence à un département existant. Cette dernière solution est
préférable si des étudiants de DUT poursuivent en licence (ainsi, on a
automatiquement accès à leur parcours complet).
### En IUT, comment gérer les licences professionnelles ?
* La plupart des licences pro durent un an, mais sont gérées comme un seul
semestre (pas de jury à mi-parcours). Indiquer "*pas de semestre*" dans
l'option "*Semestre dans la formation*" (page "*modification du semestre*").
* On peut créer un département regroupant les licences, ou bien rattacher
chaque licence à un département existant. Cette dernière solution est
préférable si des étudiants de DUT poursuivent en licence (ainsi, on a
automatiquement accès à leur parcours complet).
* La plupart des licences pro durent un an, mais sont gérées comme un seul
semestre (pas de jury à mi-parcours). Indiquer "*pas de semestre*" dans
l'option "*Semestre dans la formation*" (page "*modification du semestre*").
### Comment gérer les étudiants les démissionnaires ?
* Sur la fiche d'un étudiant, on peut choisir plusieurs options:
* *Supprimer cet étudiant* : il sera totalement supprimé de la base, sans
remède. Cette option n'est en principe jamais utile, sauf pour corriger
une fausse manœuvre au moment des inscriptions.
Sur la fiche d'un étudiant, on peut choisir plusieurs options:
Ou bien au niveau de son inscription dans un semestre, via le menu *Scolarité*:
* *Supprimer cet étudiant* : il sera totalement supprimé de la base, sans
remède. Cette option n'est en principe jamais utile, sauf pour corriger
une fausse manœuvre au moment des inscriptions.
* *Démission* : l'étudiant restera dans le semestre, mais sera indiqué comme
démissionnaire. C'est ce qu'il faut faire quand un étudiant signale son
abandon en cours d'année, passé le délai légal ou il peut se désengager
(typiquement, après le 15 octobre).
* *Désinscrire (en cas d'erreur)* : l'étudiant reste dans ScoDoc, ses
données (et ses notes) sont conservées, mais il n'est plus inscrit au
semestre et n'apparait plus dans les listes. C'est ce qu'il faut choisir
en début d'année, soit en cas d'erreur de manipulation, soit si l'étudiant
abandonne en tout début d'année (il ne sera alors pas compté dans les
inscrits).
Ou bien au niveau de son inscription dans un semestre, via le menu *Scolarité*:
* *Démission* : l'étudiant restera dans le semestre, mais sera indiqué comme
démissionnaire. C'est ce qu'il faut faire quand un étudiant signale son
abandon en cours d'année, passé le délai légal ou il peut se désengager
(typiquement, après le 15 octobre).
* *Désinscrire (en cas d'erreur)* : l'étudiant reste dans ScoDoc, ses
données (et ses notes) sont conservées, mais il n'est plus inscrit au
semestre et n'apparait plus dans les listes. C'est ce qu'il faut choisir
en début d'année, soit en cas d'erreur de manipulation, soit si l'étudiant
abandonne en tout début d'année (il ne sera alors pas compté dans les
inscrits).
### Les ECTS ne s'affichent pas
Les ECTS sont attribués (ou pas) au moment de la saisie de la décision de jury
sur les UEs. Avant le jury, l'étudiant n'a jamais d'ECTS, quelles que soient ses
notes.
### Mes données sont erronées, que faire ?
En cas de problème (bug, erreur de manipulation, suspicion de piratage),
différents journaux peuvent être consultés.
Les utilisateurs autorisés peuvent facilement voir:
* les opérations effectuées sur un étudiant (inscriptions, saisies d'absences,
...), accessibles via le menu "Etudiant" / "Voir le journal..." en haut de sa
fiche individuelle.
@ -93,42 +103,44 @@ Les utilisateurs autorisés peuvent facilement voir:
l'identité de l'utilisateur ayant effectué la saisie).
Les administrateurs (informaticiens) peuvent aussi consulter les journaux (logs)
du serveur, voir plus loin.s
du serveur, voir ["où sont les journaux"](#ou-sont-les-journaux-logs).
### Comment signaler un problème ?
Nous vous remercions de nous signaler tous les problèmes que vous rencontrez:
erreurs, comportement bizarre ou malcommode. Nous ne promettons pas de les
régler rapidement, ni même plus tard: le logiciel est fourni sans aucune
garantie. Mais nous faisons de notre mieux:
- si vous êtes utilisateurs, écrire à
[notes@listes.univ-paris13.fr](mailto:notes@listes.univ-paris13.fr).
ou joindre le canal Discord Assistance.
* si vous êtes utilisateurs, écrire à
[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
(développement, installation), écrire à
[scodoc-devel@listes.univ-paris13.fr](mailto:scodoc-devel@listes.univ-paris13.fr).
* si vous êtes informaticien et voulez évoquer un problème technique
(développement, installation), écrire à
[scodoc-devel@listes.univ-paris13.fr](mailto:scodoc-devel@listes.univ-paris13.fr).
## Configuration
### Comment changer les logos sur les documents PDF (PV...)
## Configuration
### Comment changer les logos sur les documents PDF (PV...)
Il faut avoir un compte (web) administrateur sur ScoDoc, et passer
par l'onglet "configuration" accessible sur la page d'accueil.
Voir [la page sur la gestion des logos et images ](GestionLogos.md).
Voir [la page sur la gestion des logos et images](GestionLogos.md).
### Administration
### Administration
### Quel système d'exploitation ?
ScoDoc est accessible depuis n'importe quel navigateur Web (Firefox, Chrome, ...).
### Quel système d'exploitation ?
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 script d'installation ([GuideInstallDebian11](GuideInstallDebian11.md))
assure l'installation de tout les éléments nécessaires au bon fonctionnement de
ScoDoc.
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.
@ -136,27 +148,27 @@ Des améliorations et corrections sont fréquemment introduites. Les plus
importantes sont annoncées sur la liste de diffusion
"[scodoc-annonces](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-annonces)".
Voir aussi la page [MisesAJour](MisesAJour.md).
Voir aussi la page [MisesAJour](MisesAJour.md).
### Quelles sauvegardes des données ?
### Quelles sauvegardes des données ?
Voir [SauvegardesBases](SauvegardesBases.md).
### Où sont les journaux (logs) ?
### Où sont les journaux (logs) ?
Les administrateurs du serveur peuvent consulter:
* Le journal du serveur Web (nginx)
```
* Le journal du serveur Web (nginx)
```text
/var/log/nginx/scodoc*.log
```
* le fichier `/opt/scodoc-data/log/scodoc.log` reçoit des messages de déboggage
de ScoDoc.
* le fichier `/opt/scodoc-data/log/scodoc.log` reçoit des messages de déboggage
de ScoDoc.
### J'ai installé ScoDoc mais je n'ai pas de certificat SSL !
### J'ai installé ScoDoc mais je n'ai pas de certificat SSL !
Il est de plus en plus important d'installer un certificat SSL; les navigateurs
Web sont de plus en plus méfiants et vos utilisateurs seront très gênés si votre
ScoDoc n'a pas de certificat valide. Si votre établissement (par exemple via
@ -168,11 +180,18 @@ Pour vos tests en local, avec Chrome, modifier le paramétrage en réglant:
`chrome://flags/#allow-insecure-localhost` (et/ou taper "thisisunsafe" sur la
page bloquée).
### Comment supprimer un département ?
### Comment supprimer un département ?
Voir les commandes d'administration dans [GuideConfig](GuideConfig.md)
### Comment contribuer au projet ?
[Voir la page](Contribuer.md).
[Voir la page "contribuer"](Contribuer.md).
!!! note "Voir aussi"
- [Guide administrateur ScoDoc](GuideAdminSys.md)
- [Guide du responsable de formation](GuideAdminFormation.md)
- [Guide utilisateur](GuideUtilisateur.md)
- [Contacts](Contact.md)
- <a href="https://www.youtube.com/playlist?list=PLw49h6RbvswhasBk9bXj7PzOD8GDW3kG1" target="_blank">Tutoriels sur YouTube <img src="/img/tube.png" alt="" style="margin-top:0px; margin-bottom:0px; border-width:0px;"/></a>

View File

@ -1,4 +1,4 @@
# Obsolète, non disponible en ScoDoc 9.
# Obsolète, non disponible en ScoDoc 9
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;"
alt="/!\" /> **Les formules utilisateurs, disponibles à titre expérimental en
@ -6,88 +6,111 @@ ScoDoc version 7,
posaient maints problèmes de performance et de maintenance, et ne sont plus
utilisées en ScoDoc 9.** <img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" />
## Formules utilisateurs pour le calcul des moyennes
Dans certains cas (assez rares), on veut calculer la note d'un module autrement qu'avec une simple moyenne des notes pondérée par les
coefficients des évaluations. Par exemple, on veut parfois prendre la meilleure note de deux évaluations. On peut alors définir une formule ad-hoc pour le calcul de la moyenne du module.
## Formules utilisateurs pour le calcul des moyennes
Dans certains cas (assez rares), on veut calculer la note d'un module autrement
qu'avec une simple moyenne des notes pondérée par les coefficients des
évaluations. Par exemple, on veut parfois prendre la meilleure note de deux
évaluations. On peut alors définir une formule ad-hoc pour le calcul de la
moyenne du module.
Les formules sont aussi utilisable pour calculer la moyenne d'une Unité d'Enseignement (UE).
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Attention: l'utilisation de formules ralenti considérablement les traitements, et devrait être réservé à des cas exceptionnels.
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;"
alt="/!\" /> Attention: l'utilisation de formules ralenti considérablement les
traitements, et devrait être réservé à des cas exceptionnels.
### Détails
### Détails
Le problème est compliqué par le fait que les notes à traitées ne sont pas toujours des nombres: absences, notes en attentes ou manquantes...
Le problème est compliqué par le fait que les notes à traitées ne sont pas
toujours des nombres: absences, notes en attentes ou manquantes...
La formule reçoit donc:
* Un tableau (vecteur) de notes (noté "notes"), de taille fixe et égale au nombre d'évaluations définies. Dans ce tableau, les notes "manquantes" ou "neutralisée" sont remplacées par des zéros. Les valeurs sont toujours entre 0 et 20. Toutes les évaluations sont présentes, même celle des évaluation incomplètes (mais leurs notes sont mises à zéro, même celles des étudiants qui ont une note note).
* Un tableau (vecteur) de notes (noté "notes"), de taille fixe et égale au
nombre d'évaluations définies. Dans ce tableau, les notes "manquantes" ou
"neutralisée" sont remplacées par des zéros. Les valeurs sont toujours entre 0
et 20. Toutes les évaluations sont présentes, même celle des évaluation
incomplètes (mais leurs notes sont mises à zéro, même celles des étudiants qui
ont une note note).
* Un tableau des coefficients de chaque évaluation, dans lequel les valeurs correspondants aux notes "manquantes" sont nulles.
* Un tableau des coefficients de chaque évaluation, dans lequel les valeurs
correspondants aux notes "manquantes" sont nulles.
Dans ces tableaux, les évaluations sont ordonnées en fonction de leur place sur le tableau de bord du module: l'ordre des évaluation (par défaut par date) peut être modifié par l'utilisateur en utilisant les flèches.
Dans ces tableaux, les évaluations sont ordonnées en fonction de leur place sur
le tableau de bord du module: l'ordre des évaluation (par défaut par date) peut
être modifié par l'utilisateur en utilisant les flèches.
Ainsi, si on a pour un étudiant deux évaluations de coefficients 2 et
3 avec les notes (12/20 et 16/20), on aura:
```
Ainsi, si on a pour un étudiant deux évaluations de coefficients 2 et 3 avec les
notes (12/20 et 16/20), on aura:
```py
notes = [ 12., 20. ]
coefs = [ 2., 3. ]
```
Quelques fonctions sont définies: `abs, cmp, dot, len, map, max, min, pow, reduce, round, sum, ifelse`.
Quelques fonctions sont définies:
`abs, cmp, dot, len, map, max, min, pow, reduce, round, sum, ifelse`.
Exemples:
* Le max de deux évaluations: `max( notes[0], notes[1] )` (*voir une meilleure approche plus bas*)
* La moyenne classique: `dot( notes, coefs ) / sum(coefs)` (la fonction dot est le produit scalaire habituel)
* Ajouter 1 à la moyenne: `ifelse(moy_is_valid, min(moy_val + 1, 20), moy)`
* `ifelse(condition, valeur_si_vrai, valeur_si_faux)`
* on utilise `min` car le résultat ne doit en aucun cas dépasser 20
* pour le calcul, on utilise la variable `moy_val` (un nombre)
* si la moyenne n'est pas valide, on renvoie la valeur `moy` (ce qui permet de garder le bon code)
* Le max de deux évaluations, en résistant aux notes manquantes: `ifelse(moy_is_valid, max(notes[0], notes[1]), moy)`
* Le max de deux évaluations: `max( notes[0], notes[1] )` (*voir une meilleure approche plus bas*)
* La moyenne classique: `dot( notes, coefs ) / sum(coefs)` (la fonction dot est le produit scalaire habituel)
* Ajouter 1 à la moyenne: `ifelse(moy_is_valid, min(moy_val + 1, 20), moy)`
* `ifelse(condition, valeur_si_vrai, valeur_si_faux)`
* on utilise `min` car le résultat ne doit en aucun cas dépasser 20
* pour le calcul, on utilise la variable `moy_val` (un nombre)
* si la moyenne n'est pas valide, on renvoie la valeur `moy` (ce qui permet de garder le bon code)
* Le max de deux évaluations, en résistant aux notes manquantes: `ifelse(moy_is_valid, max(notes[0], notes[1]), moy)`
Autres variables définies dans les formules:
* moy : la valeur de la moyenne calculée classiquement (somme pondérée) <img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> *attention, ce n'est pas forcément un nombre !*
* moy_val: la valeur de la moyenne (moy) (toujours un nombre, valant 0 si moyenne invalide)
* moy_is_valid: vrai si la moyenne (moy) est valide (numérique). Par exemple, si absence EXCusée, la moyenne n'est pas valide.
* cmask : un vecteur de 0/1, 0 si l'évaluation correspondante n'a pas de note, 1 sinon.
* nbabs : nombre d'absences de l'étudiant dans le semestre (en demi-journées)
* nbabs_just: nombre d'absences *justifiées* de l'étudiant dans le semestre (en demi-journées)
* nbabs_nojust : nombre d'absences *non justifiées* de l'étudiant dans le semestre (en demi-journées)
* moy : la valeur de la moyenne calculée classiquement (somme pondérée) <img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> *attention, ce n'est pas forcément un nombre !*
* moy_val: la valeur de la moyenne (moy) (toujours un nombre, valant 0 si moyenne invalide)
* moy_is_valid: vrai si la moyenne (moy) est valide (numérique). Par exemple, si absence EXCusée, la moyenne n'est pas valide.
* cmask : un vecteur de 0/1, 0 si l'évaluation correspondante n'a pas de note, 1 sinon.
* nbabs : nombre d'absences de l'étudiant dans le semestre (en demi-journées)
* nbabs_just: nombre d'absences *justifiées* de l'étudiant dans le semestre (en demi-journées)
* nbabs_nojust : nombre d'absences *non justifiées* de l'étudiant dans le semestre (en demi-journées)
Attention: pour les conditions, on utilisera la fonction `ifelse`: comme pour tout appel de fonction python, les arguments cette dernière sont évalués avant l'appel, ce qui implique que les deux branches (vraie et faux) sont toujours évaluées. Ce détail est important si l'une d'entre elle déclenche une exception !
Attention: pour les conditions, on utilisera la fonction `ifelse`: comme pour
tout appel de fonction python, les arguments cette dernière sont évalués avant
l'appel, ce qui implique que les deux branches (vraie et faux) sont toujours
évaluées. Ce détail est important si l'une d'entre elle déclenche une exception!
### Calcul des moyennes d'UE
### Calcul des moyennes d'UE
Dans les formules de calcul des moyennes d'UE, on peut utiliser soit le vecteur de notes soit avec des indices numériques (comme ci-dessus, les moyennes de modules étant accessibles dans l'ordre sous lequel elle apparaissent dans les bulletins de notes), soit en utilisant le code du module.
Dans les formules de calcul des moyennes d'UE, on peut utiliser soit le vecteur
de notes soit avec des indices numériques (comme ci-dessus, les moyennes de
modules étant accessibles dans l'ordre sous lequel elle apparaissent dans les
bulletins de notes), soit en utilisant le code du module.
Ainsi, la moyenne du module `BD1` serait aussi accessible comme la variable `notes['BD1']`.
Exemple: dans une UE, on veut ajouter la note du module SPORT (qui aurait été défini avec un coefficient nul dans le programme), on écrira:
```
Exemple: dans une UE, on veut ajouter la note du module SPORT (qui aurait été
défini avec un coefficient nul dans le programme), on écrira:
```py
ifelse(moy_is_valid, min(moy_val+notes['SPORT'], 20), moy)
```
### Traitement des erreurs
### Traitement des erreurs
La formule doit ramener une valeur numérique entre 0 et 20, sans quoi
ScoDoc considère la note erronée et la remplace par le code 'ERR' (qui
se voit dans le tableau récapitulatif des notes et sur les bulletins).
Idem pour tout autre erreur de calcul pouvant se produire.
Si vous voyez des 'ERR', corrigez votre formule ! (message d'erreur affiché sur le tableau de bord du semestre)
La formule doit ramener une valeur numérique entre 0 et 20, sans quoi ScoDoc
considère la note erronée et la remplace par le code 'ERR' (qui se voit dans le
tableau récapitulatif des notes et sur les bulletins). Idem pour tout autre
erreur de calcul pouvant se produire. Si vous voyez des 'ERR', corrigez votre
formule ! (message d'erreur affiché sur le tableau de bord du semestre)
## Exemples de formules de calcul utiles
## Exemples de formules de calcul utiles
### Exemple (contribué par Cédric C., IUT de Bordeaux)
### Exemple (contribué par Cédric C., IUT de Bordeaux)
*J'ai réussi à faire mon calcul de moyenne pour une évaluation ayant pour calcul :* `moyenne(DS5, TD4, moyenne(TP1,TP2,TP3))`
*Si cela vous intéresse, voici le détail : *
*Si cela vous intéresse, voici le détail :*
```
Moyenne des [TPs](TPs.md)
(notes[1]*coefs[1]+notes[2]*coefs[2]+notes[3]*coefs[3])/(coefs[1]+coefs[2]+coefs[3])
@ -110,9 +133,4 @@ Ifelse(max(max(max(max(cmask[1], cmask[2]), cmask[3]), cmask[4]), cmask[5]),monc
Soit la formule finale de moyenne de production
ifelse(max(max(max(max(cmask[1], cmask[2]), cmask[3]), cmask[4]), cmask[5]), ((notes[5]*coefs[5]+notes[4]*coefs[4]+ (notes[1]*coefs[1]+notes[2]*coefs[2]+notes[3]*coefs[3])/( ifelse(max(max(cmask[1],cmask[2]),cmask[3]), coefs[1]+coefs[2]+coefs[3],1)
)))/max(coefs[5]+coefs[4]+max(max(cmask[1],cmask[2]),cmask[3]),1) ,moy)
```
### Autres exemples
*à compléter, n'hésitez pas à envoyer vos exemples !*
```

View File

@ -2,13 +2,13 @@
# 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).
* 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.
@ -18,20 +18,22 @@ Ces images peuvent être chargées ou modifiées par l'administrateur via le men
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).
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.
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 (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 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`) :
@ -51,3 +53,8 @@ exceptionnellement prise en compte. Bien évidemment, si un fichier scodoc9 (don
avec le préfixe `logo_`) est présent, il est prioritaire sur le fond de page
"historique".
!!! note "Voir aussi"
- [Guide administrateur ScoDoc](GuideAdminSys.md)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

View File

@ -1,65 +1,152 @@
# Guide ScoDoc pour le ou la responsable de formation
# Guide ScoDoc pour le ou la responsable de formation
Cette partie s'adresse plutôt aux responsables de formation (cheffes ou chefs de
département IUT, responsable de filières, ...). Nous allons apprendre à:
* définir une formation (saisie du programme pédagogique définissant les modules)
* définir une formation (saisie du programme pédagogique définissant les modules)
* mettre en place un semestre (ou session) de formation
* mettre en place un semestre (ou session) de formation
* inscrire des étudiants à un semestre de formation
* inscrire des étudiants à un semestre de formation
## Définir un programme pédagogique
## Définir un programme pédagogique
Le programme pédagogique d'une formation défini les unités d'enseignement; il est destiné à être utilisé par plusieurs sessions de formation (semestres). On doit apporter un soin particulier à la définition du programme, et éviter de le modifier une fois que des semestres sont créés (il est toutefois possible d'en créer de nouvelles *versions* pour permettre des modifications ultérieures sans affecter les semestres achevés: voir [VersionProgrammes](VersionProgrammes.md)).
Le programme pédagogique d'une formation défini les unités d'enseignement; il
est destiné à être utilisé par plusieurs sessions de formation (semestres). On
doit apporter un soin particulier à la définition du programme, et éviter de le
modifier une fois que des semestres sont créés (il est toutefois possible d'en
créer de nouvelles *versions* pour permettre des modifications ultérieures sans
affecter les semestres achevés: voir [VersionProgrammes](VersionProgrammes.md)).
On définira en général dans le programme l'ensemble des enseignements d'un diplôme (les 4 semestres d'un DUT par exemple). C'est dans une phase ultérieure que l'on mettra en place les différents semestres.
On définira en général dans le programme l'ensemble des enseignements d'un
diplôme (les 4 semestres d'un DUT par exemple). C'est dans une phase ultérieure
que l'on mettra en place les différents semestres.
Les programmes pédagogiques ScoDoc sont structurés en Unités d'Enseignements (UE), Matières et Modules.
Un module appartient forcément à une matière, qui appartient elle même à une UE. Les modules représentent les cours ("mathématique", "anglais", ...) et sont associées à un volume horaire (cours/TD/TP) et à un coefficient: chaque module produit une note moyenne (en général obtenue à travers plusieurs *évaluations* ou contrôles). La note moyenne d'une UE est obtenue en calculant une moyenne pondérée par les coefficients des notes moyennes de modules.
Les programmes pédagogiques ScoDoc sont structurés en Unités d'Enseignements
(UE), Matières et Modules. Un module appartient forcément à une matière, qui
appartient elle même à une UE. Les modules (déclinés en *ressources*, *SAÉs* en
BUT) représentent les cours ("mathématique", "anglais", ...) et sont associés à
un volume horaire (cours/TD/TP) et à un coefficient: chaque module produit une
note moyenne (en général obtenue à travers plusieurs *évaluations* ou
contrôles). La note moyenne d'une UE est obtenue en calculant une moyenne
pondérée par les coefficients des notes moyennes de modules.
Les matières n'ont pas d'autre utilité que d'aider à structurer le programme. Par exemple, on pourrait définir dans un programme une matière "Sciences" réunissant les modules de "mathématiques" et de "physique". Les matières n'ont pas de coefficient. Si l'on ne souhaite pas utiliser de matière, il suffit d'en créer une pour chaque module avec le même nom, ou au contraire (plus simplement) de créer une matière par UE et d'y placer tous les modules.
🚸 En BUT, c'est un peu différent, puisque les modules ont une note *pour chaque
UE*: la moyenne d'un module n'est pas définie. Voir [BUT](BUT.md)
Les UE jouent un rôle particulier dans l'évaluation. En effet, selon les règles du LMD, les UE sont *capitalisables* (voir [CapitalisationUE](CapitalisationUE.md)). De plus, l'obtention de droit des semestres d'un DUT est soumise à une moyenne supérieure à 8/20 dans chacune des UE.
Les matières n'ont pas d'autre utilité que d'aider à structurer le programme.
Par exemple, on pourrait définir dans un programme une matière "Sciences"
réunissant les modules de "mathématiques" et de "physique". Les matières n'ont
pas de coefficient. Si l'on ne souhaite pas utiliser de matière, il suffit d'en
créer une pour chaque module avec le même nom, ou au contraire (plus simplement)
de créer une matière par UE et d'y placer tous les modules.
Notons qu'une UE ne possède pas de coefficient. Le coefficient d'une UE n'est autre que la somme des coefficient des modules qui composent cette UE. Par conséquent, le coefficient d'UE est potentiellement variable d'un étudiant à l'autre, si les étudiants ne sont pas inscrits aux mêmes modules (options ou parcours).
Les UE jouent un rôle particulier dans l'évaluation. En effet, selon les règles
du LMD, les UE sont *capitalisables* (voir
[CapitalisationUE](CapitalisationUE.md)). De plus, l'obtention de droit des
semestres d'un DUT est soumise à une moyenne supérieure à 8/20 dans chacune des
UE.
Vous trouverez plus d'informations sur la définition des programmes sur la page [VersionProgrammes](VersionProgrammes.md).
Notons qu'une UE ne possède pas de coefficient. Le coefficient d'une UE n'est
autre que la somme des coefficient des modules qui composent cette UE. Par
conséquent, le coefficient d'UE est potentiellement variable d'un étudiant à
l'autre, si les étudiants ne sont pas inscrits aux mêmes modules (options ou
parcours).
Vous trouverez plus d'informations sur la définition des programmes sur la page
[VersionProgrammes](VersionProgrammes.md).
## Créer un semestre de formation
Pour créer un semestre de formation, on va partir d'un programme pédagogique donné et y choisir un (sous)ensemble de modules. Le semestre sera associé à une date de début, une date de fin, et un responsable (*directeur des études* dans le langage IUT).
## Versions des programmes de formation
* Options de paramétrage d'un semestre: [ParametrageSemestre](ParametrageSemestre.md)
Chaque semestre ("FormSemestre" dans le jargon ScoDoc) se réfère à un programme
pédagogique, appelé sa *formation*. cette formation définit l'ensemble des UE et
modules, leurs intitulés, et leurs coefficients et ECTS.
Les programmes sont le plus souvent adaptés localement, et peuvent varier d'une
année sur l'autre. Lorsqu'une formation est modifié (par exemple, un changement
de coefficient), ScoDoc doit recalculer l'ensemble des notes de tous les
semestres utilisant cette formation. De même, si un intitulé change, il faut
re-générer les bulletins et procès-verbaux. On conçoit donc que la modification
d'une formation ne s'aborde pas à la légère. ScoDoc empêche d'ailleurs toute
modification d'une formation (ou partie de, selon les cas) lorsqu'un semestre a
été verrouillé (ce qui indique en général qu'il est achevé et que l'on souhaite
conserver ses données et résultats inchangés pour utilisation future dans des
jurys ou avis).
## Inscrire des étudiants
* [ Importer des listes d'étudiants](ImportationEtuds.md) (en début d'année ou de semestre)
Si vous devez modifier une formation pour la nouvelle année scolaire, vous
pouvez créer une nouvelle version d'une formation existante afin d'éviter
d'avoir à saisir de nouveau l'ensemble des éléments. Il arrive même que, l'année
scolaire déjà commencée, on se rende compte que l'on doit modifier la formation
d'un semestre en cours (bien sûr, cela ne devrait pas arriver, les modalités
d'évaluation étant souvent votées par des instances officielles avant le début
de l'année, mais le monde n'est pas parfait et de petites corrections sont
parfois nécessaires). Dans ce cas, ScoDoc vous permet d'associer un ou plusieurs
semestres existants dans une formation à une nouvelle version de celle-ci, créée
par copie.
* [ Synchroniser avec une étape Apogée](SynchroApogee.md)
![menu formsemestre](fig/menu-formsemestre-assoc.png)
* [ Vérifier les codes NIP](VerifCodeNIP.md)
La figure suivante montre la distinction entre formations et semestres, et les opérations possibles:
* [ Associer des photos aux étudiants](GestionPhotos.md)
![menu formsemestre](fig/formations_versions_association.jpg)
* [ Données sur scolarité antérieure et admission](DonneesAdmissions.md)
![association nouvelle version](fig/sem-assoc-formation.png)
### Changement de la formation d'un semestre
## Suivi de la Scolarité
* [ Récapitulatif des opérations en fin de semestre et début du suivant](TransitionSemestre.md)
Il peut arriver que l'on ai créé deux versions de formations, qui sont encore
identique, et que l'on souhaite rattacher un formsemestre de l'une à l'autre.
C'est possible, à condition que les deux formations soient vraiment identiques
(mêmes UEs, titres, coefficients, etc). Le lien est accessible en bas de la page
"Associer à une nouvelle version du programme" mentionnée ci-dessus.
* [ Note sur la capitalisation des UE](CapitalisationUE.md)
![change formation](fig/sem-change-formation.png)
* [ Note sur la compensation des semestres](CompensationSemestre.md) (DUT)
## Créer un semestre de formation
Pour créer un semestre de formation, on va partir d'un programme pédagogique
donné et y choisir un (sous)ensemble de modules. Le semestre sera associé à une
date de début, une date de fin, et un responsable (*directeur des études* dans
le langage IUT).
## Echanges de programmes pédagogiques entre établissements
ScoDoc permet d'exporter et d'importer des programmes pédagogiques: voir des fichiers sur la page [ExemplesProgrammesPedagogiques](ExemplesProgrammesPedagogiques.md)
* Options de paramétrage d'un semestre: [Paramétrage Semestre](ParametrageSemestre.md)
<br>
## Inscrire des étudiants
---
- [Retour au guide utilisateur](GuideUtilisateur.md)
* [Importer des listes d'étudiants](ImportationEtuds.md) (en début d'année ou de semestre)
* [Synchroniser avec une étape Apogée](SynchroApogee.md)
* [Vérifier les codes NIP](VerifCodeNIP.md)
* [Associer des photos aux étudiants](GestionPhotos.md)
* [Données sur scolarité antérieure et admission](DonneesAdmissions.md)
## Suivi de la Scolarité
* [Récapitulatif des opérations en fin de semestre et début du suivant](TransitionSemestre.md)
* [Note sur la capitalisation des UE](CapitalisationUE.md)
* [Note sur la compensation des semestres](CompensationSemestre.md) (DUT)
## Échanges de programmes pédagogiques entre établissements
ScoDoc permet d'exporter et d'importer des programmes pédagogiques: voir des
fichiers sur la page
[Exemples Programmes Pédagogiques](ExemplesProgrammesPedagogiques.md)
!!! note "Voir aussi"
- [Édition des programmes de formation](VersionProgrammes.md)
- [Guide utilisateur](GuideUtilisateur.md)
- [Modélisation BUT: exemple complet](BUTExempleInfo.md)
- [Tutoriels vidéo](https://www.youtube.com/channel/UCb0JYCBRi0CsE4XFp4ByhXg)
- [Gestion des UE Bonus](https://www.youtube.com/watch?v=SVbjuDpq-lI)
- [Mise en place des parcours BUT](https://www.youtube.com/watch?v=OnuOXJo-3ro)
- [Saisie des codes Apogée](https://www.youtube.com/watch?v=MW0nNhbBjDM)
- [Du DUT au BUT: comment transformer un programme](https://www.youtube.com/watch?v=9HizGTvYgck)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

View File

@ -6,36 +6,38 @@ Utilisez un **serveur virtuel** ou un container Docker si vous n'avez pas de mac
## Installation
* Installation de ScoDoc: [GuideInstallDebian11](GuideInstallDebian11.md)
* Migration d'un serveur ScoDoc 7 vers la nouvelle version Scodoc 9: [MigrationScoDoc7a9](MigrationScoDoc7a9.md)
* Installation de ScoDoc: [GuideInstallDebian11](GuideInstallDebian11.md)
* Migration d'un serveur ScoDoc 7 vers la nouvelle version Scodoc 9: [MigrationScoDoc7a9](MigrationScoDoc7a9.md)
## Mises à jour et sauvegardes
* [Mettre à jour du logiciel (nouvelles versions)](MisesAJour.md)
* [Mise en place de sauvegardes des bases de données](SauvegardesBases.md)
* [Mettre à jour du logiciel (nouvelles versions)](MisesAJour.md)
* [Mise en place de sauvegardes des bases de données](SauvegardesBases.md)
## 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.
* [Paramétrage](PreferencesScoDoc.md): réglage des préférences
* [Gestion des comptes utilisateurs](AdminUsers.md)
* [Administration en ligne de commande](GuideConfig.md)
* [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
## Autres problèmes
* [Problèmes configuration des envois mail](ProblemesMail.md)
* [Gestion des logos et fonds de documents](GestionLogos.md)
* [ProblemesEtBugs](ProblemesEtBugs.md) en cas d'ennuis.
* [Problèmes configuration des envois mail](ProblemesMail.md)
* [Gestion des logos et fonds de documents](GestionLogos.md)
* [ProblemesEtBugs](ProblemesEtBugs.md) en cas d'ennuis.
## Utilisation avancée
## Utilisation avancée
* [Interfaçage avec Apogée](ScoDocApogee.md)
* [API](ScoDoc9API.md) : API JSON ou XML pour interfaçage avec d'autres applications
* [ServicesXml](ServicesXml.md) : web services XML pour interfaçage avec d'autres applications (obsolète).
* [AdminUsers](AdminUsers.md) : gestion des utilisateurs
* [InterrogationPortail](InterrogationPortail.md) : liaison avec portail
* [Interfaçage avec Apogée](ScoDocApogee.md)
* [API](ScoDoc9API.md) : API JSON ou XML pour interfaçage avec d'autres applications
* [ServicesXml](ServicesXml.md) : web services XML pour interfaçage avec d'autres applications (obsolète).
* [InterrogationPortail](InterrogationPortail.md) : liaison avec portail
Voir aussi le [guide pour les développeurs](GuideDeveloppeurs.md) et la [FAQ](FAQ.md).
!!! note "Voir aussi"
- [Guide pour les développeurs](GuideDeveloppeurs.md)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

View File

@ -1,11 +1,10 @@
## Prise en main et paramétrage de ScoDoc 9
# Prise en main et paramétrage de ScoDoc 9
Ce document suppose que le logiciel a été installé suivant la procédure décrite dans
[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 la
création d'utilisateurs "super admin", c'est à dire admin pour tous les
@ -64,6 +63,7 @@ Il s'agit d'un utilisateur ayant tous les droits, comme s'il était
`admin2` est ici le pseudo du nouvel admin.
### Changement du mot de passe d'un utilisateur
Cette opération peut s'effectuer via la page de gestion web des
utilisateurs, mais il est parfois commode de le faire depuis la
console:
@ -111,6 +111,7 @@ départements (utile pour certains compte administrateurs ou utilisés en lectur
par des clients de l'API).
### Migration des données de ScoDoc 7
Les données dans ScoDoc 9 ayant un format et une organisation très différents
de ScoDoc 7, une étape de conversion (migration) est nécessaire. Elle est automatique
mais prend du temps.
@ -128,6 +129,7 @@ départements.
flask import-scodoc7-users
#### Départements
Pour migrer un seul département:
flask import-scodoc7-dept DEPT DBNAME
@ -327,7 +329,7 @@ Options:
(*la liste ci-dessus est générée à l'aide de la commande* `flask dumphelp`).
### Changement des logos apparaissant sur les documents
### Changement des logos apparaissant sur les documents
*Note: après migration, vos logos de ScoDoc 7 sont installés dans ScoDoc 9*.
@ -339,12 +341,24 @@ distribués. Pour les changer, passer par la page d'administration (lien
## Utilisation via le Web
* Connectez-vous au site: `https://votre.site.fr/`
* Connectez-vous au site: `https://votre.site.fr/`
Vous allez voir la page d'accueil de ScoDoc, vous permettant de choisir le
département où travailler.
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;"
alt="/!\" /> Surtout, évitez de travailler comme "admin" (super admin): prenez
le temps de créer un utilisateur "chef de département !" dans chaque
département, qui à son tour peut déléguer des droits.
Vous allez voir la page d'accueil de ScoDoc, vous permettant de choisir le département
où travailler.
!!! note "Voir aussi"
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Surtout,
évitez de travailler comme "admin" (super admin): prenez le temps de créer un utilisateur
"chef de département !" dans chaque département, qui à son tour peut déléguer des droits.
- [Guide installation](GuideInstallDebian11.md)
- [Gestion des utilisateurs](AdminUsers.md)
- [Rôles et permissions](ConfigPermissionsDept.md)
- [Configuration des envois d'emails](ConfigEmail.md)
- [Configuration des logos et fonds de documents](GestionLogos.md)
- [Guide administrateur ScoDoc](GuideAdminSys.md)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

View File

@ -4,8 +4,8 @@ Informations pour les développeurs souhaitant étendre ou modifier ScoDoc.
## Informations générales
* S'abonner aux [listes de diffusion](ListesDeDiffusion.md). Il y a aussi
un serveur Discord ouvert sur invitation aux développeur actifs. Contacter Emmanuel.
* Voir [contacts](Contact.md). Il y a aussi un serveur Discord ouvert sur
invitation aux développeur actifs. Contacter Emmanuel Viennet.
* [Générer de nouveaux formats de bulletins PDF](ApiGenerationBulletinsPdf.md)
* [Créer de nouveaux types de "parcours"](ApiCreationParcours.md)
* [API](ScoDoc9API.md) : API JSON ou XML pour interfaçage avec d'autres applications
@ -26,7 +26,7 @@ Quelques conseils, indications et mémos pour les développeurs sur ScoDoc versi
L'ancienneté de la base de code a rendu le style un peu incohérent, mais cela
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 formaté avec [`black`](https://black.readthedocs.io/) avant
tout commit (configurez votre éditeur pour appeler `black` à l'enregistrement).
#### Documentation
@ -34,6 +34,8 @@ tout commit (configurez votre éditeur pour appeler `black` à l'enregistrement)
On pourra adopter le style "Google": <https://google.github.io/styleguide/pyguide.html#383-functions-and-methods>
Exemple:
```py
"""Description résumée de la fonction
blah blah sur la fonction
@ -54,6 +56,7 @@ Exemple:
b'Zim': ('Irk', 'Invader'),
b'Lrrr': ('Omicron Persei 8', 'Emperor')}
"""
```
### Git
@ -71,20 +74,22 @@ Ci-dessous quelques pense-bête qui peuvent servir.
Pour les développeurs internes (écriture sur le dépôt master), un exemple
basique illustrant le cycle de développement:
# Créer une branche
# si besoin (travail en cours), utiliser git stash avant
git checkout master
git branch hotfix
git checkout hotfix
... dev, test ...
git add ...
git commit -m "fixed ..."
git checkout master
git merge hotfix
git branch -d hotfix
# publication
```bash
# Créer une branche
# si besoin (travail en cours), utiliser git stash avant
git checkout master
git branch hotfix
git checkout hotfix
... dev, test ...
git add ...
git commit -m "fixed ..."
git checkout master
git merge hotfix
git branch -d hotfix
# publication
# éventuellement: git stash pop
# éventuellement: git stash pop
```
Dans la plupart des cas, on travaillera sur son propre dépôt (clone du dépt
origine), et on proposera une *pull request* (PR, *demande d'ajout* en français).
@ -98,16 +103,60 @@ mises à jour de `master` (remote), faire:
git pull origin master
```
#### Autre exemple pour les développeurs
Vous travaillez sur un clone du dépôt principal ("origin"), obtenu par exemple via
```bash
git clone https://scodoc.org/git/ScoDoc/ScoDoc.git
```
remplacer par l'URL de votre dépôt sur gitea au besoin. Si vous avez votre
propre dépôt sur gitea, utilisez deux "remote": l'un pour votre dépôt gitea (ici
nommé `mon_origin`), l'autre pour le dépôt principal ScoDoc (ici nommé
`origin`).
```bash
git remote add origin https://scodoc.org/git/viennet/ScoDoc.git
git remote -v
mon_origin https://xxx.xxx (fetch)
mon_origin https://xxx.xxx (push)
origin https://scodoc.org/git/viennet/ScoDoc.git (fetch)
origin https://scodoc.org/git/viennet/ScoDoc.git (push)
```
Ensuite, tout est prêt, vous créez votre branche:
```bash
git checkout -b ma_branche
```
et la poussez sur votre dépôt: (remplacer `mon_origin`au besoin)
```bash
git push -u mon_origin ma_branche
```
Ajoutez au fur et à mesure vos commits comme d'habitude. Mais régulièrement
(chaque jour), mettez à jour pour éviter de diverger de la branche `master` (ou
autre suivant les cas) de ScoDoc:
```bash
git pull origin master
```
Vous pouvez alors à tout moment soumettre une PR propre.
#### Commandes utiles, en vrac
* `git log -L:fonction_python:fichier.py`
* Commits locaux: `git log @{u}..`
* `git log -L:fonction_python:fichier.py`
* Commits locaux: `git log @{u}..`
#### Refactoring
Lint tous les fichiers modifiés:
```bash
```bash
git status | grep modified | grep .py | awk '{print $2}' | xargs pylint -E
```
@ -128,14 +177,15 @@ Prépare un sed pour renommer les variables non définies:
Restore les modes au besoin (SAMBA les changent parfois):
```bash
```bash
git diff -p -R --no-color | grep -E "^(diff|(old|new) mode)" --color=never | git apply
```
Note pour travailler sur VirtualBox:
addgroup scodoc vboxsf
```text
addgroup scodoc vboxsf
```
### Préparation d'une PR (Pull Request)
@ -161,7 +211,8 @@ demande d'ajout (*pull request*, dite "PR"):
Les manipulations sont décrites selon quatre phases du développement : l'installation,
la mise en place, le suivi et la livraison.
##### l'installation
##### L'installation
Il est pratique d'avoir en ligne les deux dépôts git distants que vous pouvez
utiliser : votre dépôt personnel (`https://scodoc.org/git/<user>/<dépôt>.git`) et
le dépôt officiel (`https://scodoc.org/git/ScoDoc/ScoDoc.git`).
@ -207,10 +258,10 @@ principale évolue pendant ce temps.
Pour garder la cohérence, il est nécessaire de réintégrer en local les
modifications de la branche principale. Ceci peut se faire de deux façons.
- Une fusion (`merge`) applique toutes les modifications en un seul commit).
* Une fusion (`merge`) applique toutes les modifications en un seul commit).
C'est la méthode couramment utilisée.
- Un `rebase` rejoue tous les commits de la nouvelle branche par dessus l'état
* Un `rebase` rejoue tous les commits de la nouvelle branche par dessus l'état
le plus à jour de la branche principale (il en résulte un historique plus
linéaire).
@ -266,7 +317,7 @@ exemple):
```
Utilisateurs Windows : Vérifiez bien que les réglages de fin de ligne suivent
bien les règles Linux (pas de retour chariot (noté CR ou `\r`) en fin de ligne
bien les règles Linux: pas de retour chariot (noté CR ou `\r`) en fin de ligne
mais un seul caractère line feed (noté LF ou `\n`). Le cas échéant, réglez
votre IDE pour cela.
@ -302,7 +353,8 @@ commandes :
git rebase --continue # pour poursuivre le processus
git rebase --abort # pour tout abandonner
```
_vous permettront de résoudre ces problèmes exceptionnels_.
*vous permettront de résoudre ces problèmes exceptionnels*.
Application:
@ -370,7 +422,7 @@ Quand vous sortez de l'éditeur, git effectue toutes les opérations demandées.
* toutes les différences entre officiel/master et votre branche locale sont
signifiantes.
##### Étape 4 :
##### Étape 4
Vous pouvez maintenant pousser votre branche locale sur votre dépôt personnel
(vers une branche de même nom):
@ -435,7 +487,7 @@ bibliothèques, ou autres expériences de ce genre, vous pouvez le récréer ain
Puis soit vous installez les versions "officielles" (testées)
```
```bash
pip install -r requirements-3.9.txt
```
@ -445,6 +497,7 @@ 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:
@ -456,15 +509,11 @@ Pour régénérer le fichier indiquant la liste des paquets:
Note: la mise à jour par `apt` recrée le virtualenv à chaque fois.
## Roadmap
Sujets **prioritaires** en 2021-2022:
- Modernisation du code: Flask, Python 3: achevé août 2021.
* [voir les tickets](https://scodoc.org/git/viennet/ScoDoc/issues)
- Prise en compte du Bachelor (BUT): SAÉ, suivi compétences, validations des
blocs, UE, semestres selon la cadrage et l'arrêté Licence Pro 2020. (achevé
avec ScoDoc 9.2 puis complété en 9.3 et 9.4)
- Définition et développement nouvelle API (achevé avec 9.3 en juillet 22)
Autres sujets:
- [voir les tickets](https://scodoc.org/git/viennet/ScoDoc/issues)
!!! note "Voir aussi"
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

View File

@ -1,8 +1,9 @@
# Installation de ScoDoc 9 sur Debian 11 (Bullseye)
# Installation de ScoDoc 9 sur Debian 11 (Bullseye)
Ce document décrit la procédure d'installation et de configuration de ScoDoc 9.
Cette procédure doit être effectué sur la machine serveur avec un accès
administrateur (root).
administrateur (root).
ScoDoc est livré avec des scripts d'installation qui configurer presque
automatiquement votre serveur (serveur web, base de données, etc): vous pouvez
@ -11,77 +12,78 @@ système Linux.
Cette documentation est prévue pour installer ScoDoc version 9 sur un système
[Debian](http://www.debian.org) 11 (Bullseye, stable) s'exécutant sur une
machine intel-like **64bits** (architecture **AMD64**). Debian s'installe
facilement en cinq minutes, sur une machine normale ou un serveur
virtualisé. Il est **vivement déconseillé** de tenter l'installation sur une
autre version.
machine intel-like **64bits** (architecture **AMD64** sur Intel/AMD, ou
**aarch64** sur Apple ARM). Debian s'installe facilement en cinq minutes, sur
une machine normale ou un serveur virtualisé. Il est **vivement déconseillé** de
tenter l'installation sur une autre version.
Si vous mettez à jour un serveur existant (ScoDoc 7 sur Debian 10), voir [la page
sur les migrations](https://scodoc.org/MigrationScoDoc7a9/#2-upgrade-debian).
Merci de signaler tout problème (emmanuel.viennet@gmail.com
ou [scodoc-devel](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-devel) ).
Merci de signaler tout problème [sur le Discord](https://discord.gg/ybw6ugtFsZ)
ou éventuellement la liste [scodoc-devel](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-devel).
- Note 1: l'image du CD d'installation de Debian (amd64) peut se trouver ici:
- Note: 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 la version "petits CD" pour **amd64** (*Il est indispensable
d'utiliser une version 64 bits ! *)
choisir la version "petits CD" pour **amd64**
(*Il est indispensable d'utiliser une version 64 bits !*)
- Note 2: une version Docker serait utile: avis aux volontaires.
🚸 **Important:**
<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, ...).
VirtualBox ou VMWare, ou UTM sur Mac). L'installation ci-dessous va en effet
modifier de nombreux paramètres de votre système Linux (serveur web, firewall,
serveur SQL, messagerie, ...).
## 1) Préalable: configurer un serveur linux
## 1) Préalable: configurer un serveur linux
Le serveur devrait être accessible depuis Internet.
Le serveur devrait être accessible depuis Internet.
### Configuration matérielle
- taille disque: prévoir au moins 20Go sur la partition où sera scodoc (en
général `/`).
- taille disque: prévoir au moins 20Go sur la partition où sera scodoc (en
général `/`).
- mémoire: prévoir au moins 8Go de RAM, et plutôt 12 ou 16.
- mémoire: prévoir au moins 8Go de RAM, et plutôt 12 ou 16.
### Informations sur les flux réseau
Le serveur est fréquemment installé sur un réseau protégé ou sur un VPN.
- le trafic entrant est sur le port 443 (le trafic http/80 est redirigé
vers le https).
- le trafic entrant est sur le port 443 (le trafic http/80 est redirigé
vers le https).
- le serveur doit pouvoir envoyer du mail (serveur postfix en local, à
configurer pour utiliser un relais smtp ou envoyer directement, selon
votre politique. Au besoin, pour le reconfigurer, lancer `dpkg-reconfigure postfix`);
- le serveur doit pouvoir envoyer du mail (serveur Postfix en local, à
configurer pour utiliser un relais smtp ou envoyer directement, selon
votre politique. Au besoin, pour le reconfigurer, lancer `dpkg-reconfigure postfix`);
- Les serveurs de mise à jour de Debian doivent être accessibles (en http,
voir `/etc/apt/sources.list`);
- Les serveurs de mise à jour de Debian doivent être accessibles (en http,
voir `/etc/apt/sources.list`);
- Les serveurs `scodoc.org` et `scodoc.iutv.univ-paris13.fr` doivent
être accessibles (80 et 443).
- Les serveurs `scodoc.org` et `scodoc.iutv.univ-paris13.fr` **doivent**
être accessibles (80 et 443).
### Installation Linux Debian
Nous recommandons d'effectuer une installation standard de Debian par le réseau (netinst),
et d'utiliser l'install en mode texte, très simple et rapide.
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
et d'utiliser l'installation en mode texte, très simple et rapide.
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.).
*Veiller à sélectionner une locale `UTF-8` par défaut.*
🚸 *Veiller à sélectionner une locale `UTF-8` par défaut.*
![InstallDebian6-1.png](screens/InstallDebian6-1.png)
### Points à vérifier avant d'installer ScoDoc
### 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:
```
```bash
ping www.univ-paris13.fr
(quitter avec ctrl-c)
cd /tmp
@ -90,15 +92,16 @@ Checklist minimale de votre système Linux Debian:
```
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
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.
4. Mail: vérifiez que le serveur peut envoyer des e-mail:
`mail votre@adresse.fr`, puis entrer un message terminé par `ctrl-d`: si vous ne
4. Mail: vérifiez que le serveur peut envoyer des e-mail: `mail
votre@adresse.fr`, puis entrer un message terminé par `ctrl-d`: si vous ne
recevez pas le message après quelques minutes, vérifiez votre configuration
(et le log `/var/log/mail.log`). Un serveur ScoDoc qui n'envoie pas de mail
ne peut pas vérifier ceux des utilisateurs, qui à leur tour ne pourront pas
changer leurs mots de passe (bien d'autres fonctions dépendent des mails).
Au besoin, revoir la configuration avec `dpkg-reconfigure postfix`.
changer leurs mots de passe (bien d'autres fonctions dépendent des mails).
Au besoin, revoir la configuration avec `dpkg-reconfigure postfix` (voir
aussi [envoi des courriers électroniques](ProblemesMail.md)).
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`.
@ -111,24 +114,38 @@ Checklist minimale de votre système Linux Debian:
1. Cette liste est incomplète... et n'oubliez pas: avant de passer en
production, mettez en place des sauvegardes sérieuses !
#### Configuration si utilisation d'un proxy
#### Configuration si utilisation d'un proxy
Si votre accès à Internet passe par un proxy, l'indiquer au moment de
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 :
```
```bash
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:
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):
```bash
# /etc/environment
export HTTP_PROXY=http://proxy.univ-xxx.fr:1234
export HTTPS_PROXY=http://proxy.univ-xxx.fr:1234
# Versions en minuscules utilisées par wget
export http_proxy="${HTTP_PROXY}"
export https_proxy="${HTTPS_PROXY}"
```
sudo systemctl restart scodoc
Après modification de ce fichier (qui *doit* être lisible par l'utilisateur `scodoc`),
redémarrer le service:
```bash
sudo systemctl restart scodoc9
```
Dans les cas compliqués, il est possible qu'il vous faille configurer d'autres
@ -136,7 +153,6 @@ redémarrer le service:
[ce post sur Stack Overflow](
https://stackoverflow.com/questions/9445489/performing-http-requests-with-curl-using-proxy).
#### Note sur l'install dans un container LXC
Il y a deux possibilités :
@ -146,11 +162,14 @@ root et/ou sudo, attention: la config par défaut de Redis (un gestionnaire de
cache utilisé par ScoDoc) n'est pas compatible, en raison d'un problème de
système de fichier en lecture seule. Installer redis avant ScoDoc, comme suit:
```bash
apt-get install redis
```
Puis créer un dossier `/etc/systemd/system/redis.service.d` contenant le fichier
`redis.conf` avec les lignes suivantes :
```text
[Service]
PrivateTmp=no
ProtectSystem=false
@ -161,11 +180,14 @@ Puis créer un dossier `/etc/systemd/system/redis.service.d` contenant le fichie
ProtectKernelModules=no
ReadWritePaths=
ReadOnlyDirectories=
```
Ensuite
Ensuite
```bash
systemctl daemon-reload
systemctl start redis
```
... et poursuivez l'installation comme ci-dessous.
@ -173,88 +195,99 @@ Ensuite
compte utilisateur normal, vous pouvez activer l'option « nesting »
(imbriqué) de LXC pour permettre à Redis de fonctionner normalement.
⚠️ Attention ! N'activez pas le *nesting* sur un conteneur privilégié. Cela
🚸 Attention ! N'activez pas le *nesting* sur un conteneur privilégié. Cela
provoquerait une faille de sécurité.
Si vous avez construit votre conteneur manuellement avec lxc-create, modifiez
Si vous avez construit votre conteneur manuellement avec `lxc-create`, modifiez
le fichier `/var/lib/lxc/${nomDuConteneur}/config` et ajoutez les lignes
ci-dessous :
```text
lxc.apparmor.allow_nesting = 1
lxc.apparmor.profile = generated
```
Si vous utilisez un conteneur LXC sur l'hyperviseur Proxmox, modifiez le
fichier `/etc/pve/lxc/${CTID}.conf` et ajoutez la ligne suivante :
```text
features: nesting=1
```
... et poursuivez l'installation comme ci-dessous.
## 2) Installation de ScoDoc sur Debian
## 2) Installation de ScoDoc sur Debian
### 2.1) Charger le logiciel
### 2.1) Charger le logiciel
<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**).
🚸 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**).
Remarque: *Si ce n'est pas déjà le cas, vous avez intérêt à ouvrir une session
`ssh` (ou `putty`) depuis une machine normale, afin de pouvoir copier/coller
facilement les commandes et éditer les fichiers de configuration.*
- Ajouter le dépot scodoc: copier ce fichier <a href="/attachments/scodoc.list"
- Ajouter le dépot scodoc: copier ce fichier <a href="/attachments/scodoc.list"
download>scodoc.list</a> dans `/etc/apt/sources.list.d/`
ou le créer contenant juste cette ligne:
# contenu du fichier /etc/apt/sources.list.d/scodoc.list
deb http://scodoc.org/repo bullseye main
```text
# contenu du fichier /etc/apt/sources.list.d/scodoc.list
deb http://scodoc.org/repo bullseye main
```
- Installer la clé: en `root` sur le serveur, lancer
- Installer la clé: en `root` sur le serveur, lancer
apt-get -y install gnupg
wget -O - https://scodoc.org/misc/scodoc-repo.gpg.key | apt-key add -
```bash
apt-get -y install gnupg
wget -O - https://scodoc.org/misc/scodoc-repo.gpg.key | apt-key add -
```
- Installer le logiciel:
apt-get update
apt-get install nginx
- Installer le logiciel:
S'assurer que le logiciel `nginx`s'est bien installé. En cas de problème se
référer à sa doc (par exemple, si
[votre serveur ne supporte pas
IPv6](https://techglimpse.com/nginx-error-address-family-solution/)).
Ensuite:
apt-get install scodoc9
```bash
apt-get update
apt-get install nginx
```
S'assurer que le logiciel `nginx` s'est bien installé. En cas de problème se
référer à sa doc (par exemple, si
[votre serveur ne supporte pas
IPv6](https://techglimpse.com/nginx-error-address-family-solution/)).
Notez que l'installation du paquet `scodoc9` va créer automatiquement un
utilisateur `scodoc` qui sera utilisé par le serveur.
Ensuite:
- Attribuer un mot de passe à l'utilisateur `scodoc`:
```bash
apt-get install scodoc9
```
Notez que l'installation du paquet `scodoc9` va créer automatiquement un
utilisateur `scodoc` qui sera utilisé par le serveur.
passwd scodoc
- Attribuer un mot de passe à l'utilisateur `scodoc`:
```bash
passwd scodoc
```
### 2.2) Configuration des logiciels et des données
Lancer le script suivant en tant que `root` sur votre serveur nouvellement installé:
/opt/scodoc/tools/configure-scodoc9.sh
```bash
/opt/scodoc/tools/configure-scodoc9.sh
```
Vous devrez répondre à quelques questions et saisir le mot de passe que vous
attribuerez à l'utilisateur `admin`.
(note: pour en savoir plus sur ce script, [voir l'explication](GuideInstallDebian11Advanced.md))
### 3) **Lancer ScoDoc**:
### 3) **Lancer ScoDoc**
sudo su # se connecter en root
systemctl restart nginx
systemctl restart scodoc9
et voila !
```bash
sudo su # se connecter en root
systemctl restart nginx
systemctl restart scodoc9
```
✨ et voila !
Visiter `https://monscodoc.mondomaine.fr/` pour achever la configuration et
utiliser le logiciel: voir la page [GuideConfig](GuideConfig.md).
@ -267,19 +300,30 @@ installation ScoDoc 7, ou même en place.
Voir [la procédure de migration](MigrationScoDoc7a9.md).
## En cas de problème
Ne pas hésiter à me contacter ou à écrire sur la liste notes (voir [Listes de
diffusion](ListesDeDiffusion.md)).
## En cas de problème
* Problèmes d'envoi de courrier électronique (mail): voir [ProblemesMail](ProblemesMail.md)
Ne pas hésiter à nous contacter (voir [contacts](Contact.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...
## Ensuite...
- Mettez en place des [sauvegardes](SauvegardesBases.md)
* Mettez en place des [sauvegardes](SauvegardesBases.md)
- Si vous le souhaitez, vous pouvez mettre en place un anti-virus pour
surveiller les fichiers uploadés par les utilisateurs. Les fichiers sont
conservés dans `/opt/scodoc-data`: le plus simple est de faire surveiller tout
ce répertoire sauf `/opt/scodoc-data/logs`.
* Abonnez-vous au moins à la liste d'annonces: voir [Listes de diffusion](ListesDeDiffusion.md)
- Abonnez-vous au moins à la liste d'annonces: voir [contacts](Contact.md)
!!! note "Voir aussi"
- [Guide configuration](GuideConfig.md)
- [Guide administrateur ScoDoc](GuideAdminSys.md)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

View File

@ -1,46 +1,66 @@
# Utilisation de ScoDoc
ScoDoc contrôle les opérations via un mécanisme de permissions facile à mettre en œuvre et permettant de bien répartir les rôles entre les utilisateurs: responsables, enseignants, secrétariats.
ScoDoc contrôle les opérations via un mécanisme de permissions facile à mettre
en œuvre et permettant de bien répartir les rôles entre les utilisateurs:
responsables, enseignants, secrétariats.
## Pour le responsable de formation
La définition des programmes, l'inscription des étudiants et certains paramétrages ne sont accessibles qu'au responsable de formation, ou chef de département.
- [Guide pour le responsable de formation](GuideAdminFormation.md)
* [Modification d'un programme pédagogique et versions](VersionProgrammes.md)
* [Exemples et partages de programmes pédagogiques entre établissements](ExemplesProgrammesPedagogiques.md)
* [Importation des étudiants](ImportationEtuds.md)
La définition des programmes, l'inscription des étudiants et certains
paramétrages ne sont accessibles qu'au responsable de formation, ou chef de
département.
* [Guide pour le responsable de formation](GuideAdminFormation.md)
* [Modification d'un programme pédagogique et versions](VersionProgrammes.md)
* [Exemples et partages de programmes pédagogiques entre établissements](ExemplesProgrammesPedagogiques.md)
* [Importation des étudiants](ImportationEtuds.md)
* [Synchronisation des inscrits avec Apogée](SynchroApogee.md)
* [Procédure d'inscription des étudiants via Apogée](InscriptionsEtudApogee.md)
* [Données sur l'origine des étudiants](DonneesAdmissions.md)
* [Gestion des photos des étudiants](GestionPhotos.md)
* [Coordonnées des étudiants](GestionAdresses.md)
* [Opérations en fin de semestre (jury, ré-inscriptions, ...)](TransitionSemestre.md)
* [Export des résultats et décisions de jury vers Apogée](ScoDocApogee.md)
* [Utilisation des rôles et permissions](ConfigPermissionsDept.md)
## Pour les enseignants et administratifs:
* [Opérations en fin de semestre (jury, ré-inscriptions, ...)](TransitionSemestre.md)
* [Export des résultats et décisions de jury vers Apogée](ScoDocApogee.md)
* [Utilisation des rôles et permissions](ConfigPermissionsDept.md)
* [Édition des bulletins de notes](BulletinsNotes.md)
## Pour les enseignants et administratifs
* [Édition des bulletins de notes](BulletinsNotes.md)
* [paramétrage des bulletins pdf](ParametrageBulletins.md)
* [Édition des PV de jury](ParametragePV.md)
* Comment sont calculées les moyennes : [Calcul des notes](CalculNotes.md)
* [Édition des PV de jury](ParametragePV.md)
* Comment sont calculées les moyennes : [Calcul des notes](CalculNotes.md)
## Opérations diverses
#### Tenue des jurys et commissions
* [Saisie des décisions](SaisieDecisionsJury.md)
* [Gestion des commissions et jurys, édition des PV](GestionJury.md)
* [Capitalisation des UE](CapitalisationUE.md)
* [Compensation automatique des semestres](CompensationSemestre.md)
### Tenue des jurys et commissions
#### Suivi de l'assiduité
* [Saisie des décisions](SaisieDecisionsJury.md)
* [Gestion des commissions et jurys, édition des PV](GestionJury.md)
* [Capitalisation des UE](CapitalisationUE.md)
* [Suivi de l'assiduité des étudiants](GestionAbsences.md)
### Spécificités du BUT
#### Rapports, avis et tableaux de bords
* Voir [la page dédiée au BUT](BUT.md).
* [Rapports, suivi de cohortes, parcours](RapportsStatistiques.md)
* [Génération des avis de poursuite d'études](AvisPoursuiteEtudes.md)
### Spécificités du DUT
## Questions fréquentes
Voir la [FAQ](FAQ.md)
* [Compensation automatique des semestres](CompensationSemestre.md)
### Suivi de l'assiduité
* [Suivi de l'assiduité des étudiants](GestionAbsences.md)
### Rapports, avis et tableaux de bords
* [Rapports, suivi de cohortes, parcours](RapportsStatistiques.md)
* [Génération des avis de poursuite d'études](AvisPoursuiteEtudes.md)
!!! note "Voir aussi"
- [Guide du responsable de formation](GuideAdminFormation.md)
- [FAQ](FAQ.md)
- [Contacts](Contact.md).

View File

@ -32,3 +32,4 @@ Le plus simple est de passer par le lien "importer des étudiants" présent en b
Autres remarques:
* le champ 'SEXE' doit contenir ```MR``` (masculin) ou ```MLLE``` (féminin).
* l'identité d'un étudiant (nom, prénom, civilité) peut quelquefois subir quelques variantes (voir [DonneesEtudiant](DonneesEtudiant.md))

View File

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

View File

@ -119,7 +119,7 @@ flask user-password lecteur_rt
puis
```bash
http -a lecteur_rt:azer POST 'http://localhost:5000/ScoDoc/api/tokens'
http -a lecteur_rt:mot_de_passe POST 'http://localhost:5000/ScoDoc/api/tokens'
# récupérer le token...
http GET http://localhost:5000/ScoDoc/api/RT/formsemestres/query "Authorization:Bearer xxxxxxxxxxx"
@ -166,10 +166,18 @@ 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:
```
```bash
git pull
flask clear-cache
```
La commande `redis-cli FLUSHALL` permet aussi de vider le cache sans avoir à
lancer flask (plus rapide).
!!! note "Voir aussi"
- [Informations pour les développeurs](Internals.md)
- [API ScoDoc 9](ScoDoc9API.md)
- [Modélisation du BUT](ModelisationParcoursBUT.md)
- [Contacts](Contact.md)

View File

@ -1,11 +0,0 @@
# Listes de diffusion mail pour ScoDoc
Les listes de diffusion mail sont le principal canal de communication entre les utilisateurs et entre les développeurs.
* [scodoc-annonces](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-annonces) liste à très fable trafic, en lecture seule, seules des annonces importantes sont postées (quelques messages par an), tous les utilisateurs sont encouragés à s'y abonner. Indispensable aux administrateurs du logiciel.
* [Notes](https://listes.univ-paris13.fr/mailman/listinfo/notes) discussions ou questions liées à l'utilisation du logiciel, entraide entre utilisateurs: vous pouvez y intervenir librement (les messages sont modérés pour éviter le spam).
* [scodoc-devel](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-devel) échanges entre développeurs. Abonnez-vous si vous êtes intéressés par le développement du logiciel, souhaitez participer ou poser des questions techniques.

View File

@ -1,11 +1,14 @@
# Mise à jour de ScoDoc 9
Il est nécessaire de mettre à jour très fréquemment votre installation ScoDoc.
# Mise à jour de ScoDoc 9
À partir de ScoDoc 9, les mises à jour sont automatiques. Au besoin, on peut en
lancer une à tout moment avec la commande
apt update && apt-get upgrade
!!! note "Voir aussi"
- [Guide administrateur ScoDoc](GuideAdminSys.md)
- [Contacts](Contact.md)

View File

@ -1,13 +1,13 @@
# Implémentation des parcours du BUT dans ScoDoc
Cette page est *destinée aux développeurs* et à tous ceux qui souhaitent
comprendre le fonctionnement du logiciel. Elle ne concerne que les formations
BUT, dites dans ScoDoc "APC" (pour *approches par compétences*).
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))
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://www.enseignementsup-recherche.gouv.fr/fr/bo/22/Special4/ESRS2211617A.htm](https://www.enseignementsup-recherche.gouv.fr/fr/bo/22/Special4/ESRS2211617A.htm))
et ne sont pas susceptibles d'adaptations locales.
Nous nous sommes basés sur les versions exportées du logiciel Orébut.
@ -25,29 +25,41 @@ Pour le BUT, le référentiel de formation n'est pas fixé nationalement. Une pa
est publiée (2/3) par le ministère, le reste est défini localement par les
universités (*adaptation locale*).
Les formations ScoDoc (`Formation`) sont constituées de
- UE : `UniteEns`
- Modules (ressources, SAÉ, autres): `Module`
Les formations ScoDoc (`Formation`) sont constituées de
- UE : `UniteEns`
- Modules (ressources, SAÉ, autres): `Module`
La formation définit les UE et modules pour l'ensemble
des semestres d'un ou plusieurs parcours. De cette façon, on peut 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.
En ScoDoc 9.3, on avait une bijection UE <-> Niveau de compétence (`ApcNiveau`).
En 9.4, on aura une association UE <- parcours -> Niveau de compétence
- 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).
## Unités d'enseignement
Les UE sont des UE "LMD" habituelles; associées à des crédits ECTS,
capitalisables. Pour chaque UE on calcule une note (moyenne d'UE) et on attribue
une décision de jury (validée, ajournée, ...).
une décision de jury (validée, ajournée, ...).
### ECTS et parcours
Les ECTS sont toujours associés aux UEs, et non au semestre ou aux modules.
Dans ScoDoc, il est obligatoire de spécifier le nombre d'ECTS des de chaque UE
(sauf les UE bonus qui n'ont jamais d'ECTS).
Le nombre d'ECTS est généralement fixe, mais il peut varier selon le parcours
!!! note "ECTS variable selon le parcours"
Ce cas a été soulevé à propos du BUT MMI, qui préconiserait par exemple, au S4,
une compétence "développer" avec 10 ECTS dans le parcours "Web", et 5 ECTS dans le
parcours "Crea".
Cette possibilité est prévue pour ScoDoc version 9.4.72
Chaque UE a un attribut ECTS qui donne la valeur par défaut. On a aussi une
valeur ECTS dans la table d'association `UEParcours`qui lie `UniteEns` et
`ApcParcours`.
Si cette valeur est présente, l'attribut ECTS de l'UE est ignoré.
## Modules et parcours
@ -64,28 +76,31 @@ On peut ainsi vérifier que les parcours couvrent les AC, et faciliter les
inscriptions des étudiants aux modules (par ex. page présentant les modules
auxquels inscrire un groupe).
### Cas des modules présents dans plusieurs parcours
Si un module est utilisé dans plusieurs parcours de la même formation BUT, cela
ne pose aucun problème, _sauf_ si ce module doit avoir des coefficients (vers
les UEs) différents selon le parcours dans lequel il intervient. Dans ce cas,
*il sera conseillé de créer plusieurs versions du module*, que l'on associera
aux divers parcours.
### Cas des modules présents dans plusieurs parcours
Il est fréquent qu'un module peut être utilisé dans plusieurs parcours de la
même formation BUT. Il peut contribuer à une UE de tronc commun, ou un
sous-ensemble d'UEs. Dans certains spécialités, le coefficient d'un module vers
une UE varie selon le parcours: dans ce cas, il faudra créer plusieurs UEs
associées au même niveau de compétence, et renseigner les coefficients
correspondants. les étudiants seront inscrits à l'une ou l'autre des UEs suivant
leur parcours.
## Coefficients modules / UEs
Les coefficients sont des réels (non nullables), `ModuleUECoef`.
Édition via *Formation*/*Édition des coefficients des modules vers les UEs*:<br>
<img src="/fig/formation_edit_coefs.png" width="30%">
## Formation
Le programme de formation est constitué des classes suivantes (en BUT et dans
tous les types de formation. La notion de "matière" n'est pas utilisée en BUT).
- `Formation` (ex: "BUT R&T")
- `UniteEns` (UE, ex: "Administrer les réseaux")
- `Modules` (ressources, SAÉs) *<-> `ApcAppCritique`*, *<-> `ApcAnneeParcours`*
- `Formation` (ex: "BUT R&T")
- `UniteEns` (UE, ex: "Administrer les réseaux")
- `Modules` (ressources, SAÉs) *<-> `ApcAppCritique`*, *<-> `ApcAnneeParcours`*
On voit que les modules ont toujours une UE de rattachement. Cependant, en BUT,
un module peut intervenir dans le calcul des notes de plusieurs UE, via une
@ -93,42 +108,93 @@ matrice de coefficients.
!!! example "Méthodes de Formation"
- `Formation.query_ues_parcour(parcour: ApcParcours)`->(query) les UEs d'un
parcours de la formation.
parcours de la formation.
## Référentiel de compétences
Le référentiel de compétences (`ApcReferentielCompetences`) défini les
compétences à valider (décomposées en niveaux) et les parcours BUT
(`ApcParcours`). Il est structuré ainsi:
- `ApcReferentielCompetences`
- `ApcCompetence`
- `ApcSituationPro`
- `ApcComposanteEssentielle`
- `ApcNiveau` (année (BUT1, BUT2, ...), ordre (1,2) ou (1,2,3)) *<-> `UE`*
- `ApcAppCritique` *<-> `Module`*
- `ApcParcours`
- `ApcAnneeParcours` (ordre=1,2,3) *<-> `Module`*
- *`ApcCompetence`* <- `ApcParcoursNiveauCompetence` (niveau 1, 2, 3) -> *`ApcAnneeParcours`*
- `ApcReferentielCompetences`
- `ApcCompetence`
- `ApcSituationPro`
- `ApcComposanteEssentielle`
- `ApcNiveau` (année (BUT1, BUT2, ...), ordre (1,2) ou (1,2,3)) *<-> `UE`*
- `ApcAppCritique` *<-> `Module`*
- `ApcParcours`
- `ApcAnneeParcours` (ordre=1,2,3) *<-> `Module`*
- *`ApcCompetence`* <- `ApcParcoursNiveauCompetence` (niveau 1, 2, 3) -> *`ApcAnneeParcours`*
Notons:
- Le lien entre UE et Niveau de compétence (`ApcNiveau`).
- Le lien à entre Compétence et Année de Parcours à travers la table
(*many-to-many*) `ApcParcoursNiveauCompetence` qui indique le niveau ce
compétence concerné.
- Le lien entre les apprentissages critiques (`ApcAppCritique`) et les
- Le lien (*one-to-one*) entre `UniteEns`(UE) et Niveau de compétence (`ApcNiveau`).
- Le lien entre Compétence et Année de Parcours à travers la table
(*many-to-many*) `ApcParcoursNiveauCompetence` qui indique le niveau ce
compétence concerné.
- Le lien *many-to-many* UE et `Parcours`, qui permet de spécifier les ECTS de
l'UE dans un parcours donné et est utilisé pour vérifier la formation
(couverture de tous les niveau en suivant un parcours donné, somme des ECTS).
- Le lien entre les apprentissages critiques (`ApcAppCritique`) et les
modules, qui permet d'établir les critères d'évaluation de chaque module.
### Niveaux de compétences et UEs
Une compétence est constituée de plusieurs niveaux (`ApcNiveau`), typiquement 2
ou 3. En BUT, chaque niveau correspond à deux UEs sur deux semestres de la même
année d'un parcours.
- 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).
Lors des jurys, on enregistre les validations d'UE. Les UE sont liées à des
niveaux de compétences. Lorsque les deux UEs sont validées, le niveau est
validé: c'est le RCUE (*regroupement cohérents d'UEs*).
Pour valider un diplôme de BUT, il faut avoir validé tous les niveaux de toutes
les compétences du parcours choisi.
Une UE est associée à un et un seul niveau de compétence. Elle peut être
associée à un nombre quelconque de parcours.
Remarques:
- Certains niveaux (et donc UEs) sont présents dans tous les parcours: ce sont
les niveaux de *tronc commun*.
- Une UE associée à un niveau peut avoir des ECTS différents selon le parcours
(voir [note ci-dessus](#ects-et-parcours))
- Dans certaines spécialités, les coefficients des modules vers la même UE
peuvent varier selon le parcours. Dans ce cas, on créera une UE par parcours
(UE associée au même niveau), afin de pouvoir spécifier des coefficients
distincts.
#### Vérifications effectués par ScoDoc
En plus des contraintes strictes liées aux relations modélisées,
ScoDoc vérifiera que
- Dans une formation, chaque niveau d'un parcours soit associé à deux et
seulement deux UEs de ce parcours de la même année scolaires (BUT1, BUT2 ou
BUT3).
- Le nombre total d'ECTS de chaque parcours soit bien 180 (3 années de 60 ECTS).
- Toutes les UEs sont bien associée à un niveau.
## 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`
- `FormSemestre`
- `ModuleImpl`
- `Evaluation`
On a vu que la formation pouvait comporter plusieurs parcours. Un `FormSemestre`
peut implémenter un ou plusieurs parcours. On a en effet une table d'association
@ -143,17 +209,17 @@ Via *Semestre*/*Modifier le semestre*:<br>
- `FormSemestre.query_ues_parcours_etud(etudid: int) -> `(query) UEs que suit
l'étudiant dans ce semestre BUT en fonction du parcours dans lequel il est
inscrit.
## Inscriptions des étudiants
Les étudiants sont inscrits:
- à des `FormSemestre` (`FormSemestreInscription`, avec:
- un état, "inscrit", "démission" ou "défaillant";
- un `ApcParcours`;
- un code étape Apogée.
- à des `FormSemestre` (`FormSemestreInscription`, avec:
- un état, "inscrit", "démission" ou "défaillant";
- un `ApcParcours`;
- un code étape Apogée.
- dans un ModuleImpl (`ModuleImplInscription`)
- dans un ModuleImpl (`ModuleImplInscription`)
Un formsemestre est associé à un ensemble de parcours. L'étudiant peut être
inscrit à l'un d'entre eux. Certaines formations commencent par une année de
@ -161,17 +227,28 @@ tronc commun, durant laquelle l'étudiant n'a pas encore choisi son parcours. On
considérera que si l'étudiant n'est pas inscrit à un parcours, il est
implicitement inscrit à tous les parcours du semestre.
## Associations (nouvelles pour le BUT):
## Associations (nouvelles pour le BUT)
Pour la gestion des parcours BUT, on a introduit les associations suivantes,
qui n'existaient pas dans ScoDoc 9.2:
- UE <-> `ApcNiveau` : choix sur la page `ue_edit`
- `Module` ||--o{ ensemble de `ApcParcours`
- `Module` ||--o{ `ApcAppCritique` : choix sur la page `module_edit`
- `FormSemestre` ||--o{ `ApcParcours` : choix sur la page
`formsemestre_editwithmodules`
- `FormSemestreInscription` ||--|| `ApcParcours` : inscription au parcours, page à créer.
- `UniteEns` }o--o{ ensemble de `ApcParcours` : choix sur la page `ue_edit`
- `UniteEns` }o--|| `ApcNiveau` : choix sur la page `ue_edit`
- `Module` ||--o{ ensemble de `ApcParcours`
- `Module` ||--o{ `ApcAppCritique` : choix sur la page `module_edit`
- `FormSemestre` ||--o{ `ApcParcours` : choix sur la page
`formsemestre_editwithmodules`
- `FormSemestreInscription` ||--|| `ApcParcours` : inscription au parcours, géré
via la partition `Parcours`.
```mermaid
erDiagram
UniteEns }o--o{ ApcParcours : UEParcours
UniteEns }o--|| ApcNiveau : ""
Formation ||--o{ UniteEns : ""
FormSemestre }o--|| Formation : ""
UniteEns }o--|{ Module : ModuleUECoef
```
## Cas d'usage
@ -188,35 +265,39 @@ l'étudiant est inscrit (sans bonus).
matrice d'inscriptions `(etuds, ue)`.
### UEs à afficher sur les tableaux récap. de semestre
TODO
### UEs à valider en jury BUT
TODO
TODO
### Niveau de compétence d'un formsemestre
Le formsemestre est lié à un ensemble d'`ApcParcours`.
La liste des niveaux (`ApcNiveau`) associés aux UEs:
```
La liste des niveaux (`ApcNiveau`) associés aux UEs:
```py
[ ue.niveau_competence
for ue in formsemestre.query_ues() if ue.niveau_competence ]
```
### Inscription d'un étudiant aux ModuleImpls
L'inscription reste libre (chaque individu peut être inscrit à un sous-ensemble
quelconque des `ModuleImpl` du `FormSemestre`), mais il sera commode de pouvoir:
- Créer des groupes de parcours (via `edit_partition_form`)
- Créer des groupes de parcours (via `edit_partition_form`)
- Inscrire les étudiants d'un groupe à tous les modimpls du parcours:
Les modimpls d'un parcours sont donnés par la méthode `modimpls_parcours` de
`FormSemestre`.
- Inscrire les étudiants d'un groupe à tous les modimpls du parcours:
Les modimpls d'un parcours sont donnés par la méthode `modimpls_parcours` de
`FormSemestre`.
### Comment ScoDoc détermine-t-il les modules d'un parcours ?
### 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
UE, on peut déterminer, pour un semestre de rang donné, l'ensemble des UEs
associées à un parcours.
Par ailleurs, chaque niveau de compétence est associé à un ensemble d'AC
@ -236,21 +317,22 @@ Vérification utile en fin de formation.
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.
- Lister les `ModuleImpl` auxquels l'étudiant a été inscrit dans ses semestres
(S1 à S6);
- En déduire l'ensemble des AC évalués pour cet étudiant (indépendamment de sa
réussite);
- Comparer aux AC du parcours tels que décrits dans le référentiel de compétence.
#### Au moment de la définition d'une formation
Le parcours du ref. de compétence indique un ensemble d'AC pour chaque niveau
(année). On pourra vérifier que les `Module`s de chaque année suffisent à
couvrir le parcours. Mais si les `Module`s ne sont pas associés à un parcours,
on ne peut pas aller plus loin.
on ne peut pas aller plus loin.
### Lister les UEs d'un parcours d'une formation
```
```py
# Soit un parcours:
parcour = formation.referentiel_competence.parcours.filter_by(code="ROM").first()
# Listes UEs de ce parcours:
@ -283,9 +365,9 @@ 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).
- [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:
@ -298,36 +380,22 @@ Il faut donc:
relevant du même référentiel de compétences dans lesquels a été inscrit
l'étudiant, et vérifier que les UE de S1 et S2 sont validées.
### Cas particulier: formations dont le nombre d'ECTS varie selon le parcours
Ce cas a été soulevé à propos du BUT MMI, qui préconiserait par exemple, au S4,
une compétence développer avec 10 ECTS dans le parcours "web", et 5 ECTS dans le
parcours "crea".
Si on veut pouvoir utiliser la même formation, et éventuellement mélanger les
étudiants des différents parcours dans le même `FormSemestre` (ce qui
simplifierait la gestion des modules communs), il faut modifier la modélisation:
Les ECTS sont actuellement des attributs de UEs.
Il faudrait avoir une association `UniteEns` }o..o{ `ApcParcours` qui contienne
les valeurs des ECTS.
## Enregistrement des validations de compétences
### Rappel: validations en formations classiques
Pour toutes les formations, ScoDoc enregistre les validations de semestres et
d'UE, via la classe `ScolarFormSemestreValidation`, dont les instances stockent:
- `etudid, formsemestre_id, code, event_date`
- `etudid, formsemestre_id, code, event_date`
et pour les validations de semestres:
- `assidu, compense_formsemestre_id`
- `assidu, compense_formsemestre_id`
ou pour les validations d'UE
- `ue_id, is_external`
- `ue_id, is_external`
Les codes sont définis dans `sco_codes_parcours.py`, avec les valeurs: `ADC,
ADJ, ADM, AJ, ATB, ATJ, ATT, CMP, DEF, NAR, RAT` (voir [Gestion des Jurys
@ -341,64 +409,64 @@ même année de parcours associées à la même compétence.
On va stocker les validation des RCUE dans `ApcValidationRCUE`:
- `etudid`
- `formsemestre_id` (dernier déclenchant cette validation).
- `ue_1`, `ue_2` : les deux UE associées à ce niveau.
- `ApcParcours` : optionnel, le parcours dans lequel se trouve la compétence.
- `datetime` de la validation.
- `code` de validation: `ADM`, `CMP`, `AJ`.
- `etudid`
- `formsemestre_id` (dernier déclenchant cette validation).
- `ue_1`, `ue_2` : les deux UE associées à ce niveau.
- `ApcParcours` : optionnel, le parcours dans lequel se trouve la compétence.
- `datetime` de la validation.
- `code` de validation: `ADM`, `CMP`, `AJ`.
Rappel: chaque UE est associé à un niveau de compétence
(`ue.niveau_competence`), qui doit ici être le même.
### Validation des années du BUT
Pour le BUT, ScoDoc enregistre les validations d'années `ApcValidationAnnee`
- `etudid`
- `ordre`: 1, 2, 3 pour BUT1, BUT2, BUT3.
- `formsemestre_id` (dernier déclenchant cette validation, None si extérieure)
- `annee_scolaire` (int, année de début, eg 2021 pour "2021-2022")
- `datetime` de la validation.
- `code` de validation: `PASD`, `PAS1NCI`, `RED`, `REO`, `DEM`, `EXC`, `ABAN`, `ABL`.
- `etudid`
- `ordre`: 1, 2, 3 pour BUT1, BUT2, BUT3.
- `formsemestre_id` (dernier déclenchant cette validation, None si extérieure)
- `annee_scolaire` (int, année de début, eg 2021 pour "2021-2022")
- `datetime` de la validation.
- `code` de validation: `PASD`, `PAS1NCI`, `RED`, `REO`, `DEM`, `EXC`, `ABAN`, `ABL`.
### Codes préconisés par l'AMUE pour le BUT
On associe lors du jury un code de décision:
- À chaque UE: `VAL`, `COMP`, `AJ`, `UESBL`.
- À chaque niveau de compétence (RCUE): `VAL`, `AJ`, `CODJ`.
- À chaque année:
- `PASD`: Passage en Année Supérieure de Droit (+ de 50% des UE VAL et RCUE Ajourné(s) >=8)
- `PAS1NCI`: Passage en Année Supérieure avec au moins 1 Niveau de Compétence Insuffisant (RCUE<8)
- `RED`: Redoublement de l'année
- `REO`: REOrientation - décision automatique (revient à une exclusion), plus de 4 semestres RED ou décision de Jury
- `DEM`: DEMission (lettre de l'étudiant).
- `EXC`: EXClusion, décision réservée à des décisions disciplinaires
- `ABAN`: ABANdon constaté (sans lettre de démission)
- `ABL`: Année BLanchie
- Au diplôme: `ADM`
- À chaque UE: `VAL`, `COMP`, `AJ`, `UESBL`.
- À chaque niveau de compétence (RCUE): `VAL`, `AJ`, `CODJ`.
- À chaque année:
- `PASD`: Passage en Année Supérieure de Droit (+ de 50% des UE VAL et RCUE Ajourné(s) >=8)
- `PAS1NCI`: Passage en Année Supérieure avec au moins 1 Niveau de Compétence Insuffisant (RCUE<8)
- `RED`: Redoublement de l'année
- `REO`: REOrientation - décision automatique (revient à une exclusion), plus de 4 semestres RED ou décision de Jury
- `DEM`: DEMission (lettre de l'étudiant).
- `EXC`: EXClusion, décision réservée à des décisions disciplinaires
- `ABAN`: ABANdon constaté (sans lettre de démission)
- `ABL`: Année BLanchie
- Au diplôme: `ADM`
#### Correspondance avec les codes de ScoDoc
ScoDoc utilise des codes [documentés ici](GestionJury.md).
- Pour les semestres: `ADM`, `ADC`, `ADJ`, `ATT`, `ATB`, `ATJ`, `AJ`, `NAR`. En
BUT, pas besoin de codes semestriels. On ajoutera un code `JSD` (*Jury Sans
Décision*) pour simplement indiquer que le jury s'est tenu. Ce code ne sera pas
exporté vers Apogée.
- Pour les semestres: `ADM`, `ADC`, `ADJ`, `ATT`, `ATB`, `ATJ`, `AJ`, `NAR`. En
BUT, pas besoin de codes semestriels. On ajoutera un code `JSD` (*Jury Sans
Décision*) pour simplement indiquer que le jury s'est tenu. Ce code ne sera pas
exporté vers Apogée.
- Pour les UEs: **codes d'état d'UE**
- Pour les UEs: **codes d'état d'UE**
ScoDoc | BUT AMUE | &nbsp;
----------|-----|-----
ADM | VAL | UE validée automatiquement |
CMP | COMP| UE validée par compensation|
AJ | AJ | UE ajournée (échec) |
- | UESBL | blanchissement (non dispo en ScoDoc 9) |
| UESBL | blanchissement (non dispo en ScoDoc 9) |
- Pour les RCUE:
- Pour les RCUE:
ScoDoc | BUT AMUE | &nbsp;
----------|-----|-----
@ -409,11 +477,10 @@ AJ | AJ | RCUE ajournée (échec) |
Rappel: les codes exportés vers Apogée sont configurables (table de transcodage dans la
config générale).
## Diagramme de classes
Juste pour rire, car ce diagramme est quasiment inexploitable (dessin réalisé
automatiquement en Mermaid).
(dessin réalisé automatiquement en Mermaid; toutes les classes ScoDoc ne
figurent pas ici).
```mermaid
erDiagram
@ -428,6 +495,8 @@ erDiagram
str acronym
str code
}
ApcReferentielCompetences ||--|{ Formation : ""
Etudiant {
str nom
@ -450,7 +519,7 @@ erDiagram
ApcCompetence ||--o{ ApcNiveau : ""
ApcCompetence ||--o{ ApcSituationPro : ""
ApcCompetence ||--o{ ApcComposanteEssentielle : ""
ApcNiveau }o..|| UE : "optionnel"
ApcNiveau ||..o{ UE : ""
ApcNiveau ||--o{ ApcAppCritique : ""
ApcAppCritique }o..o{ Module : "optionnel"
@ -458,12 +527,19 @@ erDiagram
ApcParcours ||--o{ ApcAnneeParcours : ""
ApcAnneeParcours {
int ordre
int ordre "année BUT"
}
ApcCompetence }o--o{ ApcAnneeParcours : "ApcParcoursNiveauCompetence (1,2,3)"
Module }o--o{ ApcParcours : "parcours_modules"
FormSemestre }o--o{ ApcParcours : "parcours_formsemestre"
UE }o..o{ ApcParcours : "pour les ECTS"
UE }o--o{ ApcParcours : "avec en option ECTS"
```
!!! note "Voir aussi"
- [Informations pour les développeurs](Internals.md)
- [API ScoDoc 9](ScoDoc9API.md)
- [Le Bachelor Universitaire de Technologie (BUT)](BUT.md)
- [Contacts](Contact.md)

View File

@ -1,37 +1,50 @@
# Paramétrage des bulletins de notes
Ces réglages permettent de configurer la présentation des relevés de notes au format PDF.
# Paramétrage des bulletins de notes
Ces réglages permettent de configurer la présentation des relevés de notes au
format PDF.
Le bulletin est constitué de plusieurs zones:
* Le titre;
* le tableau des notes;
* les absences et appréciations (immédiatement sous le tableau des notes; les absences ne sont mentionnés que si la case "Indiquer les absences sur les bulletins" est cochée);
* la situation de l'étudiant (inscription, décision de jury, validations d'UE);
* la signature de gauche et celle de droite;
* le pied de page.
Le contenu et la présentation des zones titre, situation et signatures sont paramétrables à l'aide de formats utilisant un balisage XML assez simple.
* Le titre;
* le tableau des notes;
* les absences et appréciations (immédiatement sous le tableau des notes; les
absences ne sont mentionnés que si la case "Indiquer les absences sur les
bulletins" est cochée);
* la situation de l'étudiant (inscription, décision de jury, validations d'UE);
* la signature de gauche et celle de droite;
* le pied de page.
Le contenu et la présentation des zones titre, situation et signatures sont
paramétrables à l'aide de formats utilisant un balisage XML assez simple.
## Marges et position du pied de page
Les bulletins sont formattés pour du papier A4.
## Marges et position du pied de page
Les marges sont réglables via les valeurs dans la section "Marges additionnelles des bulletins". Ces valeurs s'ajoutent aux marges par défaut qui sont assez étroites.
Les bulletins sont formatés pour du papier A4.
Le pied de page (*Edité par ScoDoc le ...*) n'est pas affecté par le réglage des marges, et est positionné à l'aide des paramètres "Position horizontale du pied de page pdf" (resp. verticale) dans la section "Mise en forme des documents PDF". Ces valeurs affectent tous les documents PDF générés par ScoDoc.
Les marges sont réglables via les valeurs dans la section "Marges additionnelles
des bulletins". Ces valeurs s'ajoutent aux marges par défaut qui sont assez
étroites.
Le pied de page (*Edité par ScoDoc le ...*) n'est pas affecté par le réglage des
marges, et est positionné à l'aide des paramètres "Position horizontale du pied
de page pdf" (resp. verticale) dans la section "Mise en forme des documents
PDF". Ces valeurs affectent tous les documents PDF générés par ScoDoc.
## Valeurs remplacées
Dans les formats, les balises de la forme `%(X)s` sont remplacées par la valeur (texte) de la variable X si elle existe. Les variables définies apportent différentes informations:
## Valeurs remplacées
Dans les formats, les balises de la forme `%(X)s` sont remplacées par la valeur
(texte) de la variable X si elle existe. Les variables définies apportent
différentes informations:
### Préférences
Toutes les préférences pour le semestre considéré (ou définies globalement) sont utilisables par leur nom.
Voir la liste complète sur [NomsPreferences](NomsPreferences.md).
### Préférences
Toutes les préférences pour le semestre considéré (ou définies globalement) sont
utilisables par leur nom. Voir la liste complète sur
[NomsPreferences](NomsPreferences.md).
### Informations sur le semestre
### Informations sur le semestre
Variable | Valeur
---------|-------
titre_num | Le titre du semestre
@ -42,14 +55,15 @@ date_debut | 01/09/2008
date_fin | 05/07/2009
responsable | Nom du responsable du semestre (dir. des études)
### Informations sur l'étudiant
### Informations sur l'étudiant
Variable | Valeur (exemple)
---------|-------
nom| DUPONT
prenom| PIERRE
sexe| M.
nomprenom| M. Pierre DUPONT
nomprenom| M. Pierre DUPONT (civilité et nom en usage à l'université)
etat_civil | Mme Pierrette DUPONT (civilité et nom de naissance / etat-civil)
situation| phrase expliquant la situation de l'étudiant (inscription, décisions de jury)
demission| "DEMISSION" ou vide
inscription| phrase décrivant l'inscription ("ancien")
@ -63,6 +77,11 @@ decisions_ue | noms (acronymes) des UE validées, séparées par des virgul
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 (vide en BUT)
|
**Parcours et référentiel BUT** |
parcours_titre | "Cybersécurité"
parcours_code | "Cyber"
refcomp_specialite | "RT"
refcomp_specialite_long| "Réseaux et Télécommunications"
**Jurys de BUT:** |
descr_decision_annee | vide ou "Décision année: ADM" (code annuel: `ADM`, `PASD`, `DEF`...)
descr_decisions_rcue | vide ou nom de la compétence et code jury RCUE: "Administrer 1: ADM, Connecter 1: ADJ"
@ -73,38 +92,41 @@ nbabs| nombre d'absences (en demi-journées)
nbabsjust| nombre d'abs. justifiées
|
**Autres champs:**|
date_naissance | date, au format jj/mm/aaaa
lieu_naissance | format libre
date_naissance | date, au format jj/mm/aaaa
lieu_naissance | format libre
domicile | adresse, format libre
codepostaldomicile |
codelycee | code national français
codepostaldomicile |
codelycee | code national français
|
**Groupes:**|
**Groupes:**|
groupes | indique les groupes auxquels appartient l'étudiant dans le semestre
group_0 | nom du groupe principal (1ère partition)
group_<n> | nom du group de la n-ième partition
### Autres informations
### Autres informations
Variable | &nbsp;
---------|-------
date_dmy | date courante, au format jj/mm/aaaa
date_iso | date courante, au format aaaa-mm-jj
## Balises XML utilisées dans les formats
Le balisage XML est celui de [ReportLab](http://www.reportlab.com/)
(intra-paragraph markup, voir page 70 du [guide
utilisateur](http://www.reportlab.com/docs/reportlab-userguide.pdf)). La balise
`<img>` n'est pas utilisable.
## Balises XML utilisées dans les formats
Le balisage XML est celui de [ReportLab](http://www.reportlab.com/) (intra-paragraph markup, voir page 70 du [guide utilisateur](http://www.reportlab.com/docs/reportlab-userguide.pdf)). La balise `<img>` n'est pas utilisable.
### Logos
### Logos
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
(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).
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;
@ -116,12 +138,15 @@ c'est le logo du département qui sera utilisé en lieu et place de logo global;
* les logos de nom '`header`' et '`footer`' définis globalement ne peuvent être supprimés (mais peuvent être redéfinis).
L'enregistrement, la modification ou la suppression d'un logo peut être réalisé via la page de configuration qui est accessible aux
administrateurs Scodoc depuis la page d'accueil.
L'enregistrement, la modification ou la suppression d'un logo peut être réalisé
via la page de configuration qui est accessible aux administrateurs Scodoc
depuis la page d'accueil.
Ce formulaire comporte une section pour les définitions globales plus une section par département.
Ce formulaire comporte une section pour les définitions globales plus une
section par département.
Une section présente la liste des logos avec leurs propriétés (la dimension est donnée à titre indicatif quand elle est disponible).
Une section présente la liste des logos avec leurs propriétés (la dimension est
donnée à titre indicatif quand elle est disponible).
Pour chaque logo, les actions disponibles sont :
@ -131,22 +156,29 @@ Pour chaque logo, les actions disponibles sont :
* l'ajout d'un nouveau logo dans une section (global ou département) et indiquant le nom.
*NB*. Quelle que soit l'opération effectuée, le nom du fichier téléversé n'a aucune importance
(Seul le nom indiqué dans le formulaire est pris en compte et le format du fichier est déduit des données propres du fichier)
*NB*. Quelle que soit l'opération effectuée, le nom du fichier téléversé n'a
aucune importance (Seul le nom indiqué dans le formulaire est pris en compte et
le format du fichier est déduit des données propres du fichier)
La balise `<logo name="xxx" width="44mm" height="22mm" valign="+5mm"/>`, placée dans un paragraphe, insère le logo de nom `xxx` avec les dimensions indiquées.
Le paramètre `valign` règle le positionnement vertical par rapport à la ligne de texte courante.
La balise `<logo name="xxx" width="44mm" height="22mm" valign="+5mm"/>`, placée
dans un paragraphe, insère le logo de nom `xxx` avec les dimensions indiquées.
Le paramètre `valign` règle le positionnement vertical par rapport à la ligne de
texte courante.
Notez qu'il est possible de ne préciser que l'une des deux dimensions hauteur ou largeur.
Dans ce cas, la dimension manquante est déduite du ratio (rapport hauteur/largeur) de l'image originale.
Voir un exemple d'utilisation plus bas.
Notez qu'il est possible de ne préciser que l'une des deux dimensions hauteur ou
largeur. Dans ce cas, la dimension manquante est déduite du ratio (rapport
hauteur/largeur) de l'image originale. Voir un exemple d'utilisation plus bas.
### 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)
### 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
### Exemple 1: Bulletins par défaut
## Exemples
### Exemple 1: Bulletins par défaut
Les bulletins édités par défaut sont obtenus avec:
* Paragraphe de titre:
@ -193,9 +225,8 @@ Année scolaire: %(anneescolaire)s
</para>
```
### Exemple 2: ancien bulletins
### Exemple 2: ancien bulletins
Les bulletins édités par défaut avant le 20/9/2009 étaient obtenus avec:
* Paragraphe de titre:
@ -231,7 +262,8 @@ Les bulletins édités par défaut avant le 20/9/2009 étaient obtenus avec:
```
### Exemple 3: en-tête avec logo
### Exemple 3: en-tête avec logo
Même structure que le premier exemple, avec un logo. Notez que les dimensions du logo (en mm ou cm) doivent avoir le même rapport (hauteur/largeur) que l'image utilisée, sans quoi l'apparence est déformée.
* Paragraphe de titre:
@ -256,3 +288,12 @@ Année scolaire: %(anneescolaire)s
</para>
```
!!! note "Voir aussi"
- [Gestion des logos](GestionLogos.md)
- [Guide administrateur ScoDoc](GuideAdminSys.md)
- [Guide du responsable de formation](GuideAdminFormation.md)
- [Guide utilisateur](GuideUtilisateur.md)
- [Contacts](Contact.md)
- <a href="https://www.youtube.com/playlist?list=PLw49h6RbvswhasBk9bXj7PzOD8GDW3kG1" target="_blank">Tutoriels sur YouTube <img src="/img/tube.png" alt="" style="margin-top:0px; margin-bottom:0px; border-width:0px;"/></a>

View File

@ -1,56 +1,93 @@
# Présentation rapide de ScoDoc
Voir les <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>
Voir les <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>
## Page d'accueil
![accueil](screens/accueil-scodoc7.png)
On y trouve les éléments suivants:
La colonne de gauche indique l'identité de l'utilisateur connecté (en rouge à droite) et contient des liens facilitant la navigation sur le site (certains sont paramétrables à l'installation). On note l'accès à trois composants importants: Entreprises (fichier d'entreprises), Notes (gestion des notes), Absences (relevé des absences), et un champ de texte permettant de rechercher un étudiant par son nom.
La colonne de gauche indique l'identité de l'utilisateur connecté (en rouge à
droite) et contient des liens facilitant la navigation sur le site (certains
sont paramétrables à l'installation). On note l'accès à trois composants
importants: Entreprises (fichier d'entreprises), Notes (gestion des notes),
Absences (relevé des absences), et un champ de texte permettant de rechercher un
étudiant par son nom.
L'identité de l'utilisateur défini ses droits d'accès (rôle) et les fonctions qu'il peut utiliser.
L'identité de l'utilisateur défini ses droits d'accès (rôle) et les fonctions
qu'il peut utiliser.
Le centre de la page donne les formations (sessions) en cours, groupées par type. A côté du titre de chaque formation, on a le nom de son responsable (ou directeur des études dans le jargon IUT), ainsi que les dates de début et de fin de la session.
Le centre de la page donne les formations (sessions) en cours, groupées par
type. A côté du titre de chaque formation, on a le nom de son responsable (ou
directeur des études dans le jargon IUT), ainsi que les dates de début et de fin
de la session.
## Fiche étudiant
Pour accéder à la fiche d'un étudiant, on peut soit le rechercher par nom (voir RechercheEtudiant) soit cliquer sur un lien dans une liste ou sur une photo d'un trombinoscope. Cette fiche (exemple ci-dessous) donne accès à toutes les informations sur l'étudiant.
![fiche étudiant](screens/ficheEtud-scodoc7.png)
Pour accéder à la fiche d'un étudiant, on peut soit le rechercher par nom (voir
RechercheEtudiant) soit cliquer sur un lien dans une liste ou sur une photo d'un
trombinoscope. Cette fiche (exemple ci-dessous) donne accès à toutes les
informations sur l'étudiant. ![fiche étudiant](screens/ficheEtud-scodoc7.png)
## Suivi de l'assiduité
ScoDoc permet d'enregistrer les absences des étudiants puis de les visualiser sur un calendrier. On peut aussi obtenir des comptes d'absences, générer des alarmes par e-mail pour prévenir un responsable, vérifier les absences qui coincident avec un examen, enregistre les justificatifs, etc.
![calendrier des absences](screens/calabs-scodoc7.png)
ScoDoc permet d'enregistrer les absences des étudiants puis de les visualiser
sur un calendrier. On peut aussi obtenir des comptes d'absences, générer des
alarmes par e-mail pour prévenir un responsable, vérifier les absences qui
coincident avec un examen, enregistre les justificatifs, etc. ![calendrier des
absences](screens/calabs-scodoc7.png)
## Gestion des notes
La gestion des notes est la partie principale du logiciel et est conçue pour faciliter au maximum le travail des enseignants, grâce à une grande flexibilité (définition des évaluations, import/export via Excel ou saisie sur formulaire web, vérifications, etc.).
La gestion des notes est la partie principale du logiciel et est conçue pour
faciliter au maximum le travail des enseignants, grâce à une grande flexibilité
(définition des évaluations, import/export via Excel ou saisie sur formulaire
web, vérifications, etc.).
### Tableau de bord du semestre, avec les modules
![tableau de bord du semestre](screens/tableaubord2011.png)
### Tableau récapitulatif des moyennes
![tableau de bord du semestre](screens/NotesRecap2012-crop.png)
### Bulletins de notes
Les bulletins sont affichables selon différents formats (ci-dessous le format par défaut). Ils peuvent être exportés sous forme de document PDF (pour impression papier), à d'autres formats (XML, Excel) ou directement envoyé par mail aux étudiants.
![bulletin de note web](screens/BulletinInter2012-crop.png)
Les bulletins sont affichables selon différents formats (ci-dessous le format
par défaut). Ils peuvent être exportés sous forme de document PDF (pour
impression papier), à d'autres formats (XML, Excel) ou directement envoyé par
mail aux étudiants. ![bulletin de note web](screens/BulletinInter2012-crop.png)
## Gestion des jurys et commissions
Une interface permet la saisie des décisions de jury. Le parcours de l'étudiant (redoublements, validations antérieures, compensations entre semestres, capitalisations d'UE) est automatiquement pris en compte, permettant aux enseignant de se concentrer sur les aspects pédagogiques sans perdre de temps avec la gestion administrative (parfois assez complexe).
ScoDoc intègre la gestion des jurys des DUT (2005) et bientôt du Bachelor Universitaire de technologie (BUT) et s'assure que les décisions prises respectent les règles.
Une interface permet la saisie des décisions de jury. Le parcours de l'étudiant
(redoublements, validations antérieures, compensations entre semestres,
capitalisations d'UE) est automatiquement pris en compte, permettant aux
enseignant de se concentrer sur les aspects pédagogiques sans perdre de temps
avec la gestion administrative (parfois assez complexe).
ScoDoc intègre la gestion des jurys des DUT (2005) et bientôt du Bachelor
Universitaire de technologie (BUT) et s'assure que les décisions prises
respectent les règles.
## Gestion des groupes
ScoDoc permet de définir des partitions et groupes en nombre quelconque, et d'y répartir facilement les étudiants (glisser/déposer, fonctions de répartition automatiques).
![affectation aux groupes](screens/GroupesDnD.png)
ScoDoc permet de définir des partitions et groupes en nombre quelconque, et d'y
répartir facilement les étudiants (glisser/déposer, fonctions de répartition
automatiques). ![affectation aux groupes](screens/GroupesDnD.png)
## Trombinoscopes
![trombinoscope](screens/Trombi-scodoc7.png)
*(en réalité vous aurez les photos de vos étudiants !)*
## Autres fonctionnalités
### Imports / Exports
Les données conservées dans le logiciel peuvent être exportées dans une grande variété de formats (pages web, PDF, Excel, XML...) ce qui facilite tant son usage par des non informaticiens que son intégration dans d'autres logiciels (portails d'établissements, systèmes d'informations comme Apogée).
Les données conservées dans le logiciel peuvent être exportées dans une grande
variété de formats (pages web, PDF, Excel, XML...) ce qui facilite tant son
usage par des non informaticiens que son intégration dans d'autres logiciels
(portails d'établissements, systèmes d'informations comme Apogée).

View File

@ -1,40 +1,49 @@
# Problèmes d'envoi de courriers électroniques
ScoDoc envoie des mails en plusieurs occasions (bulletins de notes, importation
d'utilisateurs, alertes sur absences, exceptions dans le code).
# Problèmes d'envoi de courriers électroniques
ScoDoc envoie des mails (emails, ou e-mails, ou courriels) en plusieurs
occasions (bulletins de notes, importation d'utilisateurs, alertes sur absences,
exceptions dans le code).
Cette page explique ce qu'il faut vérifier si l'envoi des messages ne fonctionne
pas.
pas.
## Configuration du serveur
ScoDoc suppose que la machine serveur sur laquelle il s'exécute est dotée d'un
serveur de mail capable d'envoyer des messages (soit directement, soit via un
relais). L'installeur propose d'installer le logiciel serveur Postfix.
relais). L'installeur propose d'installer le logiciel serveur Postfix.
1. Vérifier que votre serveur de messagerie est bien configuré: dans un
terminal, envoyez un message
```
```bash
mail mon_adresse@universite.fr
... entrer votre texte, terminez par ctrl-d ...
```
Si vous ne recevez pas le message que vous vous envoyiez, revoir la
configuration de votre serveur, par exemple avec la commande
```
configuration de votre serveur, par exemple avec la commande
```bash
dpkg-reconfigure postfix
```
2. Vérifiez que le serveur SMTP écoute bien en local sur le port 25: dans un terminal taper
```
```text
telnet localhost 25
```
Vous devez observer:
```
```text
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 nom_du_serveur ESMTP Postfix (Debian/GNU)
```
(quitter avec ctrl-] puis `quit`)
## Tests avec ScoDoc
@ -64,7 +73,7 @@ delays=0.03/0/0.41/1, dsn=2.0.0, status=sent (250 2.0.0 OK 1220942550 y2si226470
Cela devrait permettre de savoir:
1. si ScoDoc tente d'envoyer un mail (`/opt/scodoc-data/log/scodoc.log`);
2. si le serveur SMTP arrive à traiter ce mail.
## Redirection des tous les mails de ScoDoc
@ -75,3 +84,9 @@ notification ou de bulletins sans déranger les étudiants ou les collègues).
Pour cela, aller sur la page *Paramétrage*, tout en bas, et indiquer une
*Adresse de test*. Ne pas oublier de l'enlever une fois les essais effectués !
!!! note "Voir aussi"
- Pour la configuration des messages envoyés par ScoDoc, la page [Configuration des envois d'emails](ConfigEmail.md)
- [Guide administrateur ScoDoc](GuideAdminSys.md)
- [Contacts](Contact.md)

View File

@ -1,6 +1,5 @@
# Mise en place de sauvegardes des bases de données ScoDoc 9
# Mise en place de sauvegardes des bases de données ScoDoc 9
Il est ***vivement recommandé*** de mettre en place une stratégie de sauvegarde
permettant de rétablir le service en minimisant les pertes de données à la suite
d'un accident majeur mais probable comme: crash de disque dur, bug, vol du
@ -8,22 +7,22 @@ serveur, incendie...
Nous recommandons d'agir à deux niveaux:
* sauvegarde des bases de données postgresql: dump des bases dans des fichiers.
Le script donné ci-dessous peut se charger de gérer cela.
* sauvegarde des bases de données postgresql: dump des bases dans des fichiers.
Le script donné ci-dessous peut se charger de gérer cela.
* sauvegarde du système complet (et de ses disques durs): la forme dépend de
l'environnement (machine virtuelle ou non...). Dans tous les cas, les données
doivent être sauvegardées dans une salle (voire un bâtiment) différente de
celle abritant le serveur ScoDoc (vols ou incendies). Typiquement, une
sauvegarde quotidienne (nocturne) est suffisante.
* sauvegarde du système complet (et de ses disques durs): la forme dépend de
l'environnement (machine virtuelle ou non...). Dans tous les cas, les données
doivent être sauvegardées dans une salle (voire un bâtiment) différente de
celle abritant le serveur ScoDoc (vols ou incendies). Typiquement, une
sauvegarde quotidienne (nocturne) est suffisante.
Notons que ScoDoc sauvegarde de nombreuses informations sous le répertoire
`/opt/scodoc-data` (en particulier les photos, les documents archivés et divers
réglages): *il est absolument nécessaire de sauvegarder aussi ce répertoire*, en
plus des bases de données SQL.
## Dump des bases de données
## Dump des bases de données
Le script `backup_db9` (fourni dans le répertoire `/opt/scodoc/tools/backups`)
peut être utilisé pour effectuer des sauvegardes automatisées des bases de
données SQL. Les données sont extraites de la base et écrites sur le disque
@ -39,26 +38,29 @@ derniers mois (tout ceci est paramétrable dans le script
Par défaut, les fichiers de sauvegardes sont créés dans le répertoire de
l'utilisateur `postgres` (actuellement `/var/lib/postgresql/`).
En tant que `root` sur le serveur, faire:
```
```bash
# su postgres
# cd
# crontab -e
```
et ajouter:
```
```bash
15 * * * * /opt/scodoc/tools/backups/backup_db9 SCODOC
```
(ScoDoc9 utilise par défaut la base nommée `SCODOC`, adaptez si vous l'avez configuré sur une autre base).
(ScoDoc9 utilise par défaut la base nommée `SCODOC`, adaptez si vous l'avez
configuré sur une autre base).
## 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.
🚸 Attention, certaines informations sont stockées dans des fichiers (sous
`/opt/scodoc-data`) et non dans la base de données: configuration du logiciel,
photos des étudiants, archives des PV, fichiers Apogée, etc. 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
@ -70,23 +72,23 @@ comptes utilisateurs.
`/var/lib/postgresql/SCODOC-BACKUPS``XXX` est concerné. Utiliser par
exemple `ls -lrt` pour visualiser les sauvegardes triées par date.
1. Copier le fichier de sauvegarde choisi et le décomprimer; par exemple:
1. Copier le fichier de sauvegarde choisi et le décomprimer; par exemple:
```
```bash
cp /var/lib/postgresql/SCODOC-BACKUPS/backup.hourly/2021-09-17T19\:15/SCODOC_pgdump.gz /tmp
gunzip /tmp/SCODOC_pgdump.gz
```
3. Recharger la base complète. <img src="/img/alert.png" style="vertical-align:
bottom; margin:0 0 0 0;" alt="/!\" /> Attention, cette opération effacera et
remplacera) le contenu de la base de données actuelle...
```
1. Recharger la base complète. 🚸 Attention, *cette opération effacera et
remplacera le contenu de la base de données actuelle !*
```bash
# en tant que root...
systemctl stop scodoc9 # arret du serveur
su - scodoc
dropdb SCODOC # <<< votre base production
createdb -E UTF-8 SCODOC
pg_restore -d SCODOC /tmp/SCODOC_pgdump.gz # (nom du fichier dump)
pg_restore -d SCODOC /tmp/SCODOC_pgdump # (nom du fichier dump)
source venv/bin/activate
flask db upgrade # nécessaire seulement si sauvegarde ancienne
flask clear-cache
@ -96,12 +98,15 @@ systemctl start scodoc9 # relance ScoDoc
```
## Déplacement de toute une installation
Les scripts ci-dessus ne se chargent que de la base de données SQL.
Pour créer une sauvegarde complète d'une installation, vous pouvez utiliser le
script
```bash
tools/save_scodoc9_data.sh /tmp/sauvegarde-scodoc.tgz
```
Ce script va générer une archive (`tar`, format `.tgz`) contenant non seulement
la base de données SQL mais aussi tous les fichiers générés par votre ScoDoc:
@ -117,10 +122,10 @@ Pour restaurer ce type de sauvegarde, sur une autre machine (ou plus tard sur la
même), transférer le fichier généré (`/tmp/sauvegarde-scodoc.tgz`) dans
l'exemple ci-dessus) et utiliser
```bash
tools/restore_scodoc9_data.sh /tmp/sauvegarde-scodoc.tgz
```
(Note: la sauvegarde s'effectue comme utilisateur `scodoc`, en revanche le
rechargement doit se faire en tant que `root` car il faut évidemment arrêter et
relancer le service).

View File

@ -31,9 +31,14 @@ L'URL complète est de la forme:
Il est nécessaire de disposer d'un compte utilisateur avec les droits adéquats.
Les droits à accorder dépendent des fonctionnalités nécessaires. la permission `ScoView` est généralement suffisante car elle permet toutes les consultations.
Cependant si, par l'API, on veut effectuer des opérations de modification ou encore consulter les comptes utilisateurs, d'autres droits (`ScoChangeGroups`, `ScoUsersView`, `ScoSuperAdmin`, ...) peuvent être requis.
La consultation du [tableau récapitulatif](#tableau-recapitulatif-des-entrees-de-lapi) ou la ligne `permission`de chaque entrée vous donnera la permission requise pour chaque opération.
Les droits à accorder dépendent des fonctionnalités nécessaires. la permission
`ScoView` est généralement suffisante car elle permet toutes les consultations.
Cependant si, par l'API, on veut effectuer des opérations de modification ou
encore consulter les comptes utilisateurs, d'autres droits (`ScoChangeGroups`,
`ScoUsersView`, `ScoSuperAdmin`, ...) peuvent être requis. La consultation du
[tableau récapitulatif](#tableau-recapitulatif-des-entrees-de-lapi) ou la ligne
`permission`de chaque entrée vous donnera la permission requise pour chaque
opération.
En général, il est recommandé de créer un rôle, de lui attribuer les permissions
que l'on veut utiliser, puis de créer un utilisateur ayant ce rôle.
@ -41,7 +46,7 @@ que l'on veut utiliser, puis de créer un utilisateur ayant ce rôle.
En ligne de commande, cela peut se faire comme suit (voir détail des commandes
[sur le guide de configuration](GuideConfig.md)).
```
```bash
# se connecter comme utilisateur scodoc
su - scodoc
@ -69,13 +74,24 @@ Si vous êtes intéressé par le développement, voir
* [la section sur les tests unitaires de l'API](TestsScoDoc.md#tests-de-lapi-scodoc9);
* [la documentation interne](Internals.md#vues-de-lapi-et-permissions).
!!! note
- Si vous utilisez le CAS, pensez à laisser les comptes utilisateurs API se
connecter via ScoDoc sans CAS. Pour cela, cocher l'option
*Autorise connexion via CAS si CAS est activé*
dans leur formulaire de configuration.
- Si l'utilisateur est associé à un département (cas des comptes créés via l'interface Web),
il ne pourra accéder à l'API que via une *route départementale*, c'est à dire une route comprenant
l'acronyme de son département, de la forme `https://...//ScoDoc/DEPARTEMENT/api/...`.
## Essais avec HTTPie
[HTTPie](https://httpie.io/) est un client universel livre et gratuit très commode, disponible
pour Windows, Linux, en ligne de commande ou interface graphique.
Exemple d'utilisation en ligne de commande et interroger votre ScoDoc pour obtenir la
liste des départements:
Exemple d'utilisation en ligne de commande et interroger votre ScoDoc pour
obtenir la liste des départements:
```bash
http -a USER:PASSWORD POST 'http://localhost:5000/ScoDoc/api/tokens'
@ -129,10 +145,12 @@ version de ScoDoc 9.3.25.
### Accès à l'API REST
L'API est accessible à l'adresse: `https://scodoc.monsite.tld/ScoDoc/api/<fonction>`,
et aussi `https://scodoc.monsite.tld/ScoDoc/<dept_acronyme>/api/<fonction>` pour un
accès avec des droits restreints au département indiqué.
(<fonction> à choisir dans [Référence](#reference).)
L'API est accessible à l'adresse:
`https://scodoc.monsite.tld/ScoDoc/api/<fonction>`, et aussi via les *routes
départementales* de la forme
`https://scodoc.monsite.tld/ScoDoc/<dept_acronyme>/api/<fonction>` pour un accès
avec des droits restreints au département indiqué. La liste des `<fonctions>` est
donnée ci-dessous dans [Référence](#reference).
#### Authentification
@ -223,8 +241,8 @@ Ce tableau est trié selon le type des informations renvoyées:
* suivi de `:` puis d'un nom en majuscule indique une requête (POST) qui modifie
les données de ScoDoc.
| Retour | Remarque | Méthode | Navigation | Permission |
| :---------------------- | :----------------------------------------------------- | ------- | ------------------------------------------------------------------------- | ------------------- |
| Retour | Remarque | Méthode | Navigation | Permission |
|:------------------------|:----------------------------------------|---------|---------------------------------------------------------------------------|---------------------|
| assiduite | une assiduité | GET | [assiduité](#assiduite) | ScoView |
| assiduite**`*`** | liste d'assiduités d'un étudiant | GET | [assiduités](#assiduites) | ScoView |
| assiduite**`*`** | liste d'assiduités d'un formsemestre | GET | [assiduités-formsemestre](#assiduites-formsemestre) | ScoView |
@ -240,73 +258,75 @@ Ce tableau est trié selon le type des informations renvoyées:
| justificatif:IMPORT | importation de fichier justificatif | POST | [justificatif-import](#justificatif-import) | ScoJustifChange |
| justificatif:EXPORT | exportation de fichier justificatif | POST | [justificatif-export](#justificatif-export) | ScoJustifChange |
| justificatif:REMOVE | suppression de fichier justificatif | POST | [justificatif-remove](#justificatif-remove) | ScoJustifChange |
| departement**`*`** | tous les depts | GET | [departements](#departements) | |
| departement**`#`** | tous les ids des depts | GET | [departements-ids](#departements-ids) | ScoView |
| departement | recherche par id | GET | [departement](#departement) | ScoView |
| departement | recherche par acronyme | GET | [departement](#departement) | ScoView |
| departement:CREATE | création d'un département | POST | [departement-create](#departement-create) | ScoSuperAdmin |
| departement:EDIT | modification d'un département | POST | [departement-edit](#departement-edit) | ScoSuperAdmin |
| departementDELETE | suppression d'un département | POST | [departement-delete](#departement-delete) | ScoSuperAdmin |
| formation**`*`** | toutes les formations accessibles | GET | [formations](#formations) | ScoView |
| formation**`#`** | ids des formations accessibles | GET | [formations-ids](#formations-ids) | ScoView |
| formation | une formation | GET | [formation](#formation) | ScoView |
| export | | GET | [formation-export](#formation-export) | ScoView |
| export**`+`** | | GET | [formation-export_with_ids](#formation-export_with_ids) | ScoView |
| referentiel_competences | | GET | [formation-referenciel_competences](#formation-referenciel_competences) | ScoView |
| formsemestre**`#`** | | GET | [departement-formsemestres_ids](#departement-formsemestres_ids) | ScoView |
| formsemestre**`*`** | | GET | [departement-formsemestres_courants](#departement-formsemestres_courants) | ScoView |
| formsemestre**`*`** | | GET | [formsemestre-query](#formsemestre-query) | ScoView |
| formsemestre**`*`** | | GET | [etudiant-formsemestres](#etudiant-formsemestres) | ScoView |
| formsemestre | | GET | [formsemestre](#formsemestre) | ScoView |
| moduleimpl | | GET | [moduleimpl](#moduleimpl) | ScoView |
| partition**`*`** | | GET | [formsemestre-partitions](#formsemestre-partitions) | ScoView |
| partition | | GET | [partition](#partition) | ScoView |
| partition:CREATE | | POST | [formsemestre-partition-create](#formsemestre-partition-create) | ScoEtudChangeGroups |
| partition:EDIT | | POST | [partition-edit](#partition-edit) | ScoEtudChangeGroups |
| partition:ACTION | | POST | [formsemestre-partitions-order](#formsemestre-partitions-order) | ScoEtudChangeGroups |
| partition:DELETE | | POST | [partition-delete](#partition-delete) | ScoEtudChangeGroups |
| partition:ACTION | | POST | [partition-remove_etudiant](#partition-remove_etudiant) | ScoEtudChangeGroups |
| group:CREATE | | POST | [partition-group-create](#partition-group-create) | ScoEtudChangeGroups |
| group:EDIT | | POST | [group-edit](#group-edit) | ScoEtudChangeGroups |
| group:ACTION | | POST | [partition-groups-order](#partition-groups-order) | ScoEtudChangeGroups |
| group:DELETE | | POST | [group-delete](#group-delete) | ScoEtudChangeGroups |
| group* | | GET | [etudiant-formsemestre-groups](#etudiant-formsemestre-groups) | ScoView |
| group:ACTION | | POST | [group-set_etudiant](#group-set_etudiant) | ScoEtudChangeGroups |
| group:ACTION | | POST | [group-remove_etudiant](#group-remove_etudiant) | ScoEtudChangeGroups |
| etudiant**`*`** | recherche par etudid, nip ou ine | GET | [etudiants-clef](#etudiants-clef) | ScoView |
| etudiant**`*`** | les étudiants actuels | GET | [etudiants-courant](#etudiants-courant) | ScoView |
| etudiant**`*`** | | GET | [departement-etudiants](#departement-etudiants) | ScoView |
| etudiant**`*`** | | GET | [formsemestre-etudiants](#formsemestre-etudiants) | ScoView |
| etudiant**`*`** | | GET | [formsemestre-etudiants-query](#formsemestre-etudiants-query) | ScoView |
| etudiant**`*`** | | GET | [group-etudiants-query](#group-etudiants) | ScoView |
| etudiant**`*`** | | GET | [group-etudiants-query](#group-etudiants-query) | |
| etudiant | | GET | [etudiant](#etudiant) | ScoView |
| bulletin**`*`** | | GET | [formsemestre-bulletin](#formsemestre-bulletin) | ScoView |
| bulletin | | GET | [etudiant-formsemestre-bulletin](#etudiant-formsemestre-bulletin) | ScoView |
| programme | | GET | [formsemestre-programme](#formsemestre-programme) | ScoView |
| | | GET | [formsemestre-etat_evals](#formsemestre-etat_evals) | ScoView |
| | | GET | [formsemestre-resultats](#formsemestre-resultats) | ScoView |
| jury | | GET | [formsemestre-decisions_jury](#formsemestre-decisions_jury) | ScoView |
| note* | | GET | [evaluation-notes](#evaluation-notes) | ScoView |
| logo**`*`** | | GET | [logos](#logos) | ScoSuperAdmin |
| logo**`*`** | | GET | [departement-logos](#departement-logos) | ScoSuperAdmin |
| logo | | GET | [logo](#logo) | ScoSuperAdmin |
| logo | | GET | [departement-logo](#departement-logo) | ScoSuperAdmin |
| user | | GET | [user](#user) | ScoUsView |
| user**`*`** | | GET | [users-query](#users-query) | ScoUsView |
| user:CREATE | | POST | [user-create](#user-create) | ScoUserAdmin |
| user:EDIT | | POST | [user-edit](#user-edit) | ScoUserAdmin |
| user:PASSWORD | change le mot de passe d'un utilisateur | POST | [user-password](#user-password) | ScoUserAdmin |
| user:ACTION | | POST | [user-role-add](#user-role-add) | ScoUserAdmin |
| user:ACTION | | POST | [user-role-remove](#user-role-remove) | ScoUserAdmin |
| permission**`*`** | | GET | [permissions](#permissions) | ScoUsView |
| role**`*`** | | GET | [roles](#roles) | ScoUsView |
| role**`*`** | | GET | [role](#role) | ScoUsView |
| role:ACTION | | POST | [role-add_permission](#role-add_permission) | ScoUserAdmin |
| role:ACTION | | POST | [role-remove_permission](#role-remove_permission) | ScoUserAdmin |
| role:CREATE | | POST | [role-create](#role-create) | ScoUserAdmin |
| role:EDIT | | POST | [role-edit](#role-edit) | ScoUserAdmin |
| role:DELETE | | POST | [role-delete](#role-delete) | ScoUserAdmin |
| departement**`*`** | tous les depts | GET | [departements](#departements) | |
| departement**`#`** | tous les ids des depts | GET | [departements-ids](#departements-ids) | ScoView |
| departement | recherche par id | GET | [departement](#departement) | ScoView |
| departement | recherche par acronyme | GET | [departement](#departement) | ScoView |
| departement:CREATE | création d'un département | POST | [departement-create](#departement-create) | ScoSuperAdmin |
| departement:EDIT | modification d'un département | POST | [departement-edit](#departement-edit) | ScoSuperAdmin |
| departement:DELETE | suppression d'un département | POST | [departement-delete](#departement-delete) | ScoSuperAdmin |
| formation**`*`** | toutes les formations accessibles | GET | [formations](#formations) | ScoView |
| formation**`#`** | ids des formations accessibles | GET | [formations-ids](#formations-ids) | ScoView |
| formation | une formation | GET | [formation](#formation) | ScoView |
| export | | GET | [formation-export](#formation-export) | ScoView |
| export**`+`** | | GET | [formation-export_with_ids](#formation-export_with_ids) | ScoView |
| referentiel_competences | | GET | [formation-referenciel_competences](#formation-referenciel_competences) | ScoView |
| formsemestre**`#`** | | GET | [departement-formsemestres_ids](#departement-formsemestres_ids) | ScoView |
| formsemestre**`*`** | | GET | [departement-formsemestres_courants](#departement-formsemestres_courants) | ScoView |
| formsemestre**`*`** | | GET | [formsemestre-query](#formsemestre-query) | ScoView |
| formsemestre**`*`** | | GET | [etudiant-formsemestres](#etudiant-formsemestres) | ScoView |
| formsemestre | | GET | [formsemestre](#formsemestre) | ScoView |
| moduleimpl | | GET | [moduleimpl](#moduleimpl) | ScoView |
| partition**`*`** | | GET | [formsemestre-partitions](#formsemestre-partitions) | ScoView |
| partition | | GET | [partition](#partition) | ScoView |
| partition:CREATE | | POST | [formsemestre-partition-create](#formsemestre-partition-create) | ScoEtudChangeGroups |
| partition:EDIT | | POST | [partition-edit](#partition-edit) | ScoEtudChangeGroups |
| partition:ACTION | | POST | [formsemestre-partitions-order](#formsemestre-partitions-order) | ScoEtudChangeGroups |
| partition:DELETE | | POST | [partition-delete](#partition-delete) | ScoEtudChangeGroups |
| partition:ACTION | | POST | [partition-remove_etudiant](#partition-remove_etudiant) | ScoEtudChangeGroups |
| group:CREATE | | POST | [partition-group-create](#partition-group-create) | ScoEtudChangeGroups |
| group:EDIT | | POST | [group-edit](#group-edit) | ScoEtudChangeGroups |
| group:ACTION | | POST | [partition-groups-order](#partition-groups-order) | ScoEtudChangeGroups |
| group:DELETE | | POST | [group-delete](#group-delete) | ScoEtudChangeGroups |
| group* | | GET | [etudiant-formsemestre-groups](#etudiant-formsemestre-groups) | ScoView |
| group:ACTION | | POST | [group-set_etudiant](#group-set_etudiant) | ScoEtudChangeGroups |
| group:ACTION | | POST | [group-remove_etudiant](#group-remove_etudiant) | ScoEtudChangeGroups |
| etudiant**`*`** | recherche par etudid, nip ou ine | GET | [etudiants-clef](#etudiants-clef) | ScoView |
| etudiant**`*`** | les étudiants actuels | GET | [etudiants-courant](#etudiants-courant) | ScoView |
| etudiant**`*`** | étudiants dont le nom commence par | GET | [etudiants-name](#etudiants-name) | ScoView |
| etudiant**`*`** | | GET | [departement-etudiants](#departement-etudiants) | ScoView |
| etudiant**`*`** | | GET | [formsemestre-etudiants](#formsemestre-etudiants) | ScoView |
| etudiant**`*`** | | GET | [formsemestre-etudiants-query](#formsemestre-etudiants-query) | ScoView |
| etudiant**`*`** | | GET | [group-etudiants-query](#group-etudiants) | ScoView |
| etudiant**`*`** | | GET | [group-etudiants-query](#group-etudiants-query) |
| etudiant | | GET | [etudiant](#etudiant) | ScoView |
| bulletin**`*`** | | GET | [formsemestre-bulletin](#formsemestre-bulletin) | ScoView |
| bulletin | | GET | [etudiant-formsemestre-bulletin](#etudiant-formsemestre-bulletin) | ScoView |
| programme | | GET | [formsemestre-programme](#formsemestre-programme) | ScoView |
| | | GET | [formsemestre-etat_evals](#formsemestre-etat_evals) | ScoView |
| | | GET | [formsemestre-resultats](#formsemestre-resultats) | ScoView |
| jury | | GET | [formsemestre-decisions_jury](#formsemestre-decisions_jury) | ScoView |
| note* | | GET | [evaluation-notes](#evaluation-notes) | ScoView |
| | | GET | [evaluation-notes-set](#evaluation-notes-set) | (contextuelle) |
| logo**`*`** | | GET | [logos](#logos) | ScoSuperAdmin |
| logo**`*`** | | GET | [departement-logos](#departement-logos) | ScoSuperAdmin |
| logo | | GET | [logo](#logo) | ScoSuperAdmin |
| logo | | GET | [departement-logo](#departement-logo) | ScoSuperAdmin |
| user | | GET | [user](#user) | ScoUsView |
| user**`*`** | | GET | [users-query](#users-query) | ScoUsView |
| user:CREATE | | POST | [user-create](#user-create) | ScoUserAdmin |
| user:EDIT | | POST | [user-edit](#user-edit) | ScoUserAdmin |
| user:PASSWORD | change le mot de passe d'un utilisateur | POST | [user-password](#user-password) | ScoUserAdmin |
| user:ACTION | | POST | [user-role-add](#user-role-add) | ScoUserAdmin |
| user:ACTION | | POST | [user-role-remove](#user-role-remove) | ScoUserAdmin |
| permission**`*`** | | GET | [permissions](#permissions) | ScoUsView |
| role**`*`** | | GET | [roles](#roles) | ScoUsView |
| role**`*`** | | GET | [role](#role) | ScoUsView |
| role:ACTION | | POST | [role-add_permission](#role-add_permission) | ScoUserAdmin |
| role:ACTION | | POST | [role-remove_permission](#role-remove_permission) | ScoUserAdmin |
| role:CREATE | | POST | [role-create](#role-create) | ScoUserAdmin |
| role:EDIT | | POST | [role-edit](#role-edit) | ScoUserAdmin |
| role:DELETE | | POST | [role-delete](#role-delete) | ScoUserAdmin |
#### Note sur les exemples d'utilisation
@ -320,13 +340,14 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
#### Structure Département
| attribut | type | commentaire |
|:-----------------|:--------|:---------------------------------------|
| *id* | int | identifiant unique |
| *acronym* | string | acronyme du département (fixe et unique) |
| *descripton* | string | |
| *visible* | bool | affiché ou non dans la page d'accueil |
| *date_creation* | string | date ISO |
| attribut | type | commentaire |
|:----------------|:--------|:-----------------------------------------|
| _acronym_ | string | acronyme du département (fixe et unique) |
| _date_creation_ | string | date ISO |
| _dept_name_ | string | Nom complet du département |
| _descripton_ | string | |
| _id_ | int | identifiant unique |
| _visible_ | bool | affiché ou non dans la page d'accueil |
#### **departements**
@ -405,40 +426,52 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
#### Structure Etudiant
| attribut | type | commentaire |
|:-----------------|:--------------------|:---------------------------------|
| *id* | int | id unique |
| *code_nip* | string | non unique! |
| *code_ine* | string | non unique! |
| *dept_id* | | |
| *civilite* | string | "M", "F" ou "X" |
| *nom* | string | en majuscule |
| *nom_usuel* | string | null si absent |
| *prenom* | string | |
| *sort_key* | [ string, string ] | nom-prenom pour trier |
| | | **Format long** |
| *date_naissance* | string | date ISO |
| *email* | string | |
| *emailperso* | string | |
| *admission* | admission | |
| *adresses* | adresse* | |
| *boursier* | | |
| *dept_acronym* | string | |
| *dept_id* | string | département du lieu de naissance |
| *lieu_naissance* | string | lieu de naissance (ville) |
| *nationalite* | string | |
| *photo_filename* | string | |
| *scodoc7_id* | string | de la forme 'EID9999' |
| *statut* | string | 'I', 'D' ou 'X' |
| attribut | type | commentaire |
|:----------------------|:------------------------------|:------------------------------------------------------------|
| _civilite_ | string | '`M`', '`F`' ou '`X`' [[1]](DonneesEtudiant.md) |
| _civilite_etat_civil_ | string | '`M`', '`F`' ou '`X`' [[1]](DonneesEtudiant.md) |
| _code_ine_ | string | non unique! |
| _code_nip_ | string | non unique! |
| _dept_id_ | string | id du département scodoc |
| _id_ | int | id unique |
| _nom_ | string | en majuscule [[1]](DonneesEtudiant.md) |
| _nom_usuel_ | string | null si absent [[1]](DonneesEtudiant.md) |
| _prenom_ | string | [[1]](DonneesEtudiant.md) |
| _prenom_etat_civil_ | string | (si prenom d'usage <> etat_civil [[1]](DonneesEtudiant.md)) |
| _sort_key_ | [ string, string ] | nom-prenom pour trier |
| | | **Format long** |
| _admission_ | admission | |
| _adresses_ | [adresse](#structure-adresse) | |
| _boursier_ | bool | |
| _date_naissance_ | string | date ISO |
| _dept_acronym_ | string | |
| _dept_naissance_ | string | département du lieu de naissance |
| _lieu_naissance_ | string | lieu de naissance (ville) |
| _nationalite_ | string | |
| _photo_filename_ | string | |
| _scodoc7_id_ | string | de la forme 'EID9999' |
| _statut_ | string | '`I`', '`D`' ou '`X`' |
##### Structure adresse
| attribut | type | commentaire |
|:----------------------------|:-------|:------------|
| codepostaldomicile | string | |
| description | string | |
| domicile | string | |
| email | string | |
| emailperso | string | |
| etudid | string | |
| fax | string | |
| id | string | |
| paysdomicile | string | |
| telephone | string | |
| telephonemobile | string | |
| typeadresse | string | |
| villedomicile | string | |
#### **`etudiants`** (supprimé)
* **Méthode:** GET
* **Routes:** `/etudiants
* **Exemple d'utilisation:** `/api/etudiants`
* **Résultat:** Liste complète de tous les étudiants (passés ou présents) pour
lequel l'utilisateur a la permission ScoView.
* **Exemple de résultat:** [etudiants.json] (samples/sample_etudiants.json.md)
#### **`etudiants-courants`**
@ -460,7 +493,7 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
* **Paramètres:** `etudid`, `nip`, `ine`
* **Routes:** `/etudiants/etudid/<int:etudid>` ou `/etudiants/nip/<string:nip>` ou `/etudiants/ine/<string:ine>`
* **Exemple d'utilisation:** `/api/etudiants/nip/1`
* **Résultat:** Info sur le ou les étudiants correspondants.
* **Résultat:** Infos sur le ou les étudiants correspondants.
Comme [`/etudiant`](ScoDoc9API.md#etudiant) mais renvoie toujours une liste.
Si non trouvé, liste vide, pas d'erreur.
Dans 99% des cas, la liste contient un seul étudiant, mais si l'étudiant a
@ -468,6 +501,19 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
dept.).
* **Exemple de résultat:** [etudiants-clef.json](samples/sample_etudiants-clef.json.md)
#### **`etudiants-name`**
* **Méthode:** GET
* **Permission: `ScoView`**
* **Paramètres:** `name`
* **Routes:** `/etudiants/name/<string:name>`
* **Exemple d'utilisation:** `/api/etudiants/name/dup`
* **Résultat:** Liste ordonnée par nom d'étudiants dont le nom commence par
`name`. Si `name`est trop court (2 caractères), liste vide. La casse et les
accents ne sont pas pris en compte dans la recherche.
* **Note:** Cette fonction est utilisée pour la complétion des champs de formulaire
(choix d'un étudiant).
#### **departement-etudiants**
* **Méthode:** GET
@ -544,20 +590,20 @@ Pour uniformiser les résultats des exemples, ceux sont soumis à quelques post-
#### Structure Formation
| attribut | type | commentaire |
|:----------------------------|:------------|:--------------------------------------------------|
| *dept_id* | int | *redondant avec departement.id ?* |
| *acronyme* | string | |
| *titre* | string | *URL encoded ?* |
| *version* | int | |
| *type_parcours* | int | |
| *referentiel_competence_id* | int | null si pas de référentiel associé |
| *id* | int | id unique de formation |
| *titre_officiel* | string | |
| *formation_code* | string | défini la compatibilité avec d'autres formations |
| *code_specialité* | string | |
| *departement* | Département | _pour `/formations` mais pas pour `/formation` ?_ |
| *formation_id* | | *redondant avec id ?* |
| attribut | type | commentaire |
|:----------------------------|:-----------------------------------------------|:--------------------------------------------------|
| _acronyme_ | string | |
| _code_specialité_ | string | |
| _departement_ | [Département](#structure-departement) | _pour `/formations` mais pas pour `/formation` ?_ |
| _dept_id_ | int | _redondant avec departement.id ?_ |
| _formation_code_ | string | défini la compatibilité avec d'autres formations |
| _formation_id_ | | _redondant avec id ?_ |
| _id_ | int | id unique de formation |
| _referentiel_competence_id_ | int | null si pas de référentiel associé |
| _titre_ | string | _URL encoded ?_ |
| _titre_officiel_ | string | |
| _type_parcours_ | int | |
| _version_ | int | |
#### **`formations`**
@ -615,40 +661,41 @@ informatique de 2014 en formation initiale (FI).
#### Structure Formsemestre
| attribut | type | commentaire |
|:----------------------------|:------------|:-----------------------------------------------|
| _**id**_ | int | id unique |
| _**formsemestre_id**_ | int | identification unique |
| _**semestre_id**_ | int | rang du semestre 1, ... |
| _**elt_annee_apo**_ | ??? | |
| _**titre**_ | string | |
| _**titre_court**_ | string | |
| _**titre_num**_ | string | |
| _**session_id**_ | string | cf. Note sur les identifiants de formsemestre |
| _**block_moyennes**_ | bool | inhibe le calcul des moyennes |
| _**scodoc7_id**_ | int | |
| _**date_debut**_ | date | |
| _**date_fin**_ | date | |
| _**gestion_semestrielles**_ | bool | |
| _**gestion_compensation**_ | bool | |
| _**bul_bgcolor**_ | string | Couleur (CSS) de fond du bulletin |
| _**etat**_ | bool | |
| _**dept_id**_ | int | |
| _**modalite**_ | string | "FI", "FA", ... |
| _**bul_hide_xml**_ | bool | |
| _**resp_can_change_ens**_ | bool | |
| _**resp_can_edit**_ | bool | |
| _**ens_can_edit_eval**_ | bool | |
| _**elt_sem_apo**_ | string | |
| _**parcours**_ | ???? | |
| _**annee_scolaire**_ | int | |
| _**date_debut_iso**_ | string | |
| _**date_fin_iso**_ | string | |
| _**departement**_ | Département | |
| _**etape_apo**_ | string | |
| _**formation_id**_ | int | |
| _**formation**_ | Formation | |
| _**responsables**_ | int* | liste des ids des enseignants responsables |
| attribut | type | commentaire |
|:------------------------------|:------------|:-----------------------------------------------|
| _**annee_scolaire**_ | int | |
| _**block_moyenne_generale**_ | bool | |
| _**block_moyennes**_ | bool | inhibe le calcul des moyennes |
| _**bul_bgcolor**_ | string | Couleur (CSS) de fond du bulletin |
| _**bul_hide_xml**_ | bool | |
| _**date_debut**_ | date | |
| _**date_debut_iso**_ | string | |
| _**date_fin**_ | date | |
| _**date_fin_iso**_ | string | |
| _**departement**_ | Département | |
| _**dept_id**_ | int | |
| _**elt_annee_apo**_ | ??? | |
| _**elt_sem_apo**_ | string | |
| _**ens_can_edit_eval**_ | bool | |
| _**etape_apo**_ | string | |
| _**etat**_ | bool | |
| _**formation**_ | Formation | |
| _**formation_id**_ | int | |
| _**formsemestre_id**_ | int | identification unique |
| _**gestion_compensation**_ | bool | |
| _**gestion_semestrielles**_ | bool | |
| _**id**_ | int | id unique |
| _**modalite**_ | string | "FI", "FA", ... |
| _**parcours**_ | ???? | |
| _**resp_can_change_ens**_ | bool | |
| _**resp_can_edit**_ | bool | |
| _**responsables**_ | int* | liste des ids des enseignants responsables |
| _**scodoc7_id**_ | int | |
| _**semestre_id**_ | int | rang du semestre 1, ... |
| _**session_id**_ | string | cf. Note sur les identifiants de formsemestre |
| _**titre**_ | string | |
| _**titre_court**_ | string | |
| _**titre_num**_ | string | |
#### **departement-formsemestres_ids**
@ -663,7 +710,7 @@ informatique de 2014 en formation initiale (FI).
département donné.
* **Exemple de résultat:** [departement-formsemestres_ids.json](samples/sample_departement-formsemestres_ids.json.md)
#### **departement-formsemestres-courants**
#### **departement-formsemestres_courants**
* **Méthode:** GET
* **Permission: `ScoView`**
@ -823,14 +870,14 @@ responsable et ses enseignants). La liste des moduleimpl d'un formsemestre peut
| attribut | type | commentaire |
|:-----------------------|:-------|:-------------------------------------------------|
| _**id**_ | int | identifiant unique |
| _**responsable_id**_ | int | id du responsable de module |
| _**computation_expr**_ | string | unused |
| _**module_id**_ | int | id du module |
| _**formsemestre_id**_ | int | id du formsemestre |
| _**moduleimpl_id**_ | int | ***redondance id*? |
| _**ens**_ | User# | liste des ids des enseignants du moduleimpl |
| _**formsemestre_id**_ | int | id du formsemestre |
| _**id**_ | int | identifiant unique |
| _**module**_ | Module | |
| _**module_id**_ | int | id du module |
| _**moduleimpl_id**_ | int | _**redondance id_? |
| _**responsable_id**_ | int | id du responsable de module |
#### **`moduleimpl`**
@ -852,14 +899,14 @@ d'un nombre quelconque de groupes d'étudiants.
| attribut | type | commentaire |
|:----------------------|:-------|:-----------------------------------|
| _**id**_ | int | identifiant unique |
| _**partition_name**_ | string | nom de la partition |
| _**numero**_ | int | |
| _**bul_show_rank**_ | | affichage sur bulletin |
| _**groups_editable**_ | bool | verrou (liste des groupes) |
| _**formsemestre_id**_ | int | formsemestre hôte |
| _**show_in_lists**_ | bool | |
| _**groups**_ | Group* | liste des groupes de la partition |
| _**groups_editable**_ | bool | verrou (liste des groupes) |
| _**id**_ | int | identifiant unique |
| _**numero**_ | int | |
| _**partition_name**_ | string | nom de la partition |
| _**show_in_lists**_ | bool | |
#### **`formsemestre-partitions`**
@ -1143,6 +1190,9 @@ d'un autre).
### **API Bulletin, Évaluations, Notes**
Attention, les bulletins ne sont publiés sur l'API que si l'option "*publier le
bulletin sur le portail étudiant*" est cochée dans le semestre concerné.
#### **formsemestre-bulletins**
* **Méthode:** GET
@ -1170,9 +1220,11 @@ mais pas JSON compliant à cause des `NaN`.
* **Paramètres:** `formsemestre_id`, `etudid`, `nip`, `ine`
* **Query string:** `format`
* **Routes:**
`/etudiant/etudid/<int:etudid>/formsemestre/<int:formsemestre_id>/bulletin[/<string:version>][/pdf]`
ou `/etudiant/nip/<string:nip>/formsemestre/<int:formsemestre_id>/bulletin[/<string:version>][/pdf]`
ou `/etudiant/ine/<string:ine>/formsemestre/<int:formsemestre_id>/bulletin[/<string:version>][/pdf]`
`/etudiant/etudid/<int:etudid>/formsemestre/<int:formsemestre_id>/bulletin[/<string:version>][/pdf][/pdf/nosig]`
ou `/etudiant/nip/<string:nip>/formsemestre/<int:formsemestre_id>/bulletin[/<string:version>][/pdf][/pdf/nosig]`
ou
`/etudiant/ine/<string:ine>/formsemestre/<int:formsemestre_id>/bulletin[/<string:version>][/pdf][/pdf/nosig]`
* **Exemple d'utilisation:** `/etudiant/nip/1/formsemestre/1/bulletin`
* **Résultat:** Bulletin de l'étudiant dans le formsemestre.
Deux variantes possibles:
@ -1190,6 +1242,13 @@ mais pas JSON compliant à cause des `NaN`.
"*Afficher les matières sur les bulletins*" est activée pour le formsemestre
considéré (sinon, la note vaut toujours "*nd*"). `
Les versions PDF sont par défaut identiques à celles servies dans ScoDoc. Avec
l'option `/pdf/nosig`, les signatures en fin de bulletin sont omises.
Attention, les bulletins ne sont publiés sur l'API que si l'option "*publier le
bulletin sur le portail étudiant*" est cochée dans le semestre concerné.
* **Exemple de résultat:** [etudiant-formsemestre-bulletin.json](samples/sample_etudiant-formsemestre-bulletin.json.md)
#### **formsemestre-programme**
@ -1237,7 +1296,7 @@ valeurs numériques mais pas JSON compliant à cause des `NaN`.
moduleimpl (quel que soit leur statut).
* **Exemple de résultat:** [moduleimpl-evaluations.json](samples/sample_moduleimpl-evaluations.json.md)
#### **`evaluations-notes`**
#### **`evaluation-notes`**
* **Méthode**: GET
* **Permission: `ScoView`**
@ -1249,6 +1308,32 @@ valeurs numériques mais pas JSON compliant à cause des `NaN`.
des chaînes de caractères: ABS, EXC, DEM, ...
* **Exemple de résultat:** [evaluation-notes.json](samples/sample_evaluation-notes.json.md)
#### **`evaluation-notes-set`**
* **Méthode**: POST
* **Permission**: droit de saisir des notes dans cette évaluation
* **Paramètres**: `evaluation_id`
* **Routes:** `/evaluation/<int:evaluation_id>/notes/set`
* **Contenu:** les notes à enregistrer dans l'évaluation. Les valeurs sont
"brutes", entre 0 et `note_max`(barème de l'évaluation), EXC, ABS, SUPR...
```json
{
'notes' : [ [etudid, value], ... ],
'comment' : optional string
}
```
* **Résultat:** json avec
```json
{
"etudids_changed": [ etudids dont la note a été modifiée ],
"etudids_with_decision": [ etudids ayant une décision de jury à vérifier ],
"history_menu": [ html utilisé par la page de saisie ],
}
```
#### **formsemestre-etat_evals**
* **Méthode:** GET
@ -1804,7 +1889,7 @@ 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)
**Février 2023: L'ancienne API ScoDoc 7 n'est plus documentée et plus disponible.**
Afin de garantir l'interopérabilité avec les clients ScoDoc 7 (ENT, etc), les
fonctions suivantes sont disponibles avec le mécanisme d'authentification
@ -1829,4 +1914,11 @@ en POST.
Note:
* `Absences/listeBillets` est un formulaire et ne fait pas partie de l'API.
- `Absences/listeBillets` est un formulaire et ne fait pas partie de l'API.
!!! note "Voir aussi"
- [Guide configuration et ligne de commande](GuideConfig.md)
- [Guide administrateur ScoDoc](GuideAdminSys.md)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

View File

@ -1,921 +0,0 @@
# API pour ScoDoc 7
L'API ScoDoc permet à des applications tierces d'interroger ScoDoc. Elle offre un accès aux informations aux formats XML et JSON.
Cette API est encore incomplète: n'hésitez pas à demander de nouveaux accès en écrivant à la liste de diffusion.
L'ancienne API, un peu désordonnée, est décrite sur [ServicesXml](ServicesXml.md).
Chaque fonction d'accès (`*_list` et autres) prend un paramètre `format` qui indique le format de données désiré: `json` ou `xml` .
Les objets ScoDoc manipulables sont identifiés par des id, garantis uniques au sein d'un même département (mais pas au delà, car chaque département a sa base de données séparée).
* formation_id: un programme de formation (page "programmes");
* ue_id: une UE dans un programme;
* matiere_id: une matière dans un programme;
* module_id: un module dans un programme.
L'URL complète est de la forme: `https://scodoc.example.com/ScoDoc/DEPT/Scolarite/Notes/fonction``DEPT`est le département et `fonction` la fonction appelée.
Un exemple d'utilisation de l'API en PHP pour publier les bulletins de notes sur un site externe pour les étudiants est disponible ici: source:/trunk/misc/PublicationBulletins/ExemplePHP
# Fonctions d'accès aux données
## Départements
* **`list_depts`**
* Paramètres: `viewable` (optionnel, si faux liste aussi les départements non accessible à l'utilisateur courant), `format` (json, xml)
* Résultat: liste des id de départements.
## Programmes de formations
* **`formation_list`**
* Paramètres: `formation_id` (optionnel, si absent liste toutes les formations)
* Résultat: liste de formations.
* **`formation_export`**
* Paramètres: `formation_id`, `export_ids` (défaut "faux")
* Résultat: la formation, avec UE, matières, modules (un arbre).
## 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`.
* **`formsemestre_list`**
* Paramètres (tous optionnels): `formsemestre_id`, `formation_id`, `etape_apo`, `etape_apo2`
* Résultat: liste des semestres correspondant.
* Exemple: `formsemestre_list?format=xml&etape_apo=V1RT`
Note sur les identifiants de sessions: 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 notamment pour interfacer ScoDoc à d'autres logiciels (eg gestion d'emplois du temps ou de services d'enseignement). Cet identifiant est constitué des informations suivantes:
* Département (RT, GEII, INFO...) (= paramètre `DeptName`, en majuscules)
* Nom parcours: DUT, LP, ... (défini au niveau du parcours dans ScoDoc = NAME)
* Modalité: FI, FC, FA
* "Spécialité" : S1 (ou S1D pour les sem. décalés), ou le `code_specialite` si pas de semestres. Le code spécialité est un champ (libre) nouveau dans la "formation" (programme pédagogique).
* Année: année de début de l'année scolaire correspondante (eg 2014 pour une session appartenant à l'année scolaire 2014-2015, même si elle commence en mars 2015).
Exemple: `INFO-DUT-FI-S1-2014` : semestre S1 d'un DUT informatique de 2014 en formation initiale (FI)
## Groupes et partitions
L'ensemble des étudiants d'un semestre peut être réparti selon une ou plusieurs partitions (types de groupes). Chaque partition est constituée d'un nombre quelconque de groupes d'étudiants.
* **`formsemestre_partition_list`**
* Paramètres: `formsemestre_id`
* Résultat:
* Exemple: ici au format JSON
```
[
{
"formsemestre_id": "SEM12781",
"partition_id": "P23840",
"partition_name": "TD"
"group": [
{
"formsemestre_id": "SEM12781",
"partition_id": "P23840",
"group_name": "A",
"group_id": "G23841",
"partition_name": "TD"
},
{
"formsemestre_id": "SEM12781",
"partition_id": "P23840",
"group_name": "B",
"group_id": "G23843",
"partition_name": "TD"
},
],
},
{
"formsemestre_id": "SEM12781",
"partition_id": "P23941",
"partition_name": "TP"
"group": [
{
"formsemestre_id": "SEM12781",
"partition_id": "P23941",
"group_name": "A1",
"group_id": "G23942",
"partition_name": "TP"
},
{
"formsemestre_id": "SEM12781",
"partition_id": "P23941",
"group_name": "A2",
"group_id": "G23943",
"partition_name": "TP"
},
],
},
{
"formsemestre_id": "SEM12781",
"partition_id": "P22833",
"partition_name": null
"group": [
{
"formsemestre_id": "SEM12781",
"partition_id": "P22833",
"group_name": null,
"group_id": "G22834",
"partition_name": null
}
],
}
]
```
* **`groups_view`**
* Paramètres: `formsemestre_id `ou `group_ids` (peut être répété), `with_codes=0|1`, `all_groups=0|1`, `etat=None|I`
* Résultat: liste des étudiants dans un groupe.
* Exemple: ici au format XML avec `with_codes=1`:
```
<group_list origin="" caption="soit 21 étudiants inscrits et 2 démissionaires." id="gt_711068">
<etud>
<nom value="TOTO"/>
<prenom value="Marc"/>
<etat value="I"/>
<email value="toto@example.com"/>
<etudid value="EID9876"/>
<code_nip value="987654"/>
<code_ine value=""/>
</etud>
<etud>
<nom value="ALVIS SAMOS"/>
<prenom value="NATHALIE"/>
<etat value="I"/>
<email value="xxx@example.com"/>
<etudid value="EID12345"/>
<code_nip value="12345678"/>
<code_ine value=""/>
</etud>
</group_list>
```
Et un autre exemple en format JSON:
```
[
{
"etat":"I",
"emailperso":null,
"prenom":"Dalil",
"nom_disp":"CLINTO",
"email":"xxx@example.com",
"P62029":"A",
"P62032":null,
"P62031":"G1",
"P62030":"A1"
},
{
"etat":"I",
"emailperso":null,
"prenom":"Georges",
"nom_disp":"BUSH",
"email":"bush@example.com",
"P62029":"A",
"P62032":null,
"P62031":"G1",
"P62030":"A1"
},
...
]
```
## Etudiants
* **`etud_info`**
* Paramètres: `etudid` ou `code_nip` ou `code_ine`
* Résultat: informations sur cette étudiant et les semestres dans lesquels il est (ou a été) inscrit.
* Exemple: `etud_info?format=json&etudid=12345`
```
{
"nom": "Mutis",
"sexe": "M.",
"email": "alvaro.mutis@example.com",
"prenom": "ALVARO",
"nomprenom": "M. Alvaro MUTIS",
"insemestre": [
{
"etat": "I",
"formsemestre_id": "SEM12781",
"date_fin": "2010-07-30",
"date_debut": "2010-01-25"
},
{
"etat": "I",
"formsemestre_id": "SEM8396",
"date_fin": "2009-01-16",
"date_debut": "2008-09-01"
}
],
"code_ine": "",
"etudid": "EID8768",
"code_nip": "10991002",
"photo_url": "/ScoDoc/static/photos/F13/RT_EID8768.h90.jpg",
"domicile": "2 Rue Madame",
"villedomicile": "Paris",
"telephonemobile": ""
"fax": "",
"annee_bac": "2010",
"bac": "S",
"specialite": "SCIENTIFIQUE",
"nomlycee": "",
"villelycee": "",
"codelycee": "0950650R",
"codepostallycee": "",
}
```
## Bulletins de notes
* **`Notes/formsemestre_bulletinetud`**
* Paramètres: `formsemestre_id`, `etudid`, `format` (`xml`ou `json`), `version` (`short`, `selectedevals`ou `long`)
* Résultat: bulletin de notes
* Exemple: ici au format JSON, pour une version courte (`version=short`)
```
{
"rang": {
"ninscrits": 52,
"value": "1"
},
"etape_apo2": "",
"etape_apo3": "",
"etape_apo4": "",
"etudiant": {
"nom": "BOLANO",
"prenom": "Roberto",
"sexe": "M.",
"code_ine": "",
"etudid": "EID9860",
"code_nip": "123456789",
"email": "roberto@santateresa.mx",
"photo_url": "\/ScoDoc\/static\/photos\/F68\/RT_EID29960.h90.jpg"
},
"bonus_sport_culture": {
"value": 0
},
"absences": {
"nbabsjust": 0,
"nbabs": 1
},
"decision": {
"etat": "I",
"code": "ADM",
"compense_formsemestre_id" : "SEM12345" /* si ce semestre en compense un autre */
},
"note": {
"max": "15.51",
"moy": "10.80",
"value": "15.51",
"min": "07.29"
},
"etudid": "EID9860",
"decision_ue": [
{
"acronyme": "UE11",
"code": "ADM",
"ects": "16.0",
"titre": "D\u00e9couverte m\u00e9tiers",
"numero": "11",
"ue_id": "UE21456"
},
{
"acronyme": "UE12",
"code": "ADM",
"ects": "14.0",
"titre": "Mise \u00e0 niveau des comp\u00e9tences transversales et scientifiques",
"numero": "12",
"ue_id": "UE21478"
}
],
"ue_capitalisee": [
],
"publie": 1,
"autorisation_inscription": [
{
"semestre_id": 2
}
],
"appreciation": [
],
"note_max": {
"value": 20
},
"date": "2014-07-12T17:38:47.693262",
"rang_group": [
{
"ninscrits": 26,
"value": "1",
"group_type": "TD",
"group_name": "B"
},
{
"ninscrits": 13,
"value": "1",
"group_type": "TP",
"group_name": "B1"
},
{
"ninscrits": 4,
"value": "1",
"group_type": "G",
"group_name": "G4"
},
{
"ninscrits": "",
"value": "",
"group_type": "tutorat",
"group_name": ""
},
{
"ninscrits": "",
"value": "",
"group_type": "App",
"group_name": ""
},
{
"ninscrits": "",
"value": "",
"group_type": "sport",
"group_name": ""
}
],
"formsemestre_id": "SEM12345",
"etape_apo": "V1RT",
"ue": [
{
"acronyme": "UE11",
"rang": "1",
"code_apogee": "VRTU11",
"ects": "16",
"numero": "11",
"note": {
"max": "16.17",
"value": "16.17",
"min": "06.56"
},
"module": [
{
"coefficient": 3,
"rang": {
"value": "1"
},
"code": "M1101",
"code_apogee": "VRT1101",
"numero": 1101,
"note": {
"moy": "08.94",
"nb_notes": 51,
"nb_missing": 0,
"max": "19.18",
"min": "03.70",
"nb_valid_evals": 3,
"value": "19.18"
},
"abbrev": "R\u00e9seaux d&apos;entreprises",
"effectif": {
"value": 51
},
"titre": "Initiation aux r\u00e9seaux d&apos;entreprises",
"evaluation": [
],
"id": "MIP27427"
},
{
"coefficient": 2,
"rang": {
"value": "2"
},
"code": "M1102",
"code_apogee": "VRT1102",
"numero": 1102,
"note": {
"moy": "12.58",
"nb_notes": 50,
"nb_missing": 1,
"max": "16.79",
"min": "02.50",
"nb_valid_evals": 2,
"value": "16.50"
},
"abbrev": "Initiation \u00e0 la t\u00e9l\u00e9phonie",
"effectif": {
"value": 51
},
"titre": "Initiation \u00e0 la t\u00e9l\u00e9phonie d&apos;entreprise",
"evaluation": [
],
"id": "MIP27437"
},
{
"coefficient": 1.5,
"rang": {
"value": "1"
},
"code": "M1103",
"code_apogee": "VRT1103",
"numero": 1103,
"note": {
"moy": "08.26",
"nb_notes": 51,
"nb_missing": 0,
"max": "13.41",
"min": "00.94",
"nb_valid_evals": 2,
"value": "13.41"
},
"abbrev": "Architecture des \u00e9quipements informatiques",
"effectif": {
"value": 51
},
"titre": "Architecture des \u00e9quipements informatiques",
"evaluation": [
],
"id": "MIP27451"
},
{
"coefficient": 2,
"rang": {
"value": "1"
},
"code": "M1104",
"code_apogee": "VRT1104",
"numero": 1104,
"note": {
"moy": "10.77",
"nb_notes": 51,
"nb_missing": 0,
"max": "17.90",
"min": "04.63",
"nb_valid_evals": 3,
"value": "17.90"
},
"abbrev": "Principe et architecture des r\u00e9seaux",
"effectif": {
"value": 51
},
"titre": "Principe et architecture des r\u00e9seaux",
"evaluation": [
],
"id": "MIP27431"
},
{
"coefficient": 2,
"rang": {
"value": "1"
},
"code": "M1105",
"code_apogee": "VRT1105",
"numero": 1105,
"note": {
"moy": "11.00",
"nb_notes": 51,
"nb_missing": 0,
"max": "17.83",
"min": "04.98",
"nb_valid_evals": 2,
"value": "17.83"
},
"abbrev": "Bases des syst\u00e8mes d&apos;exploitation",
"effectif": {
"value": 51
},
"titre": "Bases des syst\u00e8mes d&apos;exploitation",
"evaluation": [
],
"id": "MIP27433"
},
{
"coefficient": 1.5,
"rang": {
"value": "6"
},
"code": "M1106",
"code_apogee": "VRT1106",
"numero": 1106,
"note": {
"moy": "13.05",
"nb_notes": 51,
"nb_missing": 0,
"max": "17.79",
"min": "07.08",
"nb_valid_evals": 1,
"value": "16.25"
},
"abbrev": "Initiation au d\u00e9veloppement Web",
"effectif": {
"value": 51
},
"titre": "Initiation au d\u00e9veloppement Web",
"evaluation": [
],
"id": "MIP27449"
},
{
"coefficient": 1.5,
"rang": {
"value": "9"
},
"code": "M1107",
"code_apogee": "VRT1107",
"numero": 1107,
"note": {
"moy": "09.36",
"nb_notes": 51,
"nb_missing": 0,
"max": "14.21",
"min": "04.17",
"nb_valid_evals": 3,
"value": "11.66"
},
"abbrev": "Initiation \u00e0 la mesure du signal",
"effectif": {
"value": 51
},
"titre": "Initiation \u00e0 la mesure du signal",
"evaluation": [
],
"id": "MIP27440"
},
{
"coefficient": 1.5,
"rang": {
"value": "7"
},
"code": "M1108",
"code_apogee": "VRT1108",
"numero": 1108,
"note": {
"moy": "10.49",
"nb_notes": 51,
"nb_missing": 0,
"max": "16.31",
"min": "05.39",
"nb_valid_evals": 4,
"value": "13.22"
},
"abbrev": "Acquisition et codage de l&apos;information",
"effectif": {
"value": 51
},
"titre": "Acquisition et codage de l&apos;information",
"evaluation": [
],
"id": "MIP27453"
},
{
"coefficient": 1,
"rang": {
"value": "4 ex"
},
"code": "M1109",
"code_apogee": "VRT1109",
"numero": 1109,
"note": {
"moy": "12.46",
"nb_notes": 51,
"nb_missing": 0,
"max": "16.00",
"min": "09.00",
"nb_valid_evals": 1,
"value": "15.00"
},
"abbrev": "PT : Recherche documentaire",
"effectif": {
"value": 51
},
"titre": "PT : Recherche documentaire",
"evaluation": [
],
"id": "MIP27444"
}
],
"effectif": "51",
"titre": "D\u00e9couverte m\u00e9tiers",
"id": "UE21456"
},
{
"acronyme": "UE12",
"rang": "5",
"code_apogee": "VRTU12",
"ects": "14",
"numero": "12",
"note": {
"max": "15.20",
"value": "14.63",
"min": "07.94"
},
"module": [
{
"coefficient": 2,
"rang": {
"value": "3 ex"
},
"code": "M1201",
"code_apogee": "VRT1201",
"numero": 10,
"note": {
"moy": "13.02",
"nb_notes": 51,
"nb_missing": 0,
"max": "16.00",
"min": "10.00",
"nb_valid_evals": 1,
"value": "14.00"
},
"abbrev": "Anglais",
"effectif": {
"value": 51
},
"titre": "Anglais g\u00e9n\u00e9ral de communication et initiation au vocabulaire technique",
"evaluation": [
],
"id": "MIP27430"
},
{
"coefficient": 2,
"rang": {
"value": "16 ex"
},
"code": "M1202",
"code_apogee": "VRT1202",
"numero": 20,
"note": {
"moy": "12.74",
"nb_notes": 51,
"nb_missing": 0,
"max": "17.75",
"min": "04.00",
"nb_valid_evals": 2,
"value": "14.00"
},
"abbrev": "Expression",
"effectif": {
"value": 51
},
"titre": "EC: \u00c9l\u00e9ments fondamentaux de la communication",
"evaluation": [
],
"id": "MIP27439"
},
{
"coefficient": 1,
"rang": {
"value": "1 ex"
},
"code": "M1203",
"code_apogee": "VRT1203",
"numero": 30,
"note": {
"moy": "NA",
"nb_notes": 0,
"nb_missing": 51,
"max": "-",
"min": "-",
"nb_valid_evals": 0,
"value": "-"
},
"abbrev": "PPP: Connaitre son champ d&apos;activit\u00e9",
"effectif": {
"value": 51
},
"titre": "PPP: Connaitre son champ d&apos;activit\u00e9",
"evaluation": [
],
"id": "MIP27436"
},
{
"coefficient": 2,
"rang": {
"value": "6"
},
"code": "M1204",
"code_apogee": "VRT1204",
"numero": 40,
"note": {
"moy": "10.66",
"nb_notes": 51,
"nb_missing": 0,
"max": "16.35",
"min": "05.73",
"nb_valid_evals": 8,
"value": "14.09"
},
"abbrev": "Mise \u00e0 niveau en num\u00e9ration et calculs",
"effectif": {
"value": 51
},
"titre": "Mise \u00e0 niveau en num\u00e9ration et calculs",
"evaluation": [
],
"id": "MIP27454"
},
{
"coefficient": 2,
"rang": {
"value": "23"
},
"code": "M1205",
"code_apogee": "VRT1205",
"numero": 50,
"note": {
"moy": "10.37",
"nb_notes": 51,
"nb_missing": 0,
"max": "18.69",
"min": "05.01",
"nb_valid_evals": 5,
"value": "10.58"
},
"abbrev": "Connaissances et Outils pour le signal",
"effectif": {
"value": 51
},
"titre": "Harmonisation des connaissances et des outils pour le signal",
"evaluation": [
],
"id": "MIP27432"
},
{
"coefficient": 2,
"rang": {
"value": "3 ex"
},
"code": "M1206",
"code_apogee": "VRT1206",
"numero": 60,
"note": {
"moy": "11.22",
"nb_notes": 51,
"nb_missing": 0,
"max": "16.76",
"min": "03.91",
"nb_valid_evals": 6,
"value": "15.12"
},
"abbrev": "Circuits \u00e9lectroniques : mise \u00e0 niveau",
"effectif": {
"value": 51
},
"titre": "Circuits \u00e9lectroniques : mise \u00e0 niveau",
"evaluation": [
],
"id": "MIP27435"
},
{
"coefficient": 2,
"rang": {
"value": "1 ex"
},
"code": "M1207",
"code_apogee": "VRT1207",
"numero": 70,
"note": {
"moy": "08.39",
"nb_notes": 51,
"nb_missing": 0,
"max": "20.00",
"min": "00.00",
"nb_valid_evals": 1,
"value": "20.00"
},
"abbrev": "Programmation 1",
"effectif": {
"value": 51
},
"titre": "Bases de la programmation",
"evaluation": [
],
"id": "MIP27445"
},
{
"coefficient": 1,
"rang": {
"value": "1 ex"
},
"code": "M1208",
"code_apogee": "VRT1208",
"numero": 80,
"note": {
"moy": "NA",
"nb_notes": 0,
"nb_missing": 51,
"max": "-",
"min": "-",
"nb_valid_evals": 0,
"value": "-"
},
"abbrev": "M\u00e9thodologie Universitaire 1",
"effectif": {
"value": 51
},
"titre": "Adaptation et m\u00e9thodologie pour la r\u00e9ussite Universitaire",
"evaluation": [
],
"id": "MIP27434"
}
],
"effectif": "51",
"titre": "Mise \u00e0 niveau des comp\u00e9tences transversales et scientifiques",
"id": "UE21478"
},
{
"acronyme": "UE 1S",
"rang": "1 ex",
"code_apogee": "",
"ects": "0",
"numero": "13",
"note": {
"max": "00.00",
"value": "00.00",
"min": "00.00"
},
"module": [
],
"effectif": "51",
"titre": "Sport &amp;amp; Culture",
"id": "UE23716"
}
],
"situation": "Inscrit le 02\/09\/2015. D\u00e9cision jury: Valid\u00e9. UE acquises: UE11, UE12. Autoris\u00e9 \u00e0 s&apos;inscrire en S2."
}
```
## Absences
* **`Absences/ListeAbsEtud`**
* Paramètres: `etudid, absjust_only, format`. `absjust_only` spécifie si on veut les absences justifiées ou non.
* Résultat: liste d'absences. Exemple:
```{jour: "2021-02-10", ampm: "0", description: "M2202", }```
(`ampm` vaut 1 le matin et 0 l'après-midi).
* **`Absences/doSignaleAbsence`**
* Paramètres: ```datedebut, datefin, moduleimpl_id=None, demijournee=2, estjust=False,description, etudid```
* Résultat: *html*
* Remarques: dates au format `dd/mm/yyyy`. Date de fin non incluse. `demijournee`: 2 si journée complète, 1 matin, 0 après-midi.
* **`Absences/doAnnuleAbsence`**
* Paramètres: ```datedebut, datefin, demijournee, etudid```
* Résultat: *html*
* **`Absences/doAnnuleJustif`**
* Paramètres: ```context, datedebut0, datefin0, demijournee```
* Résultat: *html*
* **`Absences/EtatAbsencesGr`**
* Liste les absences d'un ou plusieurs groupes entre deux dates.
* Paramètres: ```group_ids, debut, fin, with_boursier=True, format=html```
* Résultat: liste des absences. Si `format="json"`, cela donne par exemple:
```[ {
boursier: "N",
nbabs: "9",
nbabsjust: "2",
nbabsnonjust: "7",
nbjustifs_noabs: "0",
nomprenom: "Mme Poisson Dodouce",
etudid: "EID12345"
},
...
]```
* Remarque: on peut spécifier plusieurs groupes.
## Modules
Fonctions retirées en 9.3.28: [voir la nouvelle API](ScoDoc9API.md).
* **`Notes/do_moduleimpl_list`**
* **`Notes/do_moduleimpl_withmodule_list`**
## En savoir plus
Voir exemples d'utilisation de l'API en Python, dans `tests/api/`.

View File

@ -12,6 +12,8 @@ ici:
[SCODOC_import_notes_dans_apogee.pdf](papers/SCODOC_import_notes_dans_apogee.pdf),
merci à Bérangère Lhoumeau, du service Scolarité de l'IUT de Tarbes.
Voir aussi [cette page pour les aspects spécifiques au BUT](BUTApogee.md).
## Remplissage des fichiers maquette Apogée (CSV)
Solution intégrée à ScoDoc en juillet 2016.

View File

@ -5,27 +5,54 @@ ScoDoc est basé sur Flask, se référer à la doc de Flask pour aller plus loin
On travaille toujours en tant qu'utilisateur `scodoc`, dans le *virtualenv*:
su scodoc # si nécessaire
cd /opt/scodoc
source venv/bin/activate
```bash
su scodoc # si nécessaire
cd /opt/scodoc
source venv/bin/activate
```
## Lancement interactif
flask shell
```bash
flask shell
```
Pour mémoire, un certains nombre de commandes en ligne facilitant la gestion de
Pour mémoire, un certains nombre de commandes en ligne facilitant la gestion de
ScoDoc sont disponibles, afficher la liste avec
flask --help
```bash
flask --help
```
## Tests unitaires
On utilise `pytest`. Ainsi, la commande
pytest tests/unit
```bash
pytest tests/unit
```
lance l'ensemble des tests unitaires.
Ces tests sont lancés automatiquement avant la création du paquet Debian
(release).
Rappelons quelques options utiles de `pytest`: `-x` permet de s'arrêter sur la
première erreur, et `--pdb` lance directement le debugger sur l'erreur.
Ainsi,
```bash
pytest --pdb -x tests/api/test_api_departements.py
```
lancera un test en mode "interactif", utile pour les mises au point.
Et pour lancer un seul test:
```bash
pytest -x --pdb tests/unit/test_but_cursus.py::test_refcomp_niveaux_info
```
### Création de la base de données pour les tests unitaires
```bash
@ -44,11 +71,15 @@ Un faux portail "apogée" pour inscrire de faux étudiants avec photos. Utile po
Le code se trouve dans `tools/fakeportal/`.
Le serveur écoute par défaut sur `tcp/8678`. Il faudra paramétrer l'URL du "portail" dans les préférences du ScoDoc à tester, qui est en général sur le même hôte, donc `http://localhost:8678`.
Le serveur écoute par défaut sur `tcp/8678`. Il faudra paramétrer l'URL du
"portail" dans les préférences du ScoDoc à tester, qui est en général sur le
même hôte, donc `http://localhost:8678`.
Lancement:
/opt/scodoc/tools/fakeportal/fakeportal.py
```bash
/opt/scodoc/tools/fakeportal/fakeportal.py
```
## Tests de l'API ScoDoc9
@ -58,14 +89,23 @@ peu différent de celui des tests unitaire: on test un *client* de l'API. Il fau
donc un serveur, tournant sur la même machine ou sur une machine distante. Ce
serveur doit avoir été configuré avec des données de test.
### TL;DR
Si votre installation de développement est bien configurée, il suffit de lancer
```bash
tools/test_api.sh
```
### Configuration du serveur pour tester l'API
1. modifier `/opt/scodoc/.env` pour indiquer
1. modifier `/opt/scodoc/.env` pour indiquer
```bash
FLASK_ENV=test_api
FLASK_DEBUG=1
```
1. En tant qu'utilisateur scodoc, lancer:
1. En tant qu'utilisateur scodoc, lancer:
```bash
tools/create_database.sh --drop SCODOC_TEST_API
flask db upgrade
@ -75,9 +115,10 @@ serveur doit avoir été configuré avec des données de test.
Ces commandes vont effacer la base `SCODOC_TEST_API` si elle existe, la
recréer, mettre à jour le schéma pour la dernière version de ScoDoc installée,
l'initialiser et la peupler de données fictives pour les tests.
3. Relancer ScoDoc:
1. Relancer ScoDoc:
```bash
flask run --host 0.0.0.0
flask run --host 0.0.0.0 --debug
```
### Configuration du client de test API
@ -88,9 +129,10 @@ l'initialiser et la peupler de données fictives pour les tests.
votre serveur).
Normalement, il est suffisant d'indiquer l'URL de votre serveur. Si le
client de test est sur la même machine que le serveur ScoDoc, c'est simplement:
```bash
SCODOC_URL="http://localhost:5000/"
```
```bash
SCODOC_URL="http://localhost:5000/"
```
### Lancement des tests de l'API
@ -101,11 +143,3 @@ le client (qui peut être un autre shell de la même machine, bien sûr).
cd /opt/scodoc/
pytest tests/api/test_api_xxx.py # remplacer xxx par votre test
```
Rappelons quelques options utiles de `pytest`: `-x` permet de s'arrêter sur la
première erreur, et `--pdb` lance directement le débuggueur sur l'erreur.
Ainsi,
```bash
pytest --pdb -x tests/api/test_api_departements.py
```
lancera un test en mode "interactif", utile pour les mises au point.

View File

@ -58,15 +58,14 @@ A ce stade, le semestre est terminé. Il est recommandé de le **verrouiller** a
6. (optionnel) Répartir les étudiants dans des groupes de TD (*Inscriptions / Modifier les groupes*).
C'est prêt. Les enseignants autorisés peuvent créer des évaluations et saisir des notes.
## Problèmes couramment rencontrés
- **Etudiants en doubles**: ceci arrive lorsqu'on crée manuellement les étudiants. Il faut absolument éviter de créer un étudiant qui existe déjà, sinon on perd la possibilité de suivre le parcours de chacun. Le respect de la procédure ci-dessus garanti normalement que les étudiants restent uniques. N'utiliser *créer un nouvel étudiant* qu'après vous être assuré qu'il n'était pas déjà inscrit dans un autre semestre, et que l'on sait que l'on ne va pas l'importer depuis Apogée.
- **Etudiants en doubles**: ceci arrive lorsqu'on crée manuellement les étudiants. Il faut absolument éviter de créer un étudiant qui existe déjà, sinon on perd la possibilité de suivre le parcours de chacun. Le respect de la procédure ci-dessus garanti normalement que les étudiants restent uniques. N'utiliser *créer un nouvel étudiant* qu'après vous être assuré qu'il n'était pas déjà inscrit dans un autre semestre, et que l'on sait que l'on ne va pas l'importer depuis Apogée.
- **Désinscription d'un étudiant**: si vous avez inscrit par erreur un étudiant dans un semestre, ce n'est pas grave: vous pouvez le désinscrire en utilisant le menu *Scolarité / désinscrire* sur sa fiche individuelle (à droite du nom du semestre concerné).
- **Désinscription d'un étudiant**: si vous avez inscrit par erreur un étudiant dans un semestre, ce n'est pas grave: vous pouvez le désinscrire en utilisant le menu *Scolarité / désinscrire* sur sa fiche individuelle (à droite du nom du semestre concerné).
- **Aucun étudiant à inscrire**: cela peut arriver si les dates de semestres sont incorrectes (chevauchement): en particulier, vérifier que la date de début du nouveau semestre est bien postérieure à la date de fin des semestres d'où proviennent les étudiants à inscrire.
- **Aucun étudiant à inscrire**: cela peut arriver si les dates de semestres sont incorrectes (chevauchement): en particulier, vérifier que la date de début du nouveau semestre est bien postérieure à la date de fin des semestres d'où proviennent les étudiants à inscrire.
Pour toutes questions, n'hésitez pas à contacter la liste de diffusion Notes (voir la [page d'information sur les listes](ListesDeDiffusion.md)).
Pour toutes questions, n'hésitez pas à nous contacter (voir la [contacts](Contact.md)).

View File

@ -1,186 +1,197 @@
# Établissements utilisant ScoDoc
Cette page tente de lister les utilisateurs connus de ScoDoc. Le logiciel étant libre, nous ne sommes pas en mesure de dresser une liste exhaustive. Si vous utilisez le logiciel, merci d'envoyer un mail à <emmanuel.viennet@gmail.com>.
Cette page tente de lister les utilisateurs connus de ScoDoc. Le logiciel étant
libre, nous ne sommes pas en mesure de dresser une liste exhaustive. Si vous
utilisez le logiciel, merci d'envoyer un mail à <emmanuel.viennet@gmail.com>.
## Établissements membres de l'association (2020-2021) [liste non à jour]
* [IUT d'Annecy](https://www.iut-acy.univ-smb.fr);
* [IUT d'Annecy](https://www.iut-acy.univ-smb.fr);
* [IUT de Besançon-Vesoul](http://iut-bv.univ-fcomte.fr), depuis 2013;
* [IUT de Besançon-Vesoul](http://iut-bv.univ-fcomte.fr), depuis 2013;
* [IUT de Bordeaux](http://www.iut.u-bordeaux.fr), départements GMP, GEII, GCCD, INFO, MP, HSE, SGM, GLT, GEA;
* [IUT de Bordeaux](http://www.iut.u-bordeaux.fr), départements GMP, GEII, GCCD, INFO, MP, HSE, SGM, GLT, GEA;
* [IUT de Cachan](http://www.iut-cachan.u-psud.fr) (Université Paris-Saclay, depuis 2009);
* [IUT de Cachan](http://www.iut-cachan.u-psud.fr) (Université Paris-Saclay, depuis 2009);
* [IUT de Cergy-Pontoise](http://www.iut.u-cergy.fr) tous les départements (GB, GCCD, GEII x 2, GLT, QLIO, MMI, TC x 2), DUT, LP, années spéciales et FC : plus de 1600 étudiants en 2018, utilise ScoDoc depuis 2015;
* [IUT de Cergy-Pontoise](http://www.iut.u-cergy.fr) tous les départements (GB, GCCD, GEII x 2, GLT, QLIO, MMI, TC x 2), DUT, LP, années spéciales et FC : plus de 1600 étudiants en 2018, utilise ScoDoc depuis 2015;
* [IUT de Chartres](https://www.univ-orleans.fr/iut-chartres/);
* [IUT de Chartres](https://www.univ-orleans.fr/iut-chartres/);
* [IUT1 Grenoble - Alpes](https://iut1.univ-grenoble-alpes.fr): cinq départements (GMP, GTHE, GEII, RT, GCCD), déploiement en 2011;
* [IUT1 Grenoble - Alpes](https://iut1.univ-grenoble-alpes.fr): cinq départements (GMP, GTHE, GEII, RT, GCCD), déploiement en 2011;
* [IUT de Nantes](http://www.iutnantes.univ-nantes.fr/), départements Informatique, GEA, GEII, GMP, GTE, QLIO et SGM (DUT et Licences Pro, depuis 2008);
* [IUT de Nantes](http://www.iutnantes.univ-nantes.fr/), départements Informatique, GEA, GEII, GMP, GTE, QLIO et SGM (DUT et Licences Pro, depuis 2008);
* [IUT d'Orléans](http://www.univ-orleans.fr/iut-orleans/) depuis rentrée 2009, tous les départements (GTE, GEA, GMP, Chimie, QLIO), pour les DUT et LP (environ 1100 étudiants en sept. 2012);
* [IUT d'Orléans](http://www.univ-orleans.fr/iut-orleans/) depuis rentrée 2009, tous les départements (GTE, GEA, GMP, Chimie, QLIO), pour les DUT et LP (environ 1100 étudiants en sept. 2012);
* [IUT de Perpignan](http://www.iut-perpignan.fr) depuis 2013, départements GB, GEA, GIM, GLT sur Perpignan CJ et GCGP sur Narbonne et TC et STID sur Carcassonne;
* [IUT de Perpignan](http://www.iut-perpignan.fr) depuis 2013, départements GB, GEA, GIM, GLT sur Perpignan CJ et GCGP sur Narbonne et TC et STID sur Carcassonne;
* [IUT de Poitiers](http://iutp.univ-poitiers.fr/);
* [IUT de Poitiers](http://iutp.univ-poitiers.fr/);
* [IUT de Vélizy-Rambouillet](https://www.iut-velizy-rambouillet.uvsq.fr/) utilisateur depuis 2009, sur deux sites;
* [IUT de Vélizy-Rambouillet](https://www.iut-velizy-rambouillet.uvsq.fr/) utilisateur depuis 2009, sur deux sites;
* [IUT Sénart-Fontainebleau](http://www.iutsf.u-pec.fr).
* [IUT Sénart-Fontainebleau](http://www.iutsf.u-pec.fr).
* [IUT de Saint-Etienne](http://www.iut.univ-st-etienne.fr/);
* [IUT de Saint-Etienne](http://www.iut.univ-st-etienne.fr/);
### Départements membres de l'association (2020-2021)
* Département d'Informatique de l'IUT d'Aix en Provence;
* Département d'Informatique de l'IUT d'Aix en Provence;
* département Informatique de l'[IUT Grand Ouest Normandie](http://iut-caen.unicaen.fr/presentation/4-sites-geographiques/site-d-ifs-campus-iii/), site d'Ifs;
* département Génie Biologique de l'[IUT de La Roche-sur-Yon](http://www.iutlaroche.univ-nantes.fr/) (utilisateur depuis 2009);
* département Informatique de l'[IUT Grand Ouest Normandie](http://iut-caen.unicaen.fr/presentation/4-sites-geographiques/site-d-ifs-campus-iii/), site d'Ifs;
* département GEA de l'[IUT de Tours](http://iut.univ-tours.fr/);
* départements GIM et GMP de l'[IUT de Mantes](http://www.iut-mantes.uvsq.fr) (Université de Versailles St Quentin en Yvelines).
* département Génie Biologique de l'[IUT de La Roche-sur-Yon](http://www.iutlaroche.univ-nantes.fr/) (utilisateur depuis 2009);
* département Informatique de l'[IUT de Montpellier-Sète](https://iut-montpellier-sete.edu.umontpellier.fr/dut-informatique/)
* département GEA de l'[IUT de Tours](http://iut.univ-tours.fr/);
* départements GIM et GMP de l'[IUT de Mantes](http://www.iut-mantes.uvsq.fr) (Université de Versailles St Quentin en Yvelines).
* département Informatique de l'[IUT de Montpellier-Sète](https://iut-montpellier-sete.edu.umontpellier.fr/dut-informatique/)
### Autres membres
* [IUT de La Rochelle](http://www.iut-larochelle.fr/).
* [IUT de Villetaneuse](http://www.iutv.univ-paris13.fr/) (Université Sorbonne Paris Nord), départements Informatique, CJ, GEA, GEII, R&T, STID Formation Continue (1600 étudiants, depuis 2005);
* [IUT de La Rochelle](http://www.iut-larochelle.fr/).
## IUT utilisateurs
* [IUT d'Aix en Provence (GEII)](http://iut.univ-amu.fr/diplomes/dut-genie-electrique-informatique-industrielle-dut-geii),
(site de Salon);
* [IUT Aix-Marseille](http://iut.univ-amu.fr/), Mesures Physiques (depuis 2012) et Informatique;
* [IUT d'Amiens](http://www.iut-amiens.fr/) tous les départements (6, soit 1850
étudiants), depuis 2014;
* [IUT d'Annecy](https://www.iut-acy.univ-smb.fr);
* [IUT de Villetaneuse](http://www.iutv.univ-paris13.fr/) (Université Sorbonne Paris Nord), départements Informatique, CJ, GEA, GEII, R&T, STID Formation Continue (1600 étudiants, depuis 2005);
* [IUT de Belfort-Montbéliard](http://www.iut-bm.univ-fcomte.fr/) (MP, R&T), depuis 2013;
## IUT utilisateurs ou adhérents
* [IUT de Béthune](http://www.iutbethune.org) (Université d'Artois), tous départements (Chimie, GCCD, GEII, GMP, QLIO et R&T);
* [IUT d'Aix en Provence (GEII)](http://iut.univ-amu.fr/diplomes/dut-genie-electrique-informatique-industrielle-dut-geii),
(site de Salon);
* [IUT de Béziers](http://www.iutbeziers.fr) depuis 2014 (RT, MMI, CS, TC);
* [IUT Aix-Marseille](http://iut.univ-amu.fr/), Mesures Physiques (depuis 2012) et Informatique;
* [IUT de Blagnac](https://www.iut-blagnac.fr/fr/), CS, GIM, INFO, RT + 4 LP ; depuis 2017, environ 600 étudiants/an;
* [IUT d'Amiens](http://www.iut-amiens.fr/) tous les départements (6, soit 1850
étudiants), depuis 2014;
* [IUT de Bordeaux](http://www.iut.u-bordeaux.fr), départements GMP, GEII, GCCD, INFO, MP, HSE, SGM, MLT, GEA;
* [IUT d'Annecy](https://www.iut-acy.univ-smb.fr);
* [IUT de Brest](http://www.iut-brest.fr) depuis 2009, 4 départements (DUT et licences pro) à Brest et 2 à Morlaix, environ 1350 étudiants/an;
* [IUT de Belfort-Montbéliard](http://www.iut-bm.univ-fcomte.fr/) (MP, R&T), depuis 2013;
* [IUT de Bourges](http://www.univ-orleans.fr/iut-bourges/) départements GEA, QLIO, MP, CS, 2 années spéciales et 2 licences pro;
* [IUT de Béthune](http://www.iutbethune.org) (Université d'Artois), tous départements (Chimie, GCCD, GEII, GMP, QLIO et R&T);
* IUT de Calais;
* [IUT de Béziers](http://www.iutbeziers.fr) depuis 2014 (RT, MMI, CS, TC);
* [IUT de Cergy-Pontoise](http://www.iut.u-cergy.fr), tous les départements
(GB, GCCD, GEII x 2, MLT, QLIO, MMI, TC x 2), DUT, LP, années spéciales et FC
: plus de 1600 étudiants en 2018, utilise ScoDoc depuis 2015;
* [IUT de Colmar](http://www.iutcolmar.uha.fr) (Université de Haute Alsace), département R&T et GB (depuis 2006);
* [IUT de Blagnac](https://www.iut-blagnac.fr/fr/), CS, GIM, INFO, RT + 4 LP ; depuis 2017, environ 600 étudiants/an;
* [IUT d'Évry Val dEssonne](http://www.iut-evry.fr), départements GMP, QLIO,
SGM, GEA et MLT;
* [IUT de Bordeaux](http://www.iut.u-bordeaux.fr), départements GMP, GEII, GCCD, INFO, MP, HSE, SGM, MLT, GEA;
* IUT de Fontainebleau;
* [IUT de Brest](http://www.iut-brest.fr) depuis 2009, 4 départements (DUT et licences pro) à Brest et 2 à Morlaix, environ 1350 étudiants/an;
* [IUT de Kourou](http://iut.univ-ag.fr/) (Guyane, depuis 2011);
* [IUT de Bourges](http://www.univ-orleans.fr/iut-bourges/) départements GEA, QLIO, MP, CS, 2 années spéciales et 2 licences pro;
* [IUT de l'Indre](http://www.univ-orleans.fr/iut-indre/), départements GEA, GEII, MLT, TC, depuis 2015;
* IUT de Calais;
* [IUT de Lannion](http://www.iut-lannion.fr/), 5 DUT et 5 LP, sur 4 départements;
* [IUT de Cergy-Pontoise](http://www.iut.u-cergy.fr), tous les départements
(GB, GCCD, GEII x 2, MLT, QLIO, MMI, TC x 2), DUT, LP, années spéciales et FC
: plus de 1600 étudiants en 2018, utilise ScoDoc depuis 2015;
* [IUT de La Rochelle](http://www.iut-larochelle.fr/), 5 départements (généralisé en 2017): 1070 étudiants de DUT et 9 LP (180 étudiants);
* [IUT de Colmar](http://www.iutcolmar.uha.fr) (Université de Haute Alsace), département R&T et GB (depuis 2006);
* [IUT de La Roche-sur-Yon](http://www.iutlaroche.univ-nantes.fr/),
départements GEA, IC, R&T, GB et licences pro, soit 550 étudiants/ans depuis
2009;
* [IUT Le Havre](http://www-iut.univ-lehavre.fr/), 10 départements et 3 années spéciales, soit environ 1800 étudiants;
* [IUT d'Évry Val dEssonne](http://www.iut-evry.fr), départements GMP, QLIO,
SGM, GEA et MLT;
* [IUT Le Mans](https://iut.univ-lemans.fr), 4 départements (GEA, CHIMIE, GMP, MP), environ 1000 étudiants;
* IUT de Fontainebleau;
* [IUT A de Lille](http://www-iut.univ-lille1.fr), (depuis 2010) 7
départements;
* [IUT du Littoral Côte d'Opale](http://www.iut.univ-littoral.fr), tous les départements (2018);
* [IUT de Kourou](http://iut.univ-ag.fr/) (Guyane, depuis 2011);
* [IUT de Lorient & Pontivy](http://www-iutlorient.univ-ubs.fr), départements
GTE, GIML, QLIO, GCGP, HSE;
* [IUT de l'Indre](http://www.univ-orleans.fr/iut-indre/), départements GEA, GEII, MLT, TC, depuis 2015;
* [IUT de Mantes](http://www.iut-mantes.uvsq.fr), départements GIM et GMP (Université de Versailles St Quentin en Yvelines);
* [IUT de Lannion](http://www.iut-lannion.fr/), 5 DUT et 5 LP, sur 4 départements;
* [IUT de Marseille](http://iut.univ-amu.fr/), depuis 2007;
* [IUT de La Rochelle](http://www.iut-larochelle.fr/), 5 départements (généralisé en 2017): 1070 étudiants de DUT et 9 LP (180 étudiants);
* [IUT de Metz](http://www.iut.univ-metz.fr), depuis 2011, départements GMP, TC;
* [IUT de La Roche-sur-Yon](http://www.iutlaroche.univ-nantes.fr/),
départements GEA, IC, R&T, GB et licences pro, soit 550 étudiants/ans depuis
2009;
* [IUT Le Havre](http://www-iut.univ-lehavre.fr/), 10 départements et 3 années spéciales, soit environ 1800 étudiants;
* [IUT Le Mans](https://iut.univ-lemans.fr), 4 départements (GEA, CHIMIE, GMP, MP), environ 1000 étudiants;
* [IUT A de Lille](http://www-iut.univ-lille1.fr), (depuis 2010) 7
départements;
* [IUT du Littoral Côte d'Opale](http://www.iut.univ-littoral.fr), tous les départements (2018);
* [IUT de Lorient & Pontivy](http://www-iutlorient.univ-ubs.fr), départements
GTE, GIML, QLIO, GCGP, HSE;
* [IUT de Mantes](http://www.iut-mantes.uvsq.fr), départements GIM et GMP (Université de Versailles St Quentin en Yvelines);
* [IUT de Marseille](http://iut.univ-amu.fr/), depuis 2007;
* [IUT de Metz](http://www.iut.univ-metz.fr), depuis 2011, départements GMP, TC;
* [IUT de Mulhouse](http://www.iutmulhouse.uha.fr/), depuis 2014, départements
GEA, GEII, MLT, GMP;
* [IUT de Mulhouse](http://www.iutmulhouse.uha.fr/), depuis 2014, départements
GEA, GEII, MLT, GMP;
* [IUT de Nantes](http://www.iutnantes.univ-nantes.fr/), départements Informatique, GEA, GEII, GMP, GTE, QLIO et SGM (DUT et Licences Pro, depuis 2008);
* [IUT de Nouvelle Calédonie](https://unc.nc/formation/formation-a-l-iut/linstitut-universitaire-de-technologie/);
* [IUT de Nouvelle Calédonie](https://unc.nc/formation/formation-a-l-iut/linstitut-universitaire-de-technologie/);
* [IUT de Nîmes](https://iut-nimes.edu.umontpellier.fr/), depuis 2019, GEII,
GMP, SGM, et [Polytech Montpellier](https://www.polytech.umontpellier.fr);
* [IUT de Nîmes](https://iut-nimes.edu.umontpellier.fr/), depuis 2019, GEII,
GMP, SGM, et [Polytech Montpellier](https://www.polytech.umontpellier.fr);
* [IUT d'Orléans](http://www.univ-orleans.fr/iut-orleans/), depuis rentrée 2009, tous les départements (GTE, GEA, GMP, Chimie, QLIO), pour les DUT et LP (environ 1100 étudiants en sept. 2012).
* [IUT d'Orléans](http://www.univ-orleans.fr/iut-orleans/), depuis rentrée 2009, tous les départements (GTE, GEA, GMP, Chimie, QLIO), pour les DUT et LP (environ 1100 étudiants en sept. 2012).
* [IUT d'Orsay](https://www.iut-orsay.universite-paris-saclay.fr/);
* [IUT d'Orsay](https://www.iut-orsay.universite-paris-saclay.fr/);
* [IUT Paris Descartes](http://www.iut.parisdescartes.fr);
* [IUT Paris Descartes](http://www.iut.parisdescartes.fr);
* [IUT Paris Diderot](https://universite.univ-paris-diderot.fr/structures/iut-paris-diderot),
Mesures Physiques;
* [IUT Paris Diderot](https://universite.univ-paris-diderot.fr/structures/iut-paris-diderot),
Mesures Physiques;
* [IUT de Perpignan](http://www.iut-perpignan.fr), depuis 2013, départements GB, GEA, GIM, MLT à Perpignan CJ et GCGP à Narbonne et TC et STID à Carcassonne;
* [IUT de Perpignan](http://www.iut-perpignan.fr), depuis 2013, départements GB, GEA, GIM, MLT à Perpignan CJ et GCGP à Narbonne et TC et STID à Carcassonne;
* [IUT de Poitiers](http://iutp.univ-poitiers.fr/);
* [IUT de Poitiers](http://iutp.univ-poitiers.fr/);
* [IUT de Rennes](https://iut-rennes.univ-rennes1.fr/) départements GEII, GMP, Chimie et Génie Civil Construction durable (2015);
* [IUT de Rennes](https://iut-rennes.univ-rennes1.fr/) départements GEII, GMP, Chimie et Génie Civil Construction durable (2015);
* [IUT de Roanne](http://portail.univ-st-etienne.fr/bienvenue/utilitaires/iut-de-roanne-26151.kjsp), dépt. Génie Industriel et Maintenance (GIM), environ 70 étudiants/an (2012);
* [IUT de Roanne](http://portail.univ-st-etienne.fr/bienvenue/utilitaires/iut-de-roanne-26151.kjsp), dépt. Génie Industriel et Maintenance (GIM), environ 70 étudiants/an (2012);
* [IUT de Saint-Denis (Université Sorbonne Paris Nord)](https://iutsd.univ-paris13.fr), départements HSE, GIM, GMP, TC, depuis 2009;
* [IUT de Saint-Denis (Université Sorbonne Paris Nord)](https://iutsd.univ-paris13.fr), départements HSE, GIM, GMP, TC, depuis 2009;
* [IUT de Saint-Dié des Vosges](http://www.iutsd.uhp-nancy.fr) depuis 2009);
* [IUT de Saint-Dié des Vosges](http://www.iutsd.uhp-nancy.fr) depuis 2009);
* [IUT de Saint-Malo](https://iut-stmalo.univ-rennes1.fr/);
* [IUT de Saint-Malo](https://iut-stmalo.univ-rennes1.fr/);
* [IUT de Saint-Nazaire](http://www.iut-sn.univ-nantes.fr/) tous les départements (GLT, GCCD, GIM, GCH, MP, TC) et 8 LP, 1400 étudiants, rentrée 2013. Et aussi Formation Continue, 1 DU PFST, 2 formations DUT par apprentissage (TC et GIM);
* [IUT de Saint-Nazaire](http://www.iut-sn.univ-nantes.fr/) tous les départements (GLT, GCCD, GIM, GCH, MP, TC) et 8 LP, 1400 étudiants, rentrée 2013. Et aussi Formation Continue, 1 DU PFST, 2 formations DUT par apprentissage (TC et GIM);
* [IUT de Tours](http://iut.univ-tours.fr/): départements GEII et TC2A: 450 étudiants/an, 2 DUT, 4 Licences Pro, 1 année spéciale, (ScoDoc depuis 2012);
* [IUT de Tours](http://iut.univ-tours.fr/): départements GEII et TC2A: 450 étudiants/an, 2 DUT, 4 Licences Pro, 1 année spéciale, (ScoDoc depuis 2012);
* [IUT de Tremblay](http://www.iu2t.univ-paris8.fr/) (U. Paris 8, dépt. GIM, 2010);
* [IUT de Tremblay](http://www.iu2t.univ-paris8.fr/) (U. Paris 8, dépt. GIM, 2010);
* [IUT de Valenciennes](https://www.uphf.fr/IUT) 9 départements (en FI, FA, FC) - DUT & 20 LP;
* [IUT de Valenciennes](https://www.uphf.fr/IUT) 9 départements (en FI, FA, FC) - DUT & 20 LP;
* [IUT de Vannes](https://www.iutvannes.fr/) département Informatique (DUT et LP, 200 étudiants) depuis sept. 2014, et GEA (400 étudiants) et TC depuis 2016, STID depuis 2019;
* [IUT de Vannes](https://www.iutvannes.fr/) département Informatique (DUT et LP, 200 étudiants) depuis sept. 2014, et GEA (400 étudiants) et TC depuis 2016, STID depuis 2019;
* [IUT de Vélizy-Rambouillet](https://www.iut-velizy-rambouillet.uvsq.fr/), utilisateur depuis 2009, sur deux sites;
* [IUT de Villetaneuse](http://www.iutv.univ-paris13.fr/), (Université Sorbonne Paris Nord), départements Informatique, CJ, GEA, GEII, R&T, STID Formation Continue (1600 étudiants, depuis 2005);
* [IUT de Vélizy-Rambouillet](https://www.iut-velizy-rambouillet.uvsq.fr/), utilisateur depuis 2009, sur deux sites;
* [IUT de Villeurbanne (Lyon 1)](http://iut.univ-lyon1.fr/), département GEII, environ 220 inscrits/an.
* [IUT de Villetaneuse](http://www.iutv.univ-paris13.fr/), (Université Sorbonne Paris Nord), départements Informatique, CJ, GEA, GEII, R&T, STID Formation Continue (1600 étudiants, depuis 2005);
## Autres établissements utilisateurs (hors IUT)
* Licence de sciences (SPI) à L'Université de Bretagne Occidentale (UBO);
* [IUT de Villeurbanne (Lyon 1)](http://iut.univ-lyon1.fr/), département GEII, environ 220 inscrits/an.
* Masters de sciences, Institut Galilée, Université Sorbonne Paris Nord;
## Autres établissements utilisateurs (hors IUT)
* Master ISB, Université Sorbonne Paris Nord;
* Licence de sciences (SPI) à L'Université de Bretagne Occidentale (UBO);
* [IFAG de Sofia](http://www.ifag.auf.org), Bulgarie (masters administration et
gestion, AUF);
* Masters de sciences, Institut Galilée, Université Sorbonne Paris Nord;
* ILEPS, Cergy-Pontoise.
* Master ISB, Université Sorbonne Paris Nord;
* [Université Catholique d'Afrique Centrale](http://www.ucac-icy.net/) (UCAC, Yaoundé, Cameroun): Licences, Masters (2011);
* [IFAG de Sofia](http://www.ifag.auf.org), Bulgarie (masters administration et
gestion, AUF);
* [École Supérieure des Sciences et Technologies de l'Ingénieur de Nancy](http://www.esstin.univ-lorraine.fr) (jusqu'en 2013);
* ILEPS, Cergy-Pontoise.
* [Université Catholique d'Afrique Centrale](http://www.ucac-icy.net/) (UCAC, Yaoundé, Cameroun): Licences, Masters (2011);
* [École Supérieure des Sciences et Technologies de l'Ingénieur de Nancy](http://www.esstin.univ-lorraine.fr) (jusqu'en 2013);
!!! note "Voir aussi"
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

View File

@ -1,57 +1,112 @@
## Modification d'un programme pédagogique et versions
# Modification d'un programme pédagogique et versions
Un programme pédagogique définit notamment les coefficients des modules qui le
composent. Les semestres qui se réfèrent à ce programme utilisent ces
coefficients pour calculer leurs notes. De même, les noms de UE et modules qui
apparaissent sur les bulletins viennent du programme. Il faut être
particulièrement vigilant lors des modifications du programme pédagogique.
Dans la configuration par défaut, seul le chef de département (rôle Admin) peut
modifier les programmes pédagogiques.
(voir aussi des exemples de programmes en bas de la page
[GuideAdminFormation](GuideAdminFormation.md)).
## Points importants
### Unités d'Enseignement (UE)
Les UE sont destinées à être *capitalisées* (voir
[CapitalisationUE](CapitalisationUE.md)). Par conséquent, une formation en
plusieurs semestres devrait normalement avoir un jeu d'UE différent dans chaque
semestre.
* Il est parfois désirable de capitaliser au sein d'un parcours des UE
appartenant à deux programmes ScoDoc différents (par exemple, on peut avoir
changé de version du programme entre deux semestres, comme expliqué plus
loin). Dans ce cas, il faut attribuer aux programmes le même code de formation
(via le lien "modifier" sur la page d'accueil des programmes), et aussi
attribuer les mêmes codes aux UE (via le lien "modifier l'UE" sur la page
"programme détaillé et semestres").
* Les UE peuvent être de type "normal" ou "Sport&Culture". Ces dernières ne sont
utilisées que pour les notes optionnelles (activités culturelles et sportives)
utilisée dans certains établissements. Elles se voient attribuer une règle de
calcul spécifique qui dépend généralement de l'établissement (il n'y à pas de
règle nationale pour la prise en compte des notes de sport et culture).
Typiquement, la note des UE de ce type spécial agit directement sur la moyenne
générale de l'étudiant.
### Modules
* Le *code* du module va apparaitre sur les bulletins et certains tableaux
récapitulatifs. Il comporte habituellement quelques caractères (comme "MATH",
ou "SPO"). Si la version officielle de votre programme pédagogique n'utilise
pas de codes de ce genre, inventez des codes à la fois courts (pas plus de 4
ou 5 caractères) et évocateurs du nom du module.
* Le *titre* du module apparaitra sur le tableau de bord du semestre et sur les
bulletins.
* L' *abréviation* est une version courte du titre. Si le titre n'est pas trop
long (3 ou 4 mots), copier le. Sinon, inventer une abréviation en quelques
mots qui soit lisible.
* Les volumes horaires ne sont présents que pour information et ne sont
actuellement pas du tout utilisés par ScoDoc: il est donc facultatif de les
indiquer.
* Le coefficient est utilisé pour le calcul de la moyenne d'UE et de la moyenne
générale. Il s'agit d'un nombre réel positif ou nul.
* Choisir dans le menu la *matière* à laquelle appartient le module.
* Le semestre est un nombre indiquant dans quel semestre de la formation se
place habituellement ce module. Il arrive que l'on décline la même formation
selon différentes modalités (formation initiale, continue) avec des placements
différents: dans ce cas, indiquer le semestre dans la modalité "habituelle";
lors de la mise en place d'un semestre, on peut choisir manuellement des
modules de tous les semestres.
### Ordre d'affichage des UE, matières et modules
Chaque élément (UE, matières et modules) possède un attribut *numéro* qui est un
nombre entier utilisé pour le classement des éléments de même niveau dans la
hiérarchie dans les tableaux et bulletins.
Il est conseillé d'attribuer les numéros de 10 en 10 afin de pouvoir plus
facilement insérer un nouvel élément entre deux éléments existants. Par exemple,
si l'on a dans une matière trois modules MA, MB, MC, on va leur attribuer les
numéros 10, 20 et 30.
## Verrouillage et versions
Lorsque au moins l'un des semestres qui se réfèrent à ce programme est
*verrouillé*, il devient impossible de modifier le programme (la page de
présentation du programme ne comporte alors aucun lien). Deux cas peuvent se
présenter:
* il s'agit d'une modification mineure (intitulé d'un module, ...) ne risquant
pas affecter les notes existantes, et il y a peu de semestres verrouillés:
dans ce cas, il est possible d'aller déverrouiller un à un les semestres
concernés, puis d'effectuer la modification du programme avant de
re-verrouiller les semestres.
* il s'agit d'une modification conséquente, on ne ne veut pas affecter les
semestres existants: on crée alors une nouvelle *version* du programme. La
version crée est une copie à l'identique du programme existant, que l'on peut
modifier à sa guise.
Un programme pédagogique définit notamment les coefficients des modules qui le composent. Les semestres qui se réfèrent à ce programme utilisent ces coefficients pour calculer leurs notes. De même, les noms de UE et modules qui apparaissent sur les bulletins viennent du programme. Il faut être particulièrement vigilant lors des modifications du programme pédagogique
!!! note "Voir aussi"
Dans la configuration par défaut, seul le chef de département (rôle Admin) peut modifier les programmes pédagogiques.
(voir aussi des exemples de programmes en bas de la page [GuideAdminFormation](GuideAdminFormation.md)).
### Points importants
#### Unités d'Enseignement (UE)
Les UE sont destinées à être *capitalisées* (voir [CapitalisationUE](CapitalisationUE.md)). Par conséquent, une formation en plusieurs semestres devrait normalement avoir un jeu d'UE différent dans chaque semestre.
* Il est parfois désirable de capitaliser au sein d'un parcours des UE appartenant à deux programmes ScoDoc différents (par exemple, on peut avoir changé de version du programme entre deux semestres, comme expliqué plus loin). Dans ce cas, il faut attribuer aux programmes le même code de formation (via le lien "modifier" sur la page d'accueil des programmes), et aussi attribuer les mêmes codes aux UE (via le lien "modifier l'UE" sur la page "programme détaillé et semestres").
* Les UE peuvent être de type "normal" ou "Sport&Culture". Ces dernières ne sont utilisées que pour les notes optionnelles (activités culturelles et sportives) utilisée dans certains établissements. Elles se voient attribuer une règle de calcul spécifique qui dépend généralement de l'établissement (il n'y à pas de règle nationale pour la prise en compte de snotes de sport et culture). Typiquement, la note des UE de ce type spécial agit directement sur la moyenne générale de l'étudiant.
#### Modules
* Le *code* du module va apparaitre sur les bulletins et certains tableaux récapitulatifs. Il comporte habituellement quelques caractères (comme "MATH", ou "SPO"). Si la version officielle de votre programme pédagogique n'utilise pas de codes de ce genre, inventez des codes à la fois courts (pas plus de 4 ou 5 caractères) et évocateurs du nom du module.
* Le *titre* du module apparaitra sur le tableau de bord du semestre et sur les bulletins.
* L' *abréviation* est une version courte du titre. Si le titre n'est pas trop long (3 ou 4 mots), copier le. Sinon, inventer une abréviation en quelques mots qui soit lisible.
* Les volumes horaires ne sont présents que pour information et ne sont actuellement pas du tout utilisés par ScoDoc: il est donc facultatif de les indiquer.
* Le coefficient est utilisé pour le calcul de la moyenne d'UE et de la moyenne générale. Il s'agit d'un nombre réel positif ou nul.
* Choisir dans le menu la *matière* à laquelle appartient le module.
* Le semestre est un nombre indiquant dans quel semestre de la formation se place habituellement ce module. Il arrive que l'on décline la même formation selon différentes modalités (formation initiale, continue) avec des placements différents: dans ce cas, indiquer le semestre dans la modalité "habituelle"; lors de la mise en place d'un semestre, on peut choisir manuellement des modules de tous les semestres.
#### Ordre d'affichage des UE, matières et modules
Chaque élément (UE, matières et modules) possède un attribut *numéro* qui est un nombre entier utilisé pour le classement des éléments de même niveau dans la hiérarchie dans les tableaux et bulletins.
Il est conseillé d'attribuer les numéros de 10 en 10 afin de pouvoir plus facilement insérer un nouvel élément entre deux éléments existants. Par exemple, si l'on a dans une matière trois modules MA, MB, MC, on va leur attribuer les numéros 10, 20 et 30.
### Verrouillage et versions
Lorsque au moins l'un des semestres qui se réfèrent à ce programme est *verrouillé*, il devient impossible de modifier le programme (la page de présentation du programme ne comporte alors aucun lien). Deux cas peuvent se présenter:
* il s'agit d'une modification mineure (intitulé d'un module, ...) ne risquant pas affecter les notes existantes, et il y a peu de semestres verrouillés: dans ce cas, il est possible d'aller déverrouiller un à un les semestres concernés, puis d'effectuer la modification du programme avant de reverrouiller les semestres.
* il s'agit d'une modification conséquente, on ne ne veut pas affecter les semestres existants: on crée alors une nouvelle *version* du programme. La version crée est une copie à l'identique du programme existant, que l'on peut modifier à sa guise.
- [Guide du responsable de formation](GuideAdminFormation.md)
- [Guide utilisateur](GuideUtilisateur.md)
- [Tutoriels vidéo](https://www.youtube.com/channel/UCb0JYCBRi0CsE4XFp4ByhXg)
- [Gestion des UE Bonus](https://www.youtube.com/watch?v=SVbjuDpq-lI)
- [Mise en place des parcours BUT](https://www.youtube.com/watch?v=OnuOXJo-3ro)
- [Saisie des codes Apogée](https://www.youtube.com/watch?v=MW0nNhbBjDM)
- [Du DUT au BUT: comment transformer un programme](https://www.youtube.com/watch?v=9HizGTvYgck)
- [FAQ](FAQ.md)
- [Contacts](Contact.md)

BIN
docs/fig/config-accueil.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
docs/fig/config-cas-cnx.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

BIN
docs/fig/config-cas.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 256 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 451 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 260 KiB

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 336 KiB

After

Width:  |  Height:  |  Size: 427 KiB

View File

@ -4,18 +4,17 @@
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
- saisie et gestion des notes;
- aide à la décision pour les jurys;
- listes des étudiants (groupes, trombinoscopes, bordereaux divers);
- 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;
- édition des procès-verbaux, bulletins et autres documents liés à la scolarité.
fournit notamment:
- suivi précis de la progression des étudiants, évaluations formatives et
certificatives
- saisie et gestion des notes;
- aide à la décision pour les jurys;
- listes des étudiants (groupes, trombinoscopes, bordereaux divers);
- suivi de l'assiduité (saisie et visualisation des absences);
- tableaux de bord, 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é.
ScoDoc est un *logiciel libre*: vous pouvez [participer à son développement](Contribuer.md).
@ -23,7 +22,7 @@ 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 d'installation sur Debian 11](GuideInstallDebian11.md). La version ScoDoc
9 est parue le 19 septembre 2021, la version 9.3 en juillet 2022. Les mises à jour sont
appliquées très fréquemment.
appliquées très fréquemment.
ScoDoc est utilisé dans de nombreux établissements français et étrangers, **dont
au moins 58 IUT**: [liste des utilisateurs connus de ScoDoc](UtilisateursScoDoc.md).
@ -35,26 +34,29 @@ retourner à `Emmanuel.Viennet at gmail.com`.
## Présentation générale
- [Présentation générale du logiciel avec copies d'écran](PresentationGenerale.md)
- 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 générale du logiciel avec copies d'écran](PresentationGenerale.md)
- 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)
- 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>
- très ancienne présentation au colloque du [CRI-IUT](https://www.criiut.fr/) en 2013: [diapos en pdf](papers/presScoDocCRIIUT2013.pdf)
- Un très très ancien [article sur ScoDoc](papers/scodoc-reunion2007.pdf)
## Communauté d'utilisateurs
- Le Discord des utilisateurs: assistance chat ou audio [rejoindre le salon](https://discord.gg/ybw6ugtFsZ)
- [Listes de diffusion e-mail](ListesDeDiffusion.md)
- 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)
* Déclarer un nouveau ticket: demander un compte sur la liste `scodoc-devel` (lien ci-dessus).
- [Contribuer à ScoDoc](Contribuer.md)
- Le Discord des utilisateurs: assistance chat ou audio [rejoindre le salon](https://discord.gg/ybw6ugtFsZ)
- [contacts: Discord, listes, site](Contact.md)
- [Contribuer à ScoDoc](Contribuer.md)
## Actualités
### ScoDoc 9.4.x
Série en développement, centrés sur la gestion du *Bachelor Universitaire de
technologie* (BUT) mais aussi sur la modernisation du logiciel et sa meilleure
intégration dans les systèmes d'informations universitaires (API, CAS).
### Parution de ScoDoc 9 en 2021-2022
Version majeure, avec une architecture logicielle complètement remaniée. Cette
version modernise l'infrastructure logicielle (maintenant basée sur Python
3/Flask/postgresql) et propose de nombreuses améliorations, notamment pour la
@ -73,17 +75,19 @@ Orléans, LP IUT Villetaneuse):
### Stagiaires
- 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
avec l'association, l'autre à l'IUT de Lille.
- affichage et édition des référentiels de BUT, avec 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
avec l'association, l'autre à l'IUT de Lille.
- affichage et édition des référentiels de BUT, avec un stagiaire de
l'association.
### Nouveaux développeurs
Plusieurs développeurs volontaires, la plupart enseignants en IUT, ont rejoint
l'équipe depuis 2020.
### Bachelor Universitaire de Technologie (BUT) et ScoDoc
ScoDoc évolue pour intégrer la gestion du BUT, en approche par compétences, avec
des situations d'apprentissage et d'évaluation (SAÉs) et des ressources
pédagogiques. ScoDoc n'a pas vocation à devenir un portfolio APC, mais
@ -94,6 +98,7 @@ Des formats de bulletins de notes adaptés sont proposés pour faciliter la
compréhension des résultats par les étudiants et enseignants.
### ScoDoc et Pégase/PC-SCOL
Nous sommes en contact avec l'équipe du projet Pégase/PC-SCOL, qui succédera
dans certaines universités à Apogée. A court et moyen terme, ce nouvel outil ne
rendra pas les mêmes services que ScoDoc. Nous étudions dès maintenant
@ -102,23 +107,24 @@ l'interfaçage des outils (via des API), qui a priori sera plus fluide et facile
entente.
### Feuille de route (roadmap)
Les prochaines versions de ScoDoc :
- ScoDoc 9.5 : début 2023
- ScoDoc 9.5 : printemps 2023
- Nouveau système de suivi de l'assiduité (absences, présences)
- ScoDoc 9.4 : prévue à l'automne 2022
- ScoDoc 9.4 : décembre 2022
- cas complexes posés par les BUT (parcours, tenue des jury)
- nouveaux documents
- ScoDoc 9.3 : publiée en mai 2022
- ScoDoc 9.3 : publiée en mai 2022
- tenue des jurys BUT et exports Apogée
- gestion des parcours (pour la mise en place des semestre)
- nouvelle API
- module "relations entreprises"
- ScoDoc 9.2 : publiée en avril 2022 nouvelles fonctionnalités liées au BUT
- 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
@ -126,7 +132,7 @@ Les prochaines versions de ScoDoc :
- 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
- distinction SAE/ressources
- poids (coefs) des évaluations, affichage, édition
@ -135,12 +141,16 @@ Les prochaines versions de ScoDoc :
- calcul des moyennes d'UE
- bulletin de note v1
- ScoDoc 9.0 : publiée le 19 sept. 2021, version complètement remaniée en
Python 3/Flask.
- ScoDoc 9.0 : publiée le 19 sept. 2021, version complètement remaniée en
Python 3/Flask.
<br>
---
- [Guide utilisateur](GuideUtilisateur.md)
- Page web de l'auteur: <http://www-l2ti.univ-paris13.fr/~viennet>
!!! note "Voir aussi"
- [Guide utilisateur](GuideUtilisateur.md)
- <a href="https://www.youtube.com/playlist?list=PLw49h6RbvswhasBk9bXj7PzOD8GDW3kG1" target="_blank">Tutoriels sur YouTube <img src="/img/tube.png" alt="" style="margin-top:0px; margin-bottom:0px; border-width:0px;"/></a>
- [Contacts](Contact.md).
- Page web de l'auteur: <http://www-l2ti.univ-paris13.fr/~viennet>

Binary file not shown.

Binary file not shown.

View File

@ -4,31 +4,35 @@
```json
[
{
"civilite": "X",
"code_ine": "INE1",
"code_nip": "1",
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "10",
"code_nip": "NIP10",
"dept_id": 1,
"id": 1,
"nom": "COSTA",
"id": 10,
"nom": "BOUTET",
"nom_usuel": null,
"prenom": "SACHA",
"prenom": "MARGUERITE",
"prenom_etat_civil": "",
"sort_key": [
"costa",
"sacha"
"boutet",
"marguerite"
]
},
{
"civilite": "F",
"code_ine": "2",
"code_nip": "NIP2",
"civilite": "M",
"civilite_etat_civil": "X",
"code_ine": "12",
"code_nip": "NIP12",
"dept_id": 1,
"id": 2,
"nom": "NAUDIN",
"id": 12,
"nom": "MOUTON",
"nom_usuel": null,
"prenom": "SIMONE",
"prenom": "CLAUDE",
"prenom_etat_civil": "",
"sort_key": [
"naudin",
"simone"
"mouton",
"claude"
]
},
"..."
@ -39,31 +43,35 @@
```json
[
{
"civilite": "X",
"code_ine": "INE1",
"code_nip": "1",
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "10",
"code_nip": "NIP10",
"dept_id": 1,
"id": 1,
"nom": "COSTA",
"id": 10,
"nom": "BOUTET",
"nom_usuel": null,
"prenom": "SACHA",
"prenom": "MARGUERITE",
"prenom_etat_civil": "",
"sort_key": [
"costa",
"sacha"
"boutet",
"marguerite"
]
},
{
"civilite": "F",
"code_ine": "2",
"code_nip": "NIP2",
"civilite": "M",
"civilite_etat_civil": "X",
"code_ine": "12",
"code_nip": "NIP12",
"dept_id": 1,
"id": 2,
"nom": "NAUDIN",
"id": 12,
"nom": "MOUTON",
"nom_usuel": null,
"prenom": "SIMONE",
"prenom": "CLAUDE",
"prenom_etat_civil": "",
"sort_key": [
"naudin",
"simone"
"mouton",
"claude"
]
},
"..."

View File

@ -8,6 +8,7 @@
"etudiant": {
"boursier": "",
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "INE11",
"code_nip": "11",
"codepostaldomicile": "",
@ -30,6 +31,7 @@
"paysdomicile": "",
"photo_url": "/ScoDoc/TAPI/Scolarite/get_photo_image?etudid=11&size=small",
"prenom": "MADELEINE",
"prenom_etat_civil": "",
"telephone": "",
"telephonemobile": "",
"typeadresse": "domicile",
@ -43,6 +45,8 @@
},
"formsemestre_id": 1,
"options": {
"bgcolor": "white",
"block_moyenne_generale": false,
"show_abs": true,
"show_abs_modules": false,
"show_codemodules": false,
@ -841,7 +845,7 @@
"max": "17.35",
"min": "03.41",
"moy": "11.09",
"rang": "8",
"rang": "5",
"total": 16,
"value": "11.17"
},
@ -1000,6 +1004,7 @@
"etudiant": {
"boursier": "",
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "INE11",
"code_nip": "11",
"codepostaldomicile": "",
@ -1022,6 +1027,7 @@
"paysdomicile": "",
"photo_url": "/ScoDoc/TAPI/Scolarite/get_photo_image?etudid=11&size=small",
"prenom": "MADELEINE",
"prenom_etat_civil": "",
"telephone": "",
"telephonemobile": "",
"typeadresse": "domicile",
@ -1035,6 +1041,8 @@
},
"formsemestre_id": 1,
"options": {
"bgcolor": "white",
"block_moyenne_generale": false,
"show_abs": true,
"show_abs_modules": false,
"show_codemodules": false,
@ -1833,7 +1841,7 @@
"max": "17.35",
"min": "03.41",
"moy": "11.09",
"rang": "8",
"rang": "5",
"total": 16,
"value": "11.17"
},
@ -1992,6 +2000,7 @@
"etudiant": {
"boursier": "",
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "INE11",
"code_nip": "11",
"codepostaldomicile": "",
@ -2014,6 +2023,7 @@
"paysdomicile": "",
"photo_url": "/ScoDoc/TAPI/Scolarite/get_photo_image?etudid=11&size=small",
"prenom": "MADELEINE",
"prenom_etat_civil": "",
"telephone": "",
"telephonemobile": "",
"typeadresse": "domicile",
@ -2027,6 +2037,8 @@
},
"formsemestre_id": 1,
"options": {
"bgcolor": "white",
"block_moyenne_generale": false,
"show_abs": true,
"show_abs_modules": false,
"show_codemodules": false,
@ -2825,7 +2837,7 @@
"max": "17.35",
"min": "03.41",
"moy": "11.09",
"rang": "8",
"rang": "5",
"total": 16,
"value": "11.17"
},
@ -2979,7 +2991,7 @@
#### GET /etudiant/nip/11/formsemestre/1/bulletin/short/pdf
```json
{
"Content-Disposition": "attachment; filename=\"bul-Semestre_test_semestre_1-2022-12-27-FLEURY.pdf\"",
"Content-Disposition": "attachment; filename=\"bul-Semestre_test_semestre_1-2023-05-12-FLEURY.pdf\"",
"Content-Type": "application/pdf"
}
```

View File

@ -29,7 +29,8 @@
"etat": true,
"formation": {
"acronyme": "BUT R&T",
"code_specialite": null,
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
@ -470,7 +471,8 @@
"etat": true,
"formation": {
"acronyme": "BUT R&T",
"code_specialite": null,
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",

View File

@ -49,6 +49,7 @@
],
"boursier": null,
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "INE11",
"code_nip": "11",
"date_naissance": "2005-02-12",
@ -62,6 +63,7 @@
"nom_usuel": null,
"photo_filename": null,
"prenom": "MADELEINE",
"prenom_etat_civil": "",
"scodoc7_id": null,
"sort_key": [
"fleury",
@ -120,6 +122,7 @@
],
"boursier": null,
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "INE11",
"code_nip": "11",
"date_naissance": "2005-02-12",
@ -133,6 +136,7 @@
"nom_usuel": null,
"photo_filename": null,
"prenom": "MADELEINE",
"prenom_etat_civil": "",
"scodoc7_id": null,
"sort_key": [
"fleury",
@ -191,6 +195,7 @@
],
"boursier": null,
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "INE11",
"code_nip": "11",
"date_naissance": "2005-02-12",
@ -204,6 +209,7 @@
"nom_usuel": null,
"photo_filename": null,
"prenom": "MADELEINE",
"prenom_etat_civil": "",
"scodoc7_id": null,
"sort_key": [
"fleury",

View File

@ -29,7 +29,8 @@
"etat": true,
"formation": {
"acronyme": "BUT R&T",
"code_specialite": null,
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",

View File

@ -50,6 +50,7 @@
],
"boursier": null,
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "INE11",
"code_nip": "11",
"date_naissance": "2005-02-12",
@ -63,6 +64,7 @@
"nom_usuel": null,
"photo_filename": null,
"prenom": "MADELEINE",
"prenom_etat_civil": "",
"scodoc7_id": null,
"sort_key": [
"fleury",
@ -124,6 +126,7 @@
],
"boursier": null,
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "INE11",
"code_nip": "11",
"date_naissance": "2005-02-12",
@ -137,6 +140,7 @@
"nom_usuel": null,
"photo_filename": null,
"prenom": "MADELEINE",
"prenom_etat_civil": "",
"scodoc7_id": null,
"sort_key": [
"fleury",
@ -198,6 +202,7 @@
],
"boursier": null,
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "INE11",
"code_nip": "11",
"date_naissance": "2005-02-12",
@ -211,6 +216,7 @@
"nom_usuel": null,
"photo_filename": null,
"prenom": "MADELEINE",
"prenom_etat_civil": "",
"scodoc7_id": null,
"sort_key": [
"fleury",

View File

@ -5,6 +5,7 @@
[
{
"civilite": "X",
"civilite_etat_civil": "X",
"code_ine": "INE1",
"code_nip": "1",
"dept_id": 1,
@ -12,6 +13,7 @@
"nom": "COSTA",
"nom_usuel": null,
"prenom": "SACHA",
"prenom_etat_civil": "",
"sort_key": [
"costa",
"sacha"
@ -19,6 +21,7 @@
},
{
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "2",
"code_nip": "NIP2",
"dept_id": 1,
@ -26,6 +29,7 @@
"nom": "NAUDIN",
"nom_usuel": null,
"prenom": "SIMONE",
"prenom_etat_civil": "",
"sort_key": [
"naudin",
"simone"
@ -85,6 +89,7 @@
],
"boursier": null,
"civilite": "X",
"civilite_etat_civil": "X",
"code_ine": "INE1",
"code_nip": "1",
"date_naissance": "2005-02-02",
@ -98,6 +103,7 @@
"nom_usuel": null,
"photo_filename": null,
"prenom": "SACHA",
"prenom_etat_civil": "",
"scodoc7_id": null,
"sort_key": [
"costa",
@ -152,6 +158,7 @@
],
"boursier": null,
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "2",
"code_nip": "NIP2",
"date_naissance": "2005-02-03",
@ -165,6 +172,7 @@
"nom_usuel": null,
"photo_filename": null,
"prenom": "SIMONE",
"prenom_etat_civil": "",
"scodoc7_id": null,
"sort_key": [
"naudin",

View File

@ -4,7 +4,8 @@
```json
{
"acronyme": "BUT R&T",
"code_specialite": null,
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
@ -13,10 +14,7 @@
"id": 1,
"visible": true
},
"dept_id": 1,
"formation_code": "V1RET",
"formation_id": 1,
"id": 1,
"refcomp_specialite": "RT",
"refcomp_type_titre": "B.U.T.",
"refcomp_version_orebut": "2021-12-11 00:00:00",
@ -190,7 +188,7 @@
}
],
"numero": 1,
"parcour_id": "",
"parcour": null,
"reference": 1,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -392,7 +390,7 @@
}
],
"numero": 2,
"parcour_id": "",
"parcour": null,
"reference": 2,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -603,7 +601,7 @@
}
],
"numero": 3,
"parcour_id": "",
"parcour": null,
"reference": 3,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -619,7 +617,8 @@
```json
{
"acronyme": "BUT R&T",
"code_specialite": null,
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
@ -839,9 +838,10 @@
"ue_id": 1
}
],
"niveau_competence_id": "",
"niveau_competence_id": null,
"numero": 1,
"parcour_id": "",
"parcour": null,
"parcour_id": null,
"reference": 1,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -1083,9 +1083,10 @@
"ue_id": 2
}
],
"niveau_competence_id": "",
"niveau_competence_id": null,
"numero": 2,
"parcour_id": "",
"parcour": null,
"parcour_id": null,
"reference": 2,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -1341,9 +1342,10 @@
"ue_id": 3
}
],
"niveau_competence_id": "",
"niveau_competence_id": null,
"numero": 3,
"parcour_id": "",
"parcour": null,
"parcour_id": null,
"reference": 3,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",

View File

@ -4,7 +4,8 @@
```json
{
"acronyme": "BUT R&T",
"code_specialite": null,
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",

View File

@ -5,7 +5,8 @@
[
{
"acronyme": "BUT R&T",
"code_specialite": null,
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",

View File

@ -9,6 +9,7 @@
"etudiant": {
"boursier": "",
"civilite": "X",
"civilite_etat_civil": "X",
"code_ine": "INE1",
"code_nip": "1",
"codepostaldomicile": "",
@ -31,6 +32,7 @@
"paysdomicile": "",
"photo_url": "/ScoDoc/TAPI/Scolarite/get_photo_image?etudid=1&size=small",
"prenom": "SACHA",
"prenom_etat_civil": "",
"telephone": "",
"telephonemobile": "",
"typeadresse": "domicile",
@ -44,6 +46,8 @@
},
"formsemestre_id": 1,
"options": {
"bgcolor": "white",
"block_moyenne_generale": false,
"show_abs": true,
"show_abs_modules": false,
"show_codemodules": false,
@ -728,7 +732,7 @@
"rang": {
"groupes": {},
"total": 10,
"value": "16"
"value": "10"
}
},
"type": "BUT",
@ -749,7 +753,7 @@
"max": "14.94",
"min": "03.73",
"moy": "09.87",
"rang": "16",
"rang": "10",
"total": 16,
"value": "03.73"
},
@ -842,7 +846,7 @@
"max": "17.35",
"min": "03.41",
"moy": "11.09",
"rang": "15",
"rang": "10",
"total": 16,
"value": "07.13"
},
@ -925,7 +929,7 @@
"max": "16.22",
"min": "04.32",
"moy": "08.63",
"rang": "14",
"rang": "10",
"total": 16,
"value": "05.76"
},
@ -997,6 +1001,7 @@
"etudiant": {
"boursier": "",
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "2",
"code_nip": "NIP2",
"codepostaldomicile": "",
@ -1019,6 +1024,7 @@
"paysdomicile": "",
"photo_url": "/ScoDoc/TAPI/Scolarite/get_photo_image?etudid=2&size=small",
"prenom": "SIMONE",
"prenom_etat_civil": "",
"telephone": "",
"telephonemobile": "",
"typeadresse": "domicile",
@ -1032,6 +1038,8 @@
},
"formsemestre_id": 1,
"options": {
"bgcolor": "white",
"block_moyenne_generale": false,
"show_abs": true,
"show_abs_modules": false,
"show_codemodules": false,
@ -1716,7 +1724,7 @@
"rang": {
"groupes": {},
"total": 10,
"value": "15"
"value": "9"
}
},
"type": "BUT",
@ -1737,7 +1745,7 @@
"max": "14.94",
"min": "03.73",
"moy": "09.87",
"rang": "14",
"rang": "9",
"total": 16,
"value": "06.82"
},
@ -1830,7 +1838,7 @@
"max": "17.35",
"min": "03.41",
"moy": "11.09",
"rang": "14",
"rang": "9",
"total": 16,
"value": "07.96"
},
@ -1913,7 +1921,7 @@
"max": "16.22",
"min": "04.32",
"moy": "08.63",
"rang": "10",
"rang": "6",
"total": 16,
"value": "06.51"
},

View File

@ -74,6 +74,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -98,6 +99,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -122,6 +124,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -209,6 +212,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",

View File

@ -5,6 +5,7 @@
[
{
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "10",
"code_nip": "NIP10",
"dept_id": 1,
@ -13,6 +14,7 @@
"nom": "BOUTET",
"nom_usuel": null,
"prenom": "MARGUERITE",
"prenom_etat_civil": "",
"sort_key": [
"boutet",
"marguerite"
@ -20,6 +22,7 @@
},
{
"civilite": "X",
"civilite_etat_civil": "X",
"code_ine": "INE15",
"code_nip": "15",
"dept_id": 1,
@ -28,6 +31,7 @@
"nom": "DIOT",
"nom_usuel": null,
"prenom": "CAMILLE",
"prenom_etat_civil": "",
"sort_key": [
"diot",
"camille"

View File

@ -5,6 +5,7 @@
[
{
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "10",
"code_nip": "NIP10",
"dept_id": 1,
@ -13,6 +14,7 @@
"nom": "BOUTET",
"nom_usuel": null,
"prenom": "MARGUERITE",
"prenom_etat_civil": "",
"sort_key": [
"boutet",
"marguerite"
@ -20,6 +22,7 @@
},
{
"civilite": "X",
"civilite_etat_civil": "X",
"code_ine": "INE1",
"code_nip": "1",
"dept_id": 1,
@ -28,6 +31,7 @@
"nom": "COSTA",
"nom_usuel": null,
"prenom": "SACHA",
"prenom_etat_civil": "",
"sort_key": [
"costa",
"sacha"
@ -87,6 +91,7 @@
],
"boursier": null,
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "10",
"code_nip": "NIP10",
"date_naissance": "2005-02-11",
@ -101,6 +106,7 @@
"nom_usuel": null,
"photo_filename": null,
"prenom": "MARGUERITE",
"prenom_etat_civil": "",
"scodoc7_id": null,
"sort_key": [
"boutet",
@ -155,6 +161,7 @@
],
"boursier": null,
"civilite": "X",
"civilite_etat_civil": "X",
"code_ine": "INE1",
"code_nip": "1",
"date_naissance": "2005-02-02",
@ -169,6 +176,7 @@
"nom_usuel": null,
"photo_filename": null,
"prenom": "SACHA",
"prenom_etat_civil": "",
"scodoc7_id": null,
"sort_key": [
"costa",

View File

@ -13,6 +13,7 @@
"groups_editable": true,
"id": 2,
"numero": 0,
"partition_id": 2,
"partition_name": "PART",
"show_in_lists": false
}

View File

@ -13,6 +13,7 @@
"groups_editable": true,
"id": 2,
"numero": 0,
"partition_id": 2,
"partition_name": "PART",
"show_in_lists": false
},

View File

@ -46,6 +46,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -70,6 +71,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -94,6 +96,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -150,6 +153,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -206,6 +210,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -230,6 +235,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -286,6 +292,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -310,6 +317,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -366,6 +374,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -422,6 +431,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -478,6 +488,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -534,6 +545,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -558,6 +570,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -614,6 +627,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -670,6 +684,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -694,6 +709,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -718,6 +734,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -774,6 +791,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -798,6 +816,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -822,6 +841,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -878,6 +898,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -902,6 +923,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -926,6 +948,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -982,6 +1005,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -1006,6 +1030,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -1062,6 +1087,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -1086,6 +1112,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -1142,6 +1169,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -1166,6 +1194,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -1224,6 +1253,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -1280,6 +1310,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -1336,6 +1367,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -1392,6 +1424,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -1448,6 +1481,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -1523,6 +1557,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -1547,6 +1582,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -1571,6 +1607,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -1595,6 +1632,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -1619,6 +1657,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -1643,6 +1682,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -1667,6 +1707,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -1691,6 +1732,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -1715,6 +1757,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -1739,6 +1782,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -1763,6 +1807,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -1787,6 +1832,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -1811,6 +1857,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -1823,6 +1870,7 @@
],
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -1856,6 +1904,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -1880,6 +1929,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -1904,6 +1954,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -1928,6 +1979,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -1952,6 +2004,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -1976,6 +2029,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -2000,6 +2054,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -2024,6 +2079,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -2048,6 +2104,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -2072,6 +2129,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -2096,6 +2154,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -2108,6 +2167,7 @@
],
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -2141,6 +2201,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -2165,6 +2226,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -2189,6 +2251,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -2213,6 +2276,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -2237,6 +2301,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -2261,6 +2326,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -2285,6 +2351,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -2309,6 +2376,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -2333,6 +2401,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -2357,6 +2426,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",
@ -2369,6 +2439,7 @@
],
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",

View File

@ -48,6 +48,8 @@
"moy_ue_1": "14.94",
"moy_ue_2": "11.17",
"moy_ue_3": "16.22",
"nbabs": 5,
"nbabsjust": 1,
"nom_disp": "FLEURY",
"nom_short": "FLEURY Ma.",
"partitions": {
@ -104,6 +106,8 @@
"moy_ue_1": "13.51",
"moy_ue_2": "14.24",
"moy_ue_3": "10.39",
"nbabs": 3,
"nbabsjust": 1,
"nom_disp": "SAUNIER",
"nom_short": "SAUNIER Ja.",
"partitions": {

View File

@ -28,7 +28,8 @@
"etat": true,
"formation": {
"acronyme": "BUT R&T",
"code_specialite": null,
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",

View File

@ -29,7 +29,8 @@
"etat": true,
"formation": {
"acronyme": "BUT R&T",
"code_specialite": null,
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",
@ -470,7 +471,8 @@
"etat": true,
"formation": {
"acronyme": "BUT R&T",
"code_specialite": null,
"code_specialite": "",
"commentaire": "",
"departement": {
"acronym": "TAPI",
"date_creation": "2022-08-20T12:00:00.000000+02:00",

View File

@ -16,6 +16,7 @@
"groups_editable": true,
"id": 1,
"numero": 0,
"partition_id": 1,
"partition_name": null,
"show_in_lists": true
},

View File

@ -5,6 +5,7 @@
[
{
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "INE5",
"code_nip": "5",
"dept_id": 1,
@ -12,6 +13,7 @@
"nom": "VILLENEUVE",
"nom_usuel": null,
"prenom": "FRAN\u00c7OISE",
"prenom_etat_civil": "",
"sort_key": [
"villeneuve",
"francoise"
@ -19,6 +21,7 @@
},
{
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "10",
"code_nip": "NIP10",
"dept_id": 1,
@ -26,6 +29,7 @@
"nom": "BOUTET",
"nom_usuel": null,
"prenom": "MARGUERITE",
"prenom_etat_civil": "",
"sort_key": [
"boutet",
"marguerite"

View File

@ -5,6 +5,7 @@
[
{
"civilite": "X",
"civilite_etat_civil": "X",
"code_ine": "INE1",
"code_nip": "1",
"dept_id": 1,
@ -12,6 +13,7 @@
"nom": "COSTA",
"nom_usuel": null,
"prenom": "SACHA",
"prenom_etat_civil": "",
"sort_key": [
"costa",
"sacha"
@ -19,6 +21,7 @@
},
{
"civilite": "F",
"civilite_etat_civil": "X",
"code_ine": "2",
"code_nip": "NIP2",
"dept_id": 1,
@ -26,6 +29,7 @@
"nom": "NAUDIN",
"nom_usuel": null,
"prenom": "SIMONE",
"prenom_etat_civil": "",
"sort_key": [
"naudin",
"simone"

View File

@ -3,8 +3,8 @@
#### GET /logos
```json
[
"C",
"B",
"logo_IUT_2022",
"everaere",
"..."
]
```

View File

@ -42,6 +42,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 1,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Administrer les r\u00e9seaux et l\u2019Internet",
@ -66,6 +67,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 2,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Connecter les entreprises et les usagers",
@ -90,6 +92,7 @@
"is_external": false,
"niveau_competence_id": null,
"numero": 3,
"parcour": null,
"parcour_id": null,
"semestre_idx": 1,
"titre": "Cre\u0301er des outils et applications informatiques pour les R&amp;T",

View File

@ -20,6 +20,7 @@
"groups_editable": true,
"id": 1,
"numero": 3,
"partition_id": 1,
"partition_name": "P2BIS",
"show_in_lists": false
}

View File

@ -16,6 +16,7 @@
"groups_editable": true,
"id": 1,
"numero": 0,
"partition_id": 1,
"partition_name": null,
"show_in_lists": true
},

View File

@ -20,6 +20,7 @@
"groups_editable": true,
"id": 1,
"numero": 3,
"partition_id": 1,
"partition_name": "P2BIS",
"show_in_lists": false
}

View File

@ -16,6 +16,7 @@
"groups_editable": true,
"id": 1,
"numero": 0,
"partition_id": 1,
"partition_name": null,
"show_in_lists": true
}

View File

@ -8,11 +8,16 @@
```json
{
"active": true,
"cas_allow_login": false,
"cas_allow_scodoc_login": false,
"cas_id": null,
"cas_last_login": null,
"date_created": "2022-08-20T12:00:00.000000+02:00",
"date_expiration": null,
"date_modif_passwd": "2022-08-20T12:00:00.000000+02:00",
"dept": null,
"email": "",
"email_institutionnel": "",
"id": 11,
"last_seen": "2022-08-20T12:00:00.000000+02:00",
"nom": "alain",

View File

@ -8,11 +8,16 @@
```json
{
"active": false,
"cas_allow_login": false,
"cas_allow_scodoc_login": false,
"cas_id": null,
"cas_last_login": null,
"date_created": "2022-08-20T12:00:00.000000+02:00",
"date_expiration": null,
"date_modif_passwd": "2022-08-20T12:00:00.000000+02:00",
"dept": "TAPI",
"email": "",
"email_institutionnel": "",
"id": 10,
"last_seen": "2022-08-20T12:00:00.000000+02:00",
"nom": "alain2",
@ -23,7 +28,7 @@
"prenom": "bruno2",
"prenom_fmt": "Bruno2",
"prenomnom": "B. Alain2",
"roles_string": "LecteurAPI_,LecteurAPI_",
"roles_string": "LecteurAPI_, LecteurAPI_",
"status_txt": "ferm\u00e9",
"user_name": "lecteur_api"
}

View File

@ -8,11 +8,16 @@
```json
{
"active": true,
"cas_allow_login": false,
"cas_allow_scodoc_login": false,
"cas_id": null,
"cas_last_login": null,
"date_created": "2022-08-20T12:00:00.000000+02:00",
"date_expiration": null,
"date_modif_passwd": "2022-08-20T12:00:00.000000+02:00",
"dept": "TAPI",
"email": "",
"email_institutionnel": "",
"id": 3,
"last_seen": "2022-08-20T12:00:00.000000+02:00",
"nom": "Sans",
@ -37,11 +42,16 @@
```json
{
"active": true,
"cas_allow_login": false,
"cas_allow_scodoc_login": false,
"cas_id": null,
"cas_last_login": null,
"date_created": "2022-08-20T12:00:00.000000+02:00",
"date_expiration": null,
"date_modif_passwd": "2022-08-20T12:00:00.000000+02:00",
"dept": "TAPI",
"email": "",
"email_institutionnel": "",
"id": 3,
"last_seen": "2022-08-20T12:00:00.000000+02:00",
"nom": "Sans",

View File

@ -4,11 +4,16 @@
```json
{
"active": false,
"cas_allow_login": false,
"cas_allow_scodoc_login": false,
"cas_id": null,
"cas_last_login": null,
"date_created": "2022-08-20T12:00:00.000000+02:00",
"date_expiration": null,
"date_modif_passwd": "2022-08-20T12:00:00.000000+02:00",
"dept": "TAPI",
"email": "",
"email_institutionnel": "",
"id": 10,
"last_seen": "2022-08-20T12:00:00.000000+02:00",
"nom": "alain2",
@ -19,7 +24,7 @@
"prenom": "bruno2",
"prenom_fmt": "Bruno2",
"prenomnom": "B. Alain2",
"roles_string": "LecteurAPI_,LecteurAPI_,Observateur_",
"roles_string": "LecteurAPI_, LecteurAPI_, Observateur_",
"status_txt": "ferm\u00e9",
"user_name": "lecteur_api"
}

View File

@ -4,11 +4,16 @@
```json
{
"active": false,
"cas_allow_login": false,
"cas_allow_scodoc_login": false,
"cas_id": null,
"cas_last_login": null,
"date_created": "2022-08-20T12:00:00.000000+02:00",
"date_expiration": null,
"date_modif_passwd": "2022-08-20T12:00:00.000000+02:00",
"dept": "TAPI",
"email": "",
"email_institutionnel": "",
"id": 10,
"last_seen": "2022-08-20T12:00:00.000000+02:00",
"nom": "alain2",
@ -19,7 +24,7 @@
"prenom": "bruno2",
"prenom_fmt": "Bruno2",
"prenomnom": "B. Alain2",
"roles_string": "LecteurAPI_,LecteurAPI_",
"roles_string": "LecteurAPI_, LecteurAPI_",
"status_txt": "ferm\u00e9",
"user_name": "lecteur_api"
}

View File

@ -4,11 +4,16 @@
```json
{
"active": true,
"cas_allow_login": false,
"cas_allow_scodoc_login": false,
"cas_id": null,
"cas_last_login": null,
"date_created": "2022-08-20T12:00:00.000000+02:00",
"date_expiration": null,
"date_modif_passwd": "2022-08-20T12:00:00.000000+02:00",
"dept": null,
"email": "adresse.admin@toto.fr",
"email_institutionnel": "",
"id": 1,
"last_seen": "2022-08-20T12:00:00.000000+02:00",
"nom": "",

Some files were not shown because too many files have changed in this diff Show More