Compare commits

...

37 Commits
master ... test

Author SHA1 Message Date
9473f5b128 complément doc sur logos 2021-12-12 23:04:53 +01:00
69e528a5bc ajout methode donnant les groupes d'un étudiant 2021-11-19 17:14:58 +01:00
d409fd66a9 mise en page + qq remarques sur l'API 2021-11-19 16:36:03 +01:00
fe583938e0 Documention future API REST 2021-11-19 11:18:02 +01:00
8be16fa32e Merge pull request 'master' (#6) from leonard.montalbano/DocScoDoc:master into master
Reviewed-on: https://scodoc.org/git/viennet/DocScoDoc/pulls/6
2021-11-19 10:34:08 +01:00
leonard_montalbano
ca7a2fe546 revision doc api scodoc9 2021-11-18 17:16:04 +01:00
leonard_montalbano
f280ecf541 amélioration suite au retour du pdf 2021-11-16 15:17:07 +01:00
leonard_montalbano
873c038640 petit ajustement a droite a gauche de la doc api scodoc 9 2021-11-15 16:14:16 +01:00
3825e37fbb Merge pull request 'enrichissement API scodoc9' (#4) from leonard.montalbano/DocScoDoc:master into master
Reviewed-on: https://scodoc.org/git/viennet/DocScoDoc/pulls/4

(penser à virer le gitignore)
2021-11-12 10:15:50 +01:00
leonard_montalbano
a176adf27b ajout d'informations complémentaires sur la doc scodoc9 2021-11-10 13:22:10 +01:00
2db0930bca ajout evaluation_listenotes et indique noms dans future API) 2021-11-09 22:24:57 +01:00
2d4b651ec7 debut doc nouvelel API à reformatter 2021-11-09 21:37:37 +01:00
b125025eca roadmap 2021-11-09 21:36:36 +01:00
d5f2acd896 added groups_view 2021-11-01 19:06:52 +01:00
6ed0ab6ab7 modif page API 2021-10-28 10:23:28 +02:00
c8b5c47c66 Lien vers page BUT 2021-10-24 19:23:08 +02:00
89fe455235 Petit rafraichissement: structure menus, FAQ, ... 2021-10-24 19:18:57 +02:00
61db2b779f ajout sections sur validation à compléter 2021-10-02 09:24:21 +02:00
6f336b2008 typos 2021-10-01 21:12:41 +02:00
2b92f0f608 Merge pull request 'Mise à jour de 'docs/GuideInstallDebian11.md'' (#2) from joseph.maillardet/DocScoDoc:master into master
Reviewed-on: https://scodoc.org/git/viennet/DocScoDoc/pulls/2
2021-10-01 21:09:06 +02:00
b2ad4cadf5 Mise à jour de 'docs/GuideInstallDebian11.md' 2021-10-01 18:08:13 +02:00
a54a0db0f1 ajout exemple Lille 2021-10-01 16:05:32 +02:00
e67b8690c1 ajout page BUT 2021-10-01 16:04:34 +02:00
f4c423a808 js pour pymdownx (équations LaTeX) 2021-09-30 20:50:50 +02:00
970923d5e3 info sur locale UTF-8 durant l'install 2021-09-30 20:09:10 +02:00
206c90e7f5 détails install 2021-09-30 16:11:55 +02:00
4748be09d8 bulletins adhesions 2021-2022 2021-09-30 12:02:20 +02:00
503bfca6e2 détail ssur install ScoDoc 9 2021-09-24 20:31:25 +02:00
e713143096 infos sur ScoDoc 9 2021-09-14 12:31:16 +02:00
f9c2ef5956 updates pour ScoDoc 9 2021-09-06 18:43:33 +02:00
d254eb46f8 updates pour ScoDoc 9 2021-09-06 12:35:49 +02:00
8e6a1e9fe1 procedure de migration 2021-08-26 14:23:51 +02:00
c0bb9a6ba0 .env dans /opt/scodoc-data 2021-08-25 22:37:03 +02:00
6b1da462e7 nouvelle procedure d'install pour ScoDOc 9 2021-08-25 18:12:05 +02:00
46ea96bbba Install ScoDoc 9 2021-08-24 19:51:54 +02:00
0053380c96 début de mise à jour pour ScoDoc 9 2021-08-22 08:14:55 +02:00
c829137d08 Ajout document explications export Apogée 2021-06-29 16:39:07 +02:00
46 changed files with 2963 additions and 259 deletions

View File

@ -3,12 +3,31 @@
ScoDoc est un logiciel libre et gratuit, Open Source.
Le développement du projet a été porté par son créateur, Emmanuel Viennet, professeur à l'université Sorbonne Paris Nord (ex Paris 13), plusieurs fois chef 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à.
Le développement du projet a été porté par son créateur, Emmanuel Viennet,
professeur à l'université Sorbonne Paris Nord (ex Paris 13), plusieurs fois chef
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à.
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).
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).
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.
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.
Plusieurs types d'adhésion sont possibles, voir le [bulletin d'adhésion PDF](papers/Adhesion-2020-Association-ScoDoc.pdf) ([version Word](papers/Adhesion-2020-Association-ScoDoc.docx)), à renvoyer à <emmanuel.viennet@gmail.com>.
Plusieurs types d'adhésion sont possibles, voir le [bulletin d'adhésion
PDF](papers/Adhesion-2021-2022-Association-ScoDoc.pdf) ([version
Word](papers/Adhesion-2021-2022-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).
Je vous remercie de votre support qui rendra possible la pérennité du projet ScoDoc
Je vous remercie de votre support qui rendra possible la pérennité du projet
ScoDoc.

290
docs/BUT.md Normal file
View File

@ -0,0 +1,290 @@
# Le BUT
## 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.
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...")
- 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.
La figure ci-dessous indique la correspondance entre compétences (découpées en
niveaux) et UEs.
<img src="/fig/but-competences-ues.png" width="70%">
## 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 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*).
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
module $m$ dans l'UE $u$, la moyenne d'UE de l'étudiant est
$$\mu_u = \frac{1}{\sum_m c_{u,m}} \, \sum_{m \in u} c_{u,m} \, \mu_m$$
Mais pour le BUT, on souhaite avoir des évaluations associées à un
sous-ensemble de compétences (par exemple via des *apprentissages critiques*),
ce qui se traduit par une note envoyée vers certaines UE mais pas toutes, comme
on le voit dans exemples suivants:
L'exemple ci-dessous est un extrait du référentiel de compétence du BUT GEII. On
voit que les SAÉ et les ressources sont affectées de coefficients dans les deux
UE de ce semestre (S2), ici à parts égales sauf pour les SAÉs 2.1 et 2.2, dites
"mono-compétences", qui contribuent chacune à une seule UE.
<img src="/fig/but-ref-comp-ex-geii.jpg" width="70%">
Un autre exemple, cette fois avec des coefficients différents et un nombre plus
réduit d'apprentissages critiques:
![but-ref-comp-ex-commente](fig/but-ref-comp-ex-commente.png)
### Note d'un module
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.
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:
$$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
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.
### 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}}$$
Toutefois, une moyenne *scalaire* (un nombre entre 0 et 20) est calculée à
titre indicatif (et sera éventuellement utilisée dans certaines fonctions de
ScoDoc conçues avant le BUT):
$$\mu_m = \frac{\sum_e (\sum_u p_{e,u}) \, n_e}{\sum_{u,e} \, p_{u,e}}$$
### Calcul moyenne d'UE
On va considérer les coefficients de modules et d'évaluations:
$$\mu_u = \frac{1}{\sum_m c_{u,m}} \, \sum_{m \in u} c_{u,m} \, \frac{\sum_e p_{e,u} \, n_e}{\sum_{e} \, p_{e,u}}$$
L'exemple suivant illustre ce mode de calcul:
<img src="/fig/but-exemple-calcul-notes.png" width="70%">
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):
<img src="/fig/but-validation-ue.png" width="50%">
Voir plus loin la gestion du parcours et les règles d'obtention du diplôme, qui
peuvent entrainer la validation d'UE a posteriori.
### Capitalisation
Les UE sont capitalisables, c'est à dire qu'un étudiant conserve son UE s'il
arrête temporairement ses études ou redouble un semestre.
En cas de redoublement, l'étudiant qui choisi de répéter une UE conserve le
résultat antérieur sauf s'il obtient mieux.
### Moyenne générale
La validation du BUT ne considère pas de "moyenne générale": chaque
regroupement d'UE est considéré indépendamment (aucunes compensations entre UE
relevant de compétences différentes).
Cependant, ScoDoc calculera une moyenne générale indicative, utile pour
certaines opérations (tri de tableaux, création de groupe de niveaux semblables,
avis de poursuite d'études, etc.).
Cette moyenne sera calculée en utilisant les ECTS de chaque UE du semestre
considéré:
$$ g = \frac{1}{\sum_{u \in \cal S} \mbox{ects}_u} \sum_{u \in \cal S} \mbox{ects}_u \, \mu_u $$
### 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
regroupements cohérents dUE (niveaux de compétences). Ainsi, si l'année comporte 4
compétences, il faut en valider au moins 3.
2. Aucun regroupement cohérent dUE < 8.
3. Cas particulier du passage en BUT 3: nécessité davoir validé toutes les UE
du BUT 1.
TODO *à compléter suivant l'arrêté.*
> La validation des deux UE du niveau dune compétence emporte la validation de
> lensemble des UE du niveau inférieur de cette même compétence.
### Obtention du diplôme
TODO à rédiger à partir de l'arrêté.
### Modules "bonus" (sport, culture, LV2)
Les modules hors formation comme le sport ou les langues vivantes supplémentaires
sont traditionnellement intégrés sous forme de "points de bonus" appliqués sur
la moyenne générale. Le BUT, on l'a vu, n'utilise plus la moyenne générale: le
bonus pourra donc être appliqué au niveau des moyennes UE: soit sur toutes
(bonus fixe ajouté à chaque UE), soit sur un sous-ensemble des UE du semestre.
Les règles précises du calcul de ce bonus sont malheureusement variables d'un
établissement à l'autre: ScoDoc 7 proposait plus d'une douzaine de variantes. La
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
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
locale*.
TODO: voir si on offre la possibilité de voir/gérer le delta entre le PN et le local.
# Modules et évaluations
## 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);
- 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.
#### 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
bruts $b_{e, u}$. Les vrais poids sont calculés comme
$$p_{e, u} = w_e \, \frac{b_{e,u}}{\sum_u b_{e,u}}$$
#### Dialogue création/édition évaluation
<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).
## 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)
- 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:
<img src="/fig/but-tableau-evals-module-ok.png" width="50%">
Dans le cas où les évaluations ne couvriraient pas toutes les UE (mauvais choix
des poids ou oubli d'une évaluation):
<img src="/fig/but-tableau-evals-module-ko.png" width="50%">
# Bulletins de notes
La quantité d'information à présenter rend la conception des bulletins de notes difficile.
## 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/...
Avantage: toutes les informations importantes sont présentées.
Inconvénients (?): beaucoup de cases vides, peu synthétique, pas évident à
exploiter pour un non spécialiste du BUT (poursuites d'études, employeurs).
<img src="/fig/but-bul-lille.png" width="50%">
## 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.
Un exemple préliminaire:
<img src="/fig/but-bul-bdx.png" width="50%">
# 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.

View File

@ -6,11 +6,18 @@
### En résumé:
A 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 l'évaluation.
A 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
l'évaluation.
Les moyennes de modules sont obtenues en calculant dans chacun la moyenne pondérée des notes disponibles, en utilisant les coefficient des évaluations.
Les moyennes de modules sont obtenues en calculant dans chacun la moyenne
pondérée des notes disponibles, en utilisant les coefficient des évaluations.
Les moyennes d'UE et générale sont calculées à partir des moyennes de modules, en utilisant les coefficients du programme pédagogique (dénommé dans ScoDoc "formation").
Les moyennes d'UE et générale sont calculées à partir des moyennes de modules,
en utilisant les coefficients du programme pédagogique (dénommé dans ScoDoc
"formation").
Plus de détails ci-dessous.
@ -28,26 +35,42 @@ Chaque évaluation produit des notes de différents types:
* 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.
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.
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.
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.
#### Formules de calcul spéciales
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.
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.
### Moyennes d'UE
moyenne_ue = moyenne pondérée des moyennes de modules de l'UE (- malus)
Seuls les modules auxquels l'étudiant est inscrit et dans lesquels il y a des notes sont considérés.
Seuls les modules auxquels l'étudiant est inscrit et dans lesquels il y a des
notes sont considérés.
Le malus appliqué à la moyenne d'UE est donné par la somme des notes du ou des modules de malus de cette UE (un type spécial de modules, voir [ModulesMalus](ModulesMalus.md)).
Le malus appliqué à la moyenne d'UE est donné par la somme des notes du ou des
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).
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).
La présence de formules d'UE est signalée sur le tableau de bord du semestre.
@ -56,20 +79,34 @@ La présence de formules d'UE est signalée sur le tableau de bord du semestre.
moyenne = moyenne pondérée des moyennes d'UE + bonus sport/culture
Le coef. d'une UE est par défaut la somme des coefs des modules qui la compose (et peut donc différer d'un étudiant à un autre, s'ils ne sont pas inscrits aux mêmes modules).
Le coef. d'une UE est par défaut la somme des coefs des modules qui la compose
(et peut donc différer d'un étudiant à un autre, s'ils ne sont pas inscrits aux
mêmes modules).
Toutefois (depuis mai 2020), il est possible de spécifier un coefficient d'UE dans le programme pédagogique, et de l'utiliser pour calculer la moyenne générale (option "Utiliser les coefficients d'UE pour calculer la moyenne générale"). Dans ce cas, les coefficients des modules ne servent qu'à calculer les moyennes d'UE, qui sont ensuite affectée de leur propre coefficient. De cette façon, les UE pèsent le même poids pour tous les étudiants, quel que soit le nombre de modules auquel l'étudiant est inscrit (ce qui peut sembler étrange: bien réfléchir avant de choisir le mode de calcul adapté à sa formation).
Toutefois (depuis mai 2020), il est possible de spécifier un coefficient d'UE
dans le programme pédagogique, et de l'utiliser pour calculer la moyenne
générale (option "Utiliser les coefficients d'UE pour calculer la moyenne
générale"). Dans ce cas, les coefficients des modules ne servent qu'à calculer
les moyennes d'UE, qui sont ensuite affectée de leur propre coefficient. De
cette façon, les UE pèsent le même poids pour tous les étudiants, quel que soit
le nombre de modules auquel l'étudiant est inscrit (ce qui peut sembler étrange:
bien réfléchir avant de choisir le mode de calcul adapté à sa formation).
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.
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.
### 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 "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
"Rattrapage":
![CreateEvaluationRat.png](screens/CreateEvaluationRat.png)
Pour chaque étudiant, la note obtenue à l'évaluation de rattrapage remplace la moyenne du module, seulement si elle est supérieure à celle-ci.
Pour chaque étudiant, la note obtenue à l'évaluation de rattrapage remplace la
moyenne du module, seulement si elle est supérieure à celle-ci.
@ -79,17 +116,31 @@ Ce bonus s'applique directement sur la **moyenne générale**.
Les notes des UEs de type spécial "Sport & Culture" sont utilisées pour calculer ce bonus.
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.
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.
La règle par défaut, en vigueur à l'IUT de Villetaneuse, est la suivante:
*Les étudiants de l'IUT peuvent suivre des enseignements optionnels
de l'Université Paris 13 (sports, musique, deuxième langue,
culture, etc) non rattachés à une unité d'enseignement. Les points
au-dessus de 10 sur 20 obtenus dans chacune des matières
optionnelles sont cumulés et 5% de ces points cumulés s'ajoutent à
la moyenne générale du semestre déjà obtenue par l'étudiant.
*
> Les étudiants de l'IUT peuvent suivre des enseignements optionnels
> de l'Université Paris 13 (sports, musique, deuxième langue,
> culture, etc) non rattachés à une unité d'enseignement. Les points
> au-dessus de 10 sur 20 obtenus dans chacune des matières
> optionnelles sont cumulés et 5% de ces points cumulés s'ajoutent à
> la moyenne générale du semestre déjà obtenue par l'étudiant.
Mais la règle à appliquer dépend de l'établissement. Ainsi, l'Université de Haute Alsace applique le règlement suivant: *Les étudiants de l'IUT peuvent suivre des enseignements optionnels de l'U.H.A. (sports, musique, deuxième langue, culture, etc) non rattachés à une unité d'enseignement. Les points au-dessus de 10 sur 20 obtenus dans chacune des matières optionnelles sont cumulés dans la limite de 10 points. 5% de ces points cumulés s'ajoutent à la moyenne générale du semestre déjà obtenue par l'étudiant.*
Mais la règle à appliquer dépend de l'établissement. Par exemple, l'Université de
Haute Alsace appliquait le règlement suivant: *Les étudiants de l'IUT peuvent
suivre des enseignements optionnels de l'U.H.A. (sports, musique, deuxième
langue, culture, etc) non rattachés à une unité d'enseignement. Les points
au-dessus de 10 sur 20 obtenus dans chacune des matières optionnelles sont
cumulés dans la limite de 10 points. 5% de ces points cumulés s'ajoutent à la
moyenne générale du semestre déjà obtenue par l'étudiant.*
L'administrateur peut changer la fonction de calcul du bonus sport via le
formulaire de configuration accessible (aux admin) depuis la page d'accueil.
Si vous souhaitez implémenter une nouvelle règle, il faut la coder en Python
et la placer dans `/opt:scodoc/app/scodoc/bonus_sport.py`. Après l'avoir testée
et validée, l'envoyer sur la liste scodoc-devel, *sans quoi elle sera effacée
dès la prochaine mise à jour* (qui peut arriver à tout moment sur votre serveur
en production !).
Si vous souhaitez changer la règle de calcul utilisée par ScoDoc, il faut modifier un fichier de configuration et éventuellement écrire une fonction pour calculer votre bonus. Regardez les fichier `config/scodoc_config.py` et éventuellement `bonus_sport.py`.

View File

@ -4,10 +4,11 @@ Quelques indications pour développer avec ScoDoc 7.x, à adapter à vos goûts
# Machine virtuelle
Il est confortable de développer dans une VM (un container Docker ferait aussi bien l'affaire, mais Docker a été créé bien après ScoDoc ! Les utilisateurs étant dans des VM, on a l'avantage d'être dans les mêmes conditions qu'eux).
Il est confortable de développer dans une VM (un container Docker ferait
aussi bien l'affaire).
## Conseils pour VirtualBox
[VirtualBox](https://www.virtualbox.org/) est facile à installer sur Mac, Linux ou Windows. Créer une VM avec Debian 10, et suivre la [procédure habituelle d'installation de ScoDoc](GuideInstallDebianDix.md).
[VirtualBox](https://www.virtualbox.org/) est facile à installer sur Mac, Linux ou Windows. Créer une VM avec Debian 10, et suivre la [procédure habituelle d'installation de ScoDoc](GuideInstallDebian11.md). XXX
En général, vous préférez développer sur la machine hôte pour disposer de votre éditeur préféré. Mais vous exécutez ScoDoc dans la VM.
@ -52,6 +53,10 @@ Une autre solution (que j'utilise sur mon MacBook), est de laisser le source (cl
Dans VirtualBox / config. VM / Dossiers partagés, ajouter un partage. Par exemple, vous mettez vos sources sur l'hôte dans `~/src`, et dans la VM sur `/src`.
Dans ScoDoc, `/opt/scodoc/Products/ScoDoc` est alors un lien symbolique vers votre `src/ScoDoc`.
Pour pouvoir utiliser des liens symboliques dans le partage:
VBoxManage setextradata "Debian11" VBoxInternal2/SharedFoldersEnableSymlinksCreate/src 1
Attention, VirtualBox gère mal les droits/permissions du répertoire partagé. les utilisateurs linux (dans la VM) doit être dans le groupe `vboxsf`:
usermod -a -G vboxsf root

View File

@ -1,17 +1,30 @@
# 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 collègues, ou en développant ou testant le logiciel.
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
collègues, ou en développant ou testant le logiciel.
Le canal de communication entre développeurs est la liste de diffusion mail [scodoc-devel](ListesDeDiffusion.md). Là, 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 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*).
## 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épot principal](https://scodoc.org/git/viennet/ScoDoc) comporte plusieurs
branches. Voir le [guide pour les développeurs](GuideDeveloppeurs.md).

View File

@ -1,106 +1,183 @@
## FAQ
En cours d'élaboration et en vrac...
## FAQ / Questions fréquemment posées
### Le projet ScoDoc
#### Qui sont les développeurs ? Le projet est-il pérenne ?
## Le projet ScoDoc
### Qui sont les développeurs ? Le projet est-il pérenne ?
ScoDoc a été conçu et développé par Emmanuel Viennet, puis complété par plusieurs contributeurs, enseignants ou BIASTSS dans les IUT et universités. Son développement est toujours actif, voir le dépot git <https://scodoc.org/git>.
ScoDoc a été conçu et développé par Emmanuel Viennet, puis complété par
plusieurs contributeurs, enseignants ou BIATSS dans les IUT et universités. Son
développement est toujours actif, voir le dépôt git <https://scodoc.org/git>.
En 2020, une association a été crée pour soutenir et pérénniser le projet: par exemple pour acquérir services et équipements pour le développement informatique, recruter stagiaires, ou apprentis, ou mener une veille scientifique et technologique sur le sujet: voir [AssociationScoDoc](AssociationScoDoc.md). L'avenir du logiciel dépend donc de vous: adhérez, ou incitez votre institution (département IUT, Institut, Ecole) à le faire.
En 2020, une association a été créée pour soutenir et pérenniser le projet: par
exemple pour acquérir services et équipements pour le développement
informatique, recruter stagiaires, apprentis, ou mener une veille scientifique
et technologique sur le sujet: voir [AssociationScoDoc](AssociationScoDoc.md).
L'avenir du logiciel dépend donc de vous: adhérez, ou incitez votre institution
(département IUT, Institut, École) à le faire.
### Utilisation de ScoDoc
#### Comment prendre en compte les notes de sport ou autres bonus ?
## Utilisation de ScoDoc
### Comment prendre en compte les notes de sport ou autres bonus ?
Voir [CalculNotes](CalculNotes.md)
#### Qui peut voir les notes, et quand ?
Tous les collègues (enseignants et administratifs) pouvant accéder au département peuvent voir les notes, en passant par la page du module concerné.
### Qui peut voir les notes, et quand ?
Tous les collègues (enseignants et administratifs) pouvant accéder au
département peuvent voir les notes, en passant par la page du module concerné.
Les notes n'apparaissent dans les bulletins et tableaux récapitulatifs que lorsqu'elles
sont prises en compte dans les moyennes: soit parce que toutes les notes des étudiants inscrits à cette évaluation sont saisies, soit parce qu'il s'agit d'une évaluation avec "prise en compte immédiate".
Les notes n'apparaissent dans les bulletins et tableaux récapitulatifs que
lorsqu'elles sont prises en compte dans les moyennes: soit parce que toutes les
notes des étudiants inscrits à cette évaluation sont saisies, soit parce qu'il
s'agit d'une évaluation avec "prise en compte immédiate".
Les **étudiants n'ont pas accès à ScoDoc**, et ne peuvent donc pas voir leurs notes, sauf si une interface spécifique est configurée ("portail", avec affichage sur leur ENT en général, cet affichage pouvant être désactivé depuis ScoDoc pour un semestre particulier). A défaut, il faut leur envoyer leurs bulletins par mail.
Les **étudiants n'ont pas accès à ScoDoc**, et ne peuvent donc pas voir leurs
notes, sauf si une interface spécifique est configurée ("portail", avec
affichage sur leur ENT en général, cet affichage pouvant être désactivé depuis
ScoDoc pour un semestre particulier). A défaut, il faut leur envoyer leurs
bulletins par mail.
#### 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".
### 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".
2. Lorsqu'il n'y a plus de notes, une croix rouge apparait sur le tableau de bord du module: cliquer dessus pour supprimer l'évaluation.
2. Lorsqu'il n'y a plus de notes, une croix rouge apparait sur le tableau de
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 ?
* 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*").
* 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 ?
### 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.
* *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.
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é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).
* *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).
### Configuration
#### Comment changer les logos sur les documents PDF (PV...)
Ce n'est malheureusement pas encore simple.
Il faut (pour l'instant) être administrateur sur le serveur ScoDoc.
Les logos sont stockés dans le répertoire `/opt/scodoc/var/scodoc/config/logos/` (anciennement dans `/opt/scodoc/Products/ScoDoc`) et doivent être des images JPEG (extension `.jpg`).
Il faut aussi indiquer les tailles des images dans le fichier de configuration `config/scodoc_config.py`, variable `CONFIG.LOGO_FOOTER_HEIGHT` etc.
### 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.
* les différentes saisies de notes, via le formulaire de saisie de notes (toutes
les valeurs précédemment saisies sont conservées, ainsi que la date et
l'identité de l'utilisateur ayant effectué la saisie).
Les administrateurs (informaticiens) peuvent aussi consulter les journaux (logs)
du serveur, voir plus loin.s
### 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).
- 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...)
Il faut (pour l'instant) être administrateur sur le serveur ScoDoc, et passer
par l'onglet "configuration" accessible aux admins sur la page d'accueil.
Les logos sont stockés dans le répertoire `/opt/scodoc-data/config/logos/` et
doivent être des images JPEG (extension `.jpg`). Il faut aussi indiquer les
tailles des images dans le fichier de configuration `config/scodoc_config.py`,
variable `CONFIG.LOGO_FOOTER_HEIGHT` etc.
* Sur les PV, `logo_header.jpg` est affiché en haut, et `logo_header.jpg` en bas de la page.
* Sur les bulletins de notes, c'est configurable (et on peut utiliser d'autres logos), voir [ParametrageBulletins](ParametrageBulletins.md)
* Sur les bulletins de notes, c'est configurable (et on peut utiliser d'autres
logos), voir [ParametrageBulletins](ParametrageBulletins.md)
#### Administration
### Administration
#### Quel système d'exploitation ?
### Quel système d'exploitation ?
ScoDoc est accessible depuis n'importe quel navigateur Web (Firefox, Chrome, ...).
Le serveur ScoDoc fonctionne sous linux. Il n'est testé qu'avec Debian (stable). Le script d'installation ( [GuideInstallDebianDix](GuideInstallDebianDix.md) ) assure l'installation de tout les éléments nécessaires au bon fonctionnement de ScoDoc. Une distribution sous forme de container Docker est prévue prochainement.
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. Une distribution sous forme de container Docker est envisagée.
#### Quand et comment mettre à jour le logiciel ?
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)". Appliquer les mises à jour assez souvent, en suivant les instructions données sur [MisesAJour](MisesAJour.md).
### Quand et comment mettre à jour le logiciel ?
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)".
Les mises à jour sont normalement automatiquement appliquées chaque semaine.
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) ?
En cas de problème (bug, erreur de manipulation, suspicion de piratage), différents journaux peuvent être consultés.
### Où sont les journaux (logs) ?
* Le journal du serveur Web Apache
Les administrateurs du serveur peuvent consulter:
* Le journal du serveur Web (nginx)
```
/var/log/apache2/scodoc_access.log
/var/log/nginx/scodoc*.log
```
* les opérations effectuées sur un étudiant sont accessibles via le menu "Etudiant" / "Voir le journal..." en haut de la fiche individuelle de l'étudiant.
* le fichier `/opt/scodoc/log/notes.log` reçoit des messages de déboggage de ScoDoc. (c'est là que sont écrits les messages envoyés par la fonction `log()` dans le code de ScoDoc).
* le fichier `/opt/scodoc/log/events.log` reçoit des messages de déboggage du serveur Zope (démarrages/arrêts, erreurs d'authentification, bugs liés à des problèmes d'installation, etc.)
* le fichier `/opt/scodoc-data/log/scodoc.log` reçoit des messages de déboggage
de ScoDoc.
#### 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 RENATER) ne vous fournit pas de de certificat, je conseille de passer par <a href="https://letsencrypt.org/fr/">Let's Encrypt</a> dont l'utilisation est très simple et rapide.
### 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
RENATER) ne vous fournit pas de de certificat, je conseille de passer par <a
href="https://letsencrypt.org/fr/">Let's Encrypt</a> dont l'utilisation est très
simple et rapide.
Pour vos tests en local, avec Chrome, modifier le paramétrage en réglant: `chrome://flags/#allow-insecure-localhost`.
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 ?
La suppression d'un département efface toutes les données: étudiants, notes, etc. Se connecter sur ScoDoc (Web) comme administrateur, suivre le lien `Administration de scodoc` sur la page d'accueil, et supprimer le département. Cette opération retire le département de l'application Web, mais ne supprime pas la base de données du serveur. Pour cela, se connecter (en ssh) en tant que `root` sur le serveur, aller dans le répertoire `/opt/scodoc/Products/ScoDoc/config` et lancer le script `./delete_dept.sh`.
### Comment supprimer un département ?
Voir les commandes d'administration dans [GuideConfig](GuideConfig.md)
#### Comment contribuer au projet ?
### Comment contribuer au projet ?
[Voir la page](Contribuer.md).

View File

@ -32,19 +32,19 @@ 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_valid, min(moy_val + 1, 20), moy)`
* 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_valid, max(notes[0], notes[1]), moy)`
* 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_valid: vrai si la moyenne (moy) est valide (numérique). Par exemple, si absence EXCusée, la moyenne n'est pas valide.
* 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)
@ -62,7 +62,7 @@ Ainsi, la moyenne du module `BD1` serait aussi accessible comme la variable `not
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:
```
ifelse(moy_valid, min(moy_val+notes['SPORT'], 20), moy)
ifelse(moy_is_valid, min(moy_val+notes['SPORT'], 20), moy)
```

View File

@ -1,6 +1,8 @@
# Guide ScoDoc pour le chef de département
Dans cette partie, nous allons apprendre à:
# 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)

View File

@ -1,27 +1,25 @@
# Guide pour les administrateurs système de ScoDoc
ScoDoc est prévu pour fonctionner sur un serveur **Linux Debian 10 (Buster) ou 9 (Stretch)**.
L'installation sur tout autre système est peut-être possible avec (beaucoup de) travail et n'est **pas supportée**.
ScoDoc 9 est prévu pour fonctionner sur un serveur **Linux Debian 11 (Bullseye)**.
L'installation sur tout autre système n'est **pas supportée**.
Utilisez un **serveur virtuel** ou un container Docker si vous n'avez pas de machine Debian dédiée.
## Installation
* Installation de ScoDoc: [GuideInstallDebianDix](GuideInstallDebianDix.md) (ou [GuideInstallDebianNeuf](GuideInstallDebianNeuf.md))
* Installation de ScoDoc: [GuideInstallDebian11](GuideInstallDebian11.md)
* Migration d'un serveur ScoDoc 7 vers la nouvelle version Scodoc 9: [MigrationScoDoc7a9](MigrationScoDoc7a9.md)
(Les personnes ayant besoin d'installer l'ancienne version ScoDoc 7 peuvent se
référer à [GuideInstallDebianDix](GuideInstallDebianDix.md) ou
[GuideInstallDebianNeuf](GuideInstallDebianNeuf.md).)
## Mises à jour et sauvegardes
* [Mettre à jour du logiciel (nouvelles versions)](MisesAJour.md)
* [Mise en place de sauvegardes des bases de données](SauvegardesBases.md)
### Pour les anciennes installations
ScoDoc 7 est une version adaptée aux systèmes Debian 9 ou 10 (il est possible que les version plus anciennes de Linux Debian fonctionnent encore, mais une mise à jour est fortement recommandée).
Linux Debian 10 est la version recommandée en production.
* Migration installations Debian anciennes vers Debian 10: [MigrationDonneesScoDoc](MigrationDonneesScoDoc.md)
## Configuration et préférences
@ -36,7 +34,7 @@ Linux Debian 10 est la version recommandée en production.
## Utilisation avancée
* [Interfaçage avec Apogée](ScoDocApogee.md)
* [API](ScoDocAPI.md) : API JSON ou XML pour interfaçage avec d'autres applications
* [API](ScoDoc9API.md) : API JSON ou XML pour interfaçage avec d'autres applications
* [ServicesXml](ServicesXml.md) : web services XML pour interfaçage avec d'autres applications (obsolète).
* [AdminUsers](AdminUsers.md) : gestion des utilisateurs
* [InterrogationPortail](InterrogationPortail.md) : liaison avec portail

View File

@ -1,50 +1,249 @@
# Prise en main et paramétrage de ScoDoc
Ce document suppose que le logiciel a été installé suivant la procédure décrite dans [GuideInstallDebianDix](GuideInstallDebianDix.md).
# Prise en main et paramétrage de ScoDoc 9
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Cette
page concerne la version ScoDoc 9, distribuée à partir de septembre 2021. Pour l'ancienne
version, voir [cette page](GuideConfig7.md).
Ce document suppose que le logiciel a été installé suivant la procédure décrite dans
[GuideInstallDebian11](GuideInstallDebian11.md).
# Administration en ligne de commande
## Procédure à suivre pour créer un département et son utilisateur administrateur
* Connectez-vous au site: `https://votre.site.fr/`
Les opérations d'administration se résument à la création de départements, et l'installation
des logos, et la création d'utilisateurs "super admin", c'est à dire admin pour tous les
départements. Le reste des paramétrages (création de comptes, de formations, import
d'étudiants, etc) se fait à partir du logiciel (web).
L'administration se fait dans un terminal connecté au serveur (en général via
ssh), en tant qu'utilisateur `scodoc` (*et non* `root`).
Se connecter et initialiser la session ainsi:
ssh votre.serveur # si nécessaire
su scodoc # idem,
# ou tout autre moyen d'ouvrir un shell comme scodoc
cd /opt/scodoc
source venv/bin/activate
Après quoi, vous pouvez utiliser les commandes décrites ci-dessous.
*Attention: le lancement de chaque commande est assez long (quelques secondes)
car toute l'application scodoc est initialisée à chaque fois.*
## Création d'un département
flask create-dept DEPT
`DEPT` est l'acronyme du département, par exemple "RT". Ce département
apparait immédiatement sur la page d'accueil.
## Suppression d'un département
Opération très rarement nécessaire, proposée pour corriger une erreur
immédiatement après la création.
flask delete-dept DEPT
## Création d'un utilisateur
Cette opération s'effectue en général depuis le logiciel, via un formulaire
ou un import excel. Pour créer un utilisateur depuis le terminal, lancer:
flask user-create LOGIN ROLE DEPT
`LOGIN` sera le pseudo de l'utilisateur (utilisé pour se connecter),
et `ROLE` le rôle (`Ens`, `Secr`, `Admin`) dans le département `DEPT`.
## Création d'un super-administrateur
Il s'agit d'un utilisateur ayant tous les droits, comme s'il était
`Admin` dans tous les départements.
flask user-create admin2 SuperAdmin @all
`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:
flask user-password LOGIN
`LOGIN` est le pseudo de l'utilisateur. Le mot de passe est demandé
sur la ligne de commande.
## Création d'un nouveau rôle
flask create-role role_name [permissions...]
Exemple: création d'une rôle "Observateur" ayant juste la persmision de "voir":
flask create-role Observateur ScoView
## Édition d'un rôle (ajout/retrait permissions)
flask edit-role [-a permission] [-r permission] role_name
Ajoute ou retire une permission.
Vous allez voir la page d'accueil de ScoDoc (il est possible que votre navigateur vous demande d'accepter un certificat).
## 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.
Il n'y a pas de "département défini": c'est normal, lors de l'installation nous avons créé des bases de données, mais pas les interfaces web.
Se reporter à [MigrationScoDoc7a9](MigrationScoDoc7a9.md)
* Suivez le lien *Identifiez vous comme administrateur*. L'utilisateur *admin* est administrateur et a tous les droits sur !ScoDoc. C'est le seul à pouvoir créer un nouveau département.
Ces commandes sont utilisées par le script de migration de ScoDoc 7 à ScoDoc 9.
*Ne pas utiliser sauf si vous savez vraiment ce que vous faites.*
Le logiciel va vous demander de changer immédiatement le mot de passe administrateur.
Entrez l'identifiant et le mot de passe définis pendant l'installation.
### Comptes utilisateurs
Après vous être identifié sur la page d'accueil ScoDoc, vous avez maintenant un lien 'Administration de ScoDoc' qui
vous permet d'ajouter un département, puis des utilisateurs.
Toujours migrer les comptes utilisateurs avant d'importer les
départements.
* Ajouter un département (donnez le nom du département créé pendant l'installation)
flask import-scodoc7-users
* Ajouter un administrateur pour votre département: lien "Utilisateurs" (marge de gauche), puis suivre "ajouter un utilisateur". Donner à ce nouvel utilisateur les rôles `Admin`, `Ens` et `Secr` afin qu'il puisse effectuer toutes les opérations.
### Départements
Pour migrer un seul département:
Quittez votre navigateur et reconnectez vous à ScoDoc avec votre nouvel utilisateur.
flask import-scodoc7-dept DEPT DBNAME
Vous pouvez si nécessaire créer plusieurs administrateurs par département (il est préférable que chaque compte ne soit utilisé que par une seule personne, pour éviter de divulguer les mots de passe et mieux suivre les opérations).
Exemple:
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Surtout, évitez de travailler comme "admin": cet utilisateur doit être réservé à la création de départements. Prenez le temps de créer un utilisateur "chef de département !".
flask import-scodoc7-dept InfoComm DBINFOCOMM
## Liste des commandes Flask/ScoDoc
```
Commands:
clear-cache Clear ScoDoc cache (currently Redis)
create-dept Create new departement
delete-dept Delete existing departement
edit-role Add [-a] and/or remove [-r] a permission to/from a role
import-scodoc7-dept Import département ScoDoc 7
import-scodoc7-users Import users defined in ScoDoc7 postgresql
sco-db-init Initialize the database.
user-create Create a new user
user-db-clear Erase all users and roles from the database !
user-password Set (or change) user's password
Usage: app sco-db-init [OPTIONS]
Initialize the database. Starts from an existing database and create all the
necessary SQL tables and functions.
Usage: app user-db-clear [OPTIONS]
Erase all users and roles from the database !
Usage: app user-create [OPTIONS] USERNAME ROLE DEPT
Create a new user
Options:
-n, --nom TEXT
-p, --prenom TEXT
Usage: app user-password [OPTIONS] USERNAME
Set (or change) user's password
Options:
--password TEXT
Usage: app edit-role [OPTIONS] ROLENAME
Add [-a] and/or remove [-r] a permission to/from a role. In ScoDoc,
permissions are not associated to users but to roles. Each user has a set of
roles in each departement.
Example: `flask edit-role -a ScoEditApo Ens`
Options:
-a, --add TEXT
-r, --remove TEXT
Usage: app delete-dept DEPT
Delete existing departement
Usage: app create-dept DEPT
Create new departement
Usage: app import-scodoc7-users
Import used defined in ScoDoc7 postgresql database into ScoDoc 9 The old
database SCOUSERS must be alive and readable by the current user. This
script is typically run as unix user "scodoc". The original SCOUSERS
database is left unmodified.
Usage: app import-scodoc7-dept DEPT DEPT_DB_NAME
Import département ScoDoc 7: dept: InfoComm, dept_db_name: SCOINFOCOMM
Usage: app clear-cache
Clear ScoDoc cache This cache (currently Redis) is persistent between
invocation and it may be necessary to clear it during development or tests.
Options:
--help Show this message and exit.
```
## Changement des logos apparaissant sur les documents
Les documents PDF (PV de jurys...) incluent les logos de l'établissement. Par défaut, ceux de l'IUT de Villetaneuse et de l'Université Paris 13 sont distribués (ce n'est pas bien, ils ne sont sans doute pas sous licence libre !). Pour les changer, placer vos logos (fichiers images JPEG ou PNG) dans le répertoire
```
/opt/scodoc/var/scodoc/config/logos
```
avec les noms `logo_header.jpg` (habituellement le logo de votre composante, mais faites comme vous voulez) et `logo_footer.jpg` (habituellement le logo de votre Université ou école).
Ensuite, éditez le fichier
```
/opt/scodoc/Products/ScoDoc/config/scodoc_config.py
```
et changer les valeurs des variables `CONFIG.LOGO_FOOTER_ASPECT` et suivantes (ce n'est pas pratique, il faudrait modifier le code ScoDoc pour calculer ces valeurs à partir des fichiers images).
*Note: après migration, vos logos de ScoDoc 7 sont installés dans ScoDoc 9*.
Les documents PDF (PV de jurys...) incluent les logos de l'établissement.
Par défaut, ceux de l'IUT de Villetaneuse et de l'Université Paris 13 sont
distribués. Pour les changer, placer vos logos (fichiers images JPEG ou PNG)
dans le répertoire
/opt/scodoc-data/config/logos
avec les noms `logo_header.jpg` (habituellement le logo de votre composante)
et `logo_footer.jpg` (habituellement le logo de votre université ou école).
On peut fournir des logos par département en créant des sous-répertoires
/opt/scodoc-data/config/logos/logo_<dept>/
pour y placer les fichiers images `logo_header.jpg` et `logo_footer.jpg`.
<!-- Ensuite, éditez le fichier
/opt/scodoc-data/config/logos
et changer les valeurs des variables `CONFIG.LOGO_FOOTER_ASPECT` et suivantes
(ce n'est pas pratique, il faudrait modifier le code ScoDoc pour calculer ces valeurs
à partir des fichiers images). -->
Enfin, redémarrez ScoDoc après avoir vidé les caches:
flask clear-cache
sudo systemctl restart scodoc9
Enfin, redémarrez ScoDoc (`/etc/init.d/scodoc start`).
# Utilisation via le Web
* 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 pour déléguer des droits.

94
docs/GuideConfig7.md Normal file
View File

@ -0,0 +1,94 @@
# Prise en main et paramétrage de ScoDoc 7
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Cette page
concerne la version ScoDoc 7, et ne s'applique pas à la version ScoDoc 9 distribuée à partir de septembre 2021.
Pour ScoDoc 9, voir [cette page](GuideConfig.md).
Ce document suppose que le ScoDOc 7 a été installé suivant la procédure décrite dans [GuideInstallDebianDix](GuideInstallDebianDix.md).
## Procédure à suivre pour créer un département et son utilisateur administrateur
* Connectez-vous au site: `https://votre.site.fr/`
Vous allez voir la page d'accueil de ScoDoc (il est possible que votre
navigateur vous demande d'accepter un certificat).
Il n'y a pas de "département défini": c'est normal, lors de l'installation nous
avons créé des bases de données, mais pas les interfaces web.
* Suivez le lien *Identifiez vous comme administrateur*. L'utilisateur *admin*
est administrateur et a tous les droits sur !ScoDoc. C'est le seul à pouvoir
créer un nouveau département.
Le logiciel va vous demander de changer immédiatement le mot de passe administrateur.
Entrez l'identifiant et le mot de passe définis pendant l'installation.
Après vous être identifié sur la page d'accueil ScoDoc, vous avez maintenant un
lien 'Administration de ScoDoc' qui vous permet d'ajouter un département, puis des utilisateurs.
* Ajouter un département (donnez le nom du département créé pendant l'installation)
* Ajouter un administrateur pour votre département: lien "Utilisateurs" (marge
de gauche), puis suivre "ajouter un utilisateur". Donner à ce nouvel
utilisateur les rôles `Admin`, `Ens` et `Secr` afin qu'il puisse effectuer
toutes les opérations.
Quittez votre navigateur et reconnectez vous à ScoDoc avec votre nouvel utilisateur.
Vous pouvez si nécessaire créer plusieurs administrateurs par département (il
est préférable que chaque compte ne soit utilisé que par une seule personne,
pour éviter de divulguer les mots de passe et mieux suivre les opérations).
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;"
alt="/!\" /> Surtout, évitez de travailler comme "admin": cet utilisateur doit
être réservé à la création de départements. Prenez le temps de créer un
utilisateur "chef de département !".
## Changement des logos apparaissant sur les documents
Les documents PDF (PV de jurys...) incluent les logos de l'établissement. Par
défaut, ceux de l'IUT de Villetaneuse et de l'Université Paris 13 sont
distribués (ce n'est pas bien, ils ne sont sans doute pas sous licence libre !).
Pour les changer, placer vos logos (fichiers images JPEG ou PNG) dans le
répertoire
```
/opt/scodoc-data/config/logos
```
(en ScoDoc 7, c'était `/opt/scodoc/var/scodoc/config/logos`)
avec les noms `logo_header.jpg` (habituellement le logo de votre composante,
mais faites comme vous voulez) et `logo_footer.jpg` (habituellement le logo de
votre Université ou école).
Ensuite, éditez le fichier
```
/opt/scodoc-data/config/scodoc_local.py
```
(le créer s'il n'existe pas).
Ce fichier doit contenir un dictionnaire sous la forme suivante:
```
CONFIG = {
# Taille du l'image logo: largeur/hauteur
# W/H
CONFIG.LOGO_FOOTER_ASPECT = 326 / 96.0
# Taille dans le document en millimetres
CONFIG.LOGO_FOOTER_HEIGHT = 10
# Proportions logo (donné ici pour IUTV)
CONFIG.LOGO_HEADER_ASPECT = 549 / 346.0
# Taille verticale dans le document en millimetres
CONFIG.LOGO_HEADER_HEIGHT = 28
... autres variables de configuration locale
}
```
Adaptez les valeurs des variables `LOGO_FOOTER_ASPECT` et suivantes à votre cas
(ce n'est pas pratique, il faudrait modifier le code ScoDoc pour calculer ces
valeurs à partir des fichiers images).
Enfin, redémarrez ScoDoc (`/etc/init.d/scodoc start`).

View File

@ -5,26 +5,29 @@ Informations pour les développeurs souhaitant étendre ou modifier ScoDoc.
## Informations générales
* S'abonner aux [listes de diffusion](ListesDeDiffusion.md)
* S'abonner aux [listes de diffusion](ListesDeDiffusion.md). Il y a aussi
un serveur Discord ouvert sur invitation aux développeur actifs. Contacter Emmanuel.
* [Générer de nouveaux formats de bulletins PDF](ApiGenerationBulletinsPdf.md)
* [Créer de nouveaux types de "parcours"](ApiCreationParcours.md)
* [API](ScoDocAPI.md) : API JSON ou XML pour interfaçage avec d'autres applications
* [API](ScoDoc9API.md) : API JSON ou XML pour interfaçage avec d'autres applications
* Notes diverses
* [Discussions pour la future gestion des absences](IdeesGestionAbsences.md)
* [Anciennes discussions sur la gestion des plannings](IdeesGestionPlannings.md)
## Développer sur ScoDoc 7 et 8
## Développer sur ScoDoc
Quelques conseils, indications et mémos pour les développeurs sur ScoDoc version 7.x et 8.
Quelques conseils, indications et mémos pour les développeurs sur ScoDoc version 9.
### Installation d'un serveur de développement
[Quelques conseils mouvants pour configurer votre serveur de développement](ConseilServeurDev.md)
### Style et formatage du code
L'ancienneté de la base de code a rendu le style peu cohérent.
L'ancienneté de la base de code a rendu le style un peu incohérent, mais cela
s'est amélioré avec ScoDoc 9 (respect PEP 8).
Le code doit être formatté avec [`black`](https://black.readthedocs.io/) avant tout commit (configurez votre éditeur pour appeler `black` à l'enregistrement).
Le code doit être formatté avec [`black`](https://black.readthedocs.io/) avant
tout commit (configurez votre éditeur pour appeler `black` à l'enregistrement).
#### Documentation
On adoptera le style "Google": <https://google.github.io/styleguide/pyguide.html#383-functions-and-methods>
@ -55,12 +58,14 @@ Exemple:
Le dépot est <https://scodoc.org/git/viennet/ScoDoc>
La branche `master` est celle en production. La branche `Scodoc8`est expérimentale (nouvel installeur, refactoring...). ScoDoc9 sera avec Python 3.
La branche `master` est celle de ScoDoc 9. La branche `Scodoc7` est l'ancienne
(jusqu'à septembre 2021) version en production.
Ci-dessous quelques pense-bête qui peuvent servir.
#### Hot fixes (internes)
Pour les développeurs internes (écriture sur le dépot master), un exemple basique:
Pour les développeurs internes (écriture sur le dépôt master), un exemple
basique:
# Créer une branche
# si besoin (travail en cours), utiliser git stash avant
@ -79,7 +84,8 @@ Pour les développeurs internes (écriture sur le dépot master), un exemple bas
#### Mettre à jour votre branche
Vous travaillez dans votre branche `ma_branche`. Pour lui appliquer les mises à jour de `master` (remote):
Vous travaillez dans votre branche `ma_branche`. Pour lui appliquer les mises à
jour de `master` (remote):
git pull origin master
@ -109,16 +115,40 @@ Prépare un sed pour renommer les variables non définies:
pylint --disable=all -e E "$f" | grep undefined-variable | awk '{print "sed -i .bak s/"$4"/scu."$4"/ '$f'";}' | sort | uniq | tr -d \'
done
Note pour travailler sur VirtualBox:
addgroup scodoc vboxsf
### Tests
Voir [TestsScoDoc](TestsScoDoc.md)
## Cache Redis
Certains objets couteux à calculer sont cachés. Depuis ScoDoc 9, on utilise
Redis, via `flask-caching`.
Au besoin, mémo:
- client ligne de commande: `https://redis.io/topics/rediscli`
- afficher les clés: `redis-cli KEYS '*'`
- `redis-cli TTL key` affiche le TTL d'un clé, -1 si infini.
- `redis-cli -r -1 -i 3 KEYS '*_NT_*'` surveille certaines clés (ici _NT_),
affiche toutes les 3 secondes.
- `flask clear-cache` efface le cache Redis.
### Portail pour tests
TODO (voir `scotests/fakeportal/`).
## Roadmap
Sujets **prioritaires** en 2021:
- modernisation du code: Flask, Python 3.
- Modernisation du code: Flask, Python 3: achevé août 2021.
- prise en compte du Bachelor (BUT): SAÉ, suivi compétences, validations des blocs, UE, semestres selon la cadrage et l'arêté Licence Pro 2020.
- 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.
- Redéfinition API et interface mobile simplifiée.

View File

@ -0,0 +1,263 @@
# 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).
ScoDoc est livré avec des scripts d'installation qui configurer presque
automatiquement votre serveur (serveur web, base de données, etc): vous pouvez
donc installer et configurer ScoDoc avec des connaissances réduites sur le
système Linux.
Cette documentation est prévue pour installer ScoDoc 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.
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) ).
- Note 1: l'image du CD d'installation de Debian (amd64) peut se trouver ici:
[https://www.debian.org/distrib/netinst](https://www.debian.org/distrib/netinst.md),
choisir 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.
<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, ...).
## 1) Préalable: configurer un serveur linux
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 `/`).
- 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 serveur doit pouvoir envoyer du mail (serveur postfix en local, à
configurer pour utiliser un relais smtp ou envoyer directement, selon
votre politique);
- 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).
### 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
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.*
![InstallDebian6-1.png](screens/InstallDebian6-1.png)
### Points à vérifier avant d'installer ScoDoc
Checklist minimale de votre système Linux Debian:
1. Connexion à Internet: le réseau doit être accessible. En effet, le script d'installation va installer des paquetages du système Debian puis télécharger la dernière mise à jour du logiciel ScoDoc (à partir du serveur Subversion).
1. Vérifiez la connectivité, par exemple:
```
ping www.univ-paris13.fr
(quitter avec ctrl-c)
cd /tmp
wget --no-check-certificate https://www-lipn.univ-paris13.fr/projects/scodoc
# doit créer un fichier nomme "scodoc" contenant du code HTML
```
3. Nom DNS: le serveur doit avoir un nom ("serveur.exemple.fr") connu dans le
DNS (local ou public). Pour des tests, vous pouvez vous passer de DNS, mais
dans ce cas le nom de votre serveur sera son adresse IP (eg 192.168.0.10) et
il ne sera peut être pas accessible de l'extérieur.
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`.
1. Vérifiez que votre serveur est accessible depuis une autre machine de votre
réseau (voire d'Internet): par exemple `ping serveur.exemple.fr`.
1. Date et heure: vérifier que les dates et heure sont correctes, même après
reboot. L'utilisation d'un serveur de temps (ntp) est recommandée (
`apt-get install ntp`), et éventuellement `dpkg-reconfigure tzdata`).
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
Si votre accès à Internet passe par un proxy, l'indiquer au moment de
l'installation Debian. Il est possible qu'il vous faille configurer d'autres
éléments, voir par exemple
[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 :
**Option 1**, si vous installez dans un container LXC privilégié via le compte
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:
apt-get install redis
Puis créer un dossier `/etc/systemd/system/redis.service.d` contenant le fichier
`redis.conf` avec les lignes suivantes :
[Service]
PrivateTmp=no
ProtectSystem=false
PrivateDevices=false
ProtectHome=no
ProtectControlGroups=no
ProtectKernelTunables=no
ProtectKernelModules=no
ReadWritePaths=
ReadOnlyDirectories=
Ensuite
systemctl daemon-reload
systemctl start redis
... et poursuivez l'installation comme ci-dessous.
**Option 2**, si vous installez dans un container LXC non-privilégié via un
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
provoquerait une faille de sécurité.
Si vous avez construit votre conteneur manuellement avec lxc-create, modifiez
le fichier `/var/lib/lxc/${nomDuConteneur}/config` et ajoutez les lignes
ci-dessous :
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 :
features: nesting=1
... et poursuivez l'installation comme ci-dessous.
## 2) Installation de ScoDoc sur Debian
### 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**).
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"
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
- 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 -
- Installer le logiciel:
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/)).
Ensuite:
apt-get install scodoc9
Notez que l'installation du paquet `scodoc9` va créer automatiquement un
utilisateur `scodoc` qui sera utilisé par le serveur.
- Attribuer un mot de passe à l'utilisateur `scodoc`:
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
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**:
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).
## Importation des données ScoDoc 7
Après installation, vous pouvez migrer toutes vos données (comptes utilisateurs,
étudiants, formations, notes, photos et fichiers divers) depuis une
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)).
* 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...
* Mettez en place des [sauvegardes](SauvegardesBases.md)
* Abonnez-vous au moins à la liste d'annonces: voir [Listes de diffusion](ListesDeDiffusion.md)

View File

@ -0,0 +1,120 @@
# Configuration manuelle de ScoDoc sur Debian 11 (Bullseye)
Instructions pour utilisateurs ne souhaitant pas utiliser le script
/opt/scodoc/tools/configure-scodoc9.sh
Toutes les opérations décrites sur cette page sont effectuées par ce script.
Cette page est donc destinée aux curieux et futurs développeurs. Se référer au
script lui même pour les détails.
## Activation du firewall
(optionnel, recommandé)
ufw default deny incoming
ufw default allow outgoing
ufw allow ssh
ufw allow http
ufw allow https
yes | ufw enable
## Certificats pour nginx
ScoDoc utilise le serveur Web nginx. Installer les certificats SSL
nécessaires pour https. C'est indispensable sur un serveur en production.
Sur un serveur de test, pour faire des essais, vous pouvez utiliser des
certificats auto-signés. Procéder ainsi:
su scodoc # utilisateur scodoc
cd /opt/scodoc-data
mkdir -p certs && openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -keyout certs/key.pem -out certs/cert.pem
Répondre aux questions, la seule importante étant `Common Name (e.g. server
FQDN or YOUR name)` en réponse à laquelle vous devez fournir le nom que vous
utiliserez pour vous adresser au serveur: par exemple
`monscodoc.mondomaine.fr`. Ce nom dépend de votre configuration réseau.
Sinon, éditer le fichier `/etc/nginx/sites-available/scodoc9.nginx` pour
indiquer vos certificats.
## Démarrage de nginx et redis
su # se connecter en root d'une manière ou d'une autre
systemctl restart nginx
systemctl start redis
Il est utile de vérifier que le serveur Web a bien démarré, avec
systemctl status nginx
## Création des bases de données
ScoDoc 9 utilise une base de données unique, regroupant tous les
départements et les utilisateurs. Elle est nommée `SCODOC` (et `SCODOC_DEV`
en mode développement, ou `SCODOC_TEST`pour les tests unitaires).
Cette base est créée via `sqlalchemy` (l'ORM habituel de Flask).
Pour créer la base de données, lancer le script:
su scodoc # au besoin (pas root !)
cd /opt/scodoc
./tools/create_database.sh SCODOC
./tools/create_database.sh SCODOC_DEV # pour la base "developement"
./tools/create_database.sh SCODOC_TEST # pour les tests unitaires
Les bases créées appartiennent à l'utilisateur (rôle) postgres `scodoc`
(qui a été créé par le script d'installation précédent).
## Variables d'environnement
Le serveur utilise des variables d'environnement donnant la
configuration de base.
Le plus simple est de les grouper dans un fichier `.env` (dans
`/opt/scodoc-data/.env`)
qui sera lu automatiquement au démarrage:
# .env for ScoDoc (production)
FLASK_APP=scodoc.py
FLASK_ENV=production
MAIL_SERVER=votre.serveur.de.mail.net # ou vide si pas de mail
MAIL_PORT=25
SCODOC_ADMIN_MAIL="adresse.admin@toto.fr" # important: le mail de admin
SECRET_KEY="CGGAJAKlh6789JJK?KNAb=" # une chaine aléatoire à changer
Le fichier `/opt/scodoc/.env-exemple` est donné à titre... d'exemple. Vous pouvez faire:
# en tant qu'utilisateur scodoc
cp /opt/scodoc/.env-exemple /opt/scodoc-data/.env
nano /opt/scodoc-data/.env # édition
Il est nécessaire de modifier MAIL_SERVER, SCODOC_ADMIN_MAIL et SECRET_KEY.
Cette dernière variable doit contenir une chaîne aléatoire qui servira
de clé pour sécuriser les formulaires. Vous pouvez utiliser la commande suivante
pour afficher une chaine de ce genre (choisie au hasard), que vous copierez
dans votre fichier `.env`:
python3 -c "import uuid; print(uuid.uuid4().hex)"
Note: le fichier utilisé par Flask est bien sûr `/opt/scodoc/.env`,
mais l'installeur créé un lien symbolique vers `/opt/scodoc-data/.env` afin
de conserver ce fichier durant les mise à jour par `apt-get upgrade`.
## Initialisation de la base et de l'utilisateur admin
En tant qu'utilisateur `scodoc`:
su scodoc # si besoin
cd /opt/scodoc
source venv/bin/activate
Puis initialisation de l'appli:
flask db-init
Et saisie du mot de passe `admin`:
flask user-password admin

View File

@ -7,7 +7,7 @@ Cette procédure doit être effectué sur la machine serveur avec un accès admi
ScoDoc est livré avec des scripts d'installation qui configurer presque automatiquement votre serveur (serveur web, base de données, etc): vous pouvez donc installer et configurer ScoDoc avec des connaissances réduites sur le système Linux.
Cette documentation est prévue pour installer ScoDoc sur un système [Debian](http://www.debian.org) 10 (Buster, stable) s'exécutant sur une machine intel-like **64bits** (architecture **AMD64**). Debian s'installe facilement en une quinzaine de minutes, sur une machine normale ou un serveur virtualisé. Il est **très déconseillé** de tenter l'installation sur une autre version, à moins de disposer de temps et de bonnes connaissances sur Linux et les paquetages Python.
Cette documentation est prévue pour installer ScoDoc sur un système [Debian](http://www.debian.org) 10 (Buster) s'exécutant sur une machine intel-like **64bits** (architecture **AMD64**). Debian s'installe facilement en une quinzaine de minutes, sur une machine normale ou un serveur virtualisé. Il est **très déconseillé** de tenter l'installation sur une autre version, à moins de disposer de temps et de bonnes connaissances sur Linux et les paquetages Python.
Merci de me signaler tout problème (emmanuel.viennet@gmail.com)
@ -17,7 +17,7 @@ Merci de me signaler tout problème (emmanuel.viennet@gmail.com)
- Note 2: si quelqu'un produit, teste et documente une image Docker, merci de la partager (écrire à scodoc-devel).
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Important: La procédure d'installation décrite ci-dessous suppose que ScoDoc va s'exécuter sur un serveur dédié. Pour faire des tests, utilisez un serveur virtuel (comme VirtualBox ou VMWare. L'installation ci-dessous va en effet modifier de nombreux paramètres de votre système linux (serveur web, firewall, serveur SQL, messagerie, ...).
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Important: La procédure d'installation décrite ci-dessous suppose que ScoDoc va s'exécuter sur un serveur dédié. Pour faire des tests, utilisez un serveur virtuel (comme VirtualBox ou VMWare). L'installation ci-dessous va en effet modifier de nombreux paramètres de votre système linux (serveur web, firewall, serveur SQL, messagerie, ...).
## Préalable: configurer un serveur linux

190
docs/MigrationScoDoc7a9.md Normal file
View File

@ -0,0 +1,190 @@
# Migration des données ScoDoc 7 vers ScoDoc 9
On peut installer à partir de zéro (cas 1), ou sur une machine ayant déjà un ScoDoc 7
et migrer les données (cas 2).
## Cas 1: Migration d'une installation ScoDoc 7 sur un nouveau serveur
C'est la voie recommandée, notamment si vous avez un parc de machines
virtuelles, car elle minimise la durée de coupure et permet de tester avant de
basculer d'une version à l'autre.
Dans ce cas, la migration va se faire en suivant les étapes, détaillées plus loin:
1. installer le nouveau serveur Linux Debian 11 et ScoDoc 9;
2. sauvegarder les données de ScoDoc7 depuis le serveur de production **et l'arrêter**;
3. charger les données ScoDoc 7 sur le nouveau serveur;
4. importer ces données dans ScoDoc 9.
Si vous venez d'installer ScoDoc 9, passez directement à l'**étape 3**.
### Étape 1: Installer le nouveau serveur
Installer le nouveau serveur avec Debian 11 et ScoDoc 9.
Voir [GuideInstallDebian11](GuideInstallDebian11.md).
Vérifier que tout fonctionne avant d'aller plus loin.
### Étape 2: Sauvegarder les données du serveur ScoDoc 7
Ouvrir un terminal en tant que `root`sur l'ancien serveur ScoDoc 7.
cd /opt/scodoc/Products/ScoDoc/config
# Mise à jour indispensable pour avoir le script de migration
./upgrade.sh
# Arrêt du service en production
systemctl stop scodoc
# Export des données
./save_scodoc7_data.sh /tmp/sauvegarde-scodoc7
Attention à l'espace disque: au besoin, faire le ménage ou montez un disque supplémentaire.
Notez que cette migration ne fonctionne qu'à partir de la dernière version de
ScoDoc 7. Si vous avez une version plus ancienne, mettez-la d'abord à jour.
Le script indique le nom du fichier à transférer, qui sera dans
l'exemple ci-dessus `/tmp/sauvegarde-scodoc7.tgz`
Copier ce fichier sur le nouveau serveur (scp, ...).
### Étape 3: Charger les données ScoDoc 7
Récupérez l'archive transférée sur le nouveau serveur et ouvrez-la (vous êtes
toujours `root`):
cd /tmp
tar xfz sauvegarde-scodoc7.tgz
chown -R scodoc /tmp/sauvegarde-scodoc7
commande qui va créer `/tmp/sauvegarde-scodoc7`.
Chargement des bases SQL ScoDoc 7: en tant qu'utilisateur "`scodoc`":
su scodoc
/opt/scodoc/tools/restore_scodoc7_data.sh /tmp/sauvegarde-scodoc7
(adaptez l'argument si les données ont été copiées ailleurs)
Note: les messages d'erreur comme
pg_restore: warning: restoring tables WITH OIDS is not supported anymore
pg_restore: error: could not execute query: ERROR: schema "public" already exists
pg_restore: error: could not execute query: ERROR: must be owner of extension plpgsql
sont normaux et a priori anodins.
A ce stade, vous avez rechargé les bases ScoDoc 7 mais il faut encore
les convertir vers la nouvelle structure ScoDoc 9, et importer les photos,
archives et autres fichiers: c'est l'objet de l'étape suivante.
### Étape 4: Importer les données dans ScoDoc 9
Les formats des bases ayant changé l'opération est complexe et peut durer
plusieurs minutes (ou dizaines de minutes). Attention: **Il faut lancer le script en tant
que `root` **.
su # passer root d'une façon ou d'une autre
# lancer le script, avec le nom du répertoire:
/opt/scodoc/tools/migrate_from_scodoc7.sh /tmp/sauvegarde-scodoc7
## Cas 2: Migration "en place" sur la même machine
Si vous n'avez pas la possibilité de changer de serveur (par exemple, vous ne
travaillez pas dans des machines virtuelles, ou qu'il est compliqué de créer une
nouvelle VM). Vous pouvez partir de ScoDoc 7 / Debian 10, faire l'upgrade Debian
en place, puis migrer ScoDoc 9.
Avant tout, sauvegardez évidemment votre serveur complet, vérifiez que la
sauvegarde est bonne et que plusieurs exemplaires sont stockés en lieux sûrs,
comme d'habitude.
Toutes les étapes sont importantes, prenez votre temps, lisez bien cette page.
Si vous venez d'installer ScoDoc 9, passez directement à l'**étape 4**.
### 1. Préparation et arrêt de ScoDoc 7
1. **S'assurer que l'installation ScoDoc 7 est à jour**
sudo su
cd /opt/scodoc/Products/ScoDoc/config
./upgrade.sh
Notez que cette migration ne fonctionne qu'à partir de la dernière version
de ScoDoc 7. Si vous avez une version plus ancienne, mettez-la d'abord à
jour.
2. **Arrêter le service ScoDoc 7**
systemctl stop scodoc
S'assurer qu'il est bien stoppé (`ps auxw`, ...), sans quoi la migration va échouer.
3. **Renommer le répertoire de ScoDoc 7**
sudo su
mv /opt/scodoc /opt/scodoc7
Les données seront migrées après installation la nouvelle version, voir
plus loin. ScoDoc 9 sera installé dans `/opt/scodoc`, il est donc très important
de renommer le répertoire en `scodoc7`.
### 2. Upgrade Debian
Suivre la procédure standard. La [doc
officielle](https://www.debian.org/releases/bullseye/mips64el/release-notes/ch-upgrading.fr.html)
est longue, mais en réalité c'est très simple et prends moins de 10 minutes,
sauf si vous avez configuré votre système de façon exotique.
Nombreux tutos disponibles, voir [par exemple
celui-ci](https://www.cyberciti.biz/faq/update-upgrade-debian-10-to-debian-11-bullseye/).
Attention, il faut désinstaller Apache (avant ou après upgrade Linux), car
ScoDoc 9 utilise un autre serveur web (nginx) qui serait en conflit:
# peut être utile pour récuperer vos certificats SSL ?
mv /etc/apache2 /etc/apache2.old
apt-get remove --purge apache2
### 3. Installer ScoDoc 9
Voir [la section 2 du guide d'installation](GuideInstallDebian11.md#2-installation-de-scodoc-sur-debian).
Vérifier que tout fonctionne avant d'aller plus loin.
### 4. Migrer vos données ScoDoc 7
Les données sont restées dans /opt/scodoc7.
Lancer le script suivant en tant que `root`:
/opt/scodoc/tools/migrate_from_scodoc7.sh -m
(l'option `-m` indique qu'il s'agit d'une migration "en place").
La migration prends du temps, et il n'est pas inutile de consulter les messages
affichés, dont la plupart se retrouvent aussi dans le fichier
/opt/scodoc/data/log/migration79.log
Prêtez attention aux éventuels changements de login des utilisateurs et
informez-les. ScoDoc 9 n'autorise pas de caractères spéciaux (apostrophes, ...)
ou accentués dans les logins.
### 5. Vérifier que tout fonctionne
Vos départements et utilisateurs devraient être accessibles.
L'utilisateur `admin` créé à l'installation de ScoDoc 9 doit avoir accès à tout.
Vérifiez que les semestres, étudiants, photos, archives et comptes utilisateurs
sont bien là.
Au besoin, réglez la fonction de calcul du **bonus sport&culture** via la page
"configuration" accessible depuis la page d'accueil en tant qu'admin uniquement.
Célébrez !

View File

@ -1,48 +1,86 @@
# Mise à jour de ScoDoc
Il est recommandé de mettre à jour très régulièrement votre installation ScoDoc.
Il est nécessaire de mettre à jour très fréquemment votre installation ScoDoc.
Le système Linux doit être correctement maintenu (en particulier, les mises à jour de sécurité de Debian doivent être appliquées quotidiennement).
# 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
# Mises à jour de ScoDoc 7
**Les instructions ci-dessous concernent ScoDoc 7 uniquement.**
Le système Linux doit être correctement maintenu (en particulier, les mises à
jour de sécurité de Debian doivent être appliquées quotidiennement).
ScoDoc est actuellement prévu pour fonctionner avec Linux Debian 10.
* Les (rares) mises à jour majeures du logiciel ScoDoc sont annoncées sur la liste [scodoc-annonces](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-annonces).
* Les (fréquentes) mises à jour mineures (corrections de bugs, améliorations) sont annoncées sur la liste [scodoc-devel](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-devel).
* Les (rares) mises à jour majeures du logiciel ScoDoc sont annoncées sur la
liste
[scodoc-annonces](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-annonces).
* Les (fréquentes) mises à jour mineures (corrections de bugs, améliorations)
sont annoncées sur la liste
[scodoc-devel](https://listes.univ-paris13.fr/mailman/listinfo/scodoc-devel).
*Une mise à jour hebdomadaire (au moins) est recommandée*
Pour appliquer une mise à jour de ScoDoc, se connecter en tant que `root` sur le serveur, puis faire:
```
Pour appliquer une mise à jour de ScoDoc, se connecter en tant que `root` sur le
serveur, puis faire:
cd /opt/scodoc/Products/ScoDoc/config
./upgrade.sh
```
La première fois, il faudra accepter un certificat cryptographique, répondre "p (accept (p)ermanently)".
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Si un message d'erreur apparaît à la fin de la mise à jour, relancer `./upgrade.sh`.
La première fois, il faudra accepter un certificat cryptographique, répondre "p
(accept (p)ermanently)".
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> La mise à jour entraine une déconnexion des utilisateurs (mais pas de pertes de données !).
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;"
alt="/!\" /> Si un message d'erreur apparaît à la fin de la mise à jour,
relancer `./upgrade.sh`.
Note: cette procédure ne change pas de version majeure de ScoDoc, ni du système Linux. Pour cela, voir [MigrationDonneesScoDoc](MigrationDonneesScoDoc.md)) ou plus bas sur cette page.
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;"
alt="/!\" /> La mise à jour entraine une déconnexion des utilisateurs (mais pas
de pertes de données !).
Note: cette procédure ne change pas de version majeure de ScoDoc, ni du système
Linux. Pour cela, voir [MigrationDonneesScoDoc](MigrationDonneesScoDoc.md)) ou
plus bas sur cette page.
## Note concernant les anciens systèmes (Debian 9)
En Debian version 9 (et version antérieures), ScoDoc n'utilisait pas `systemd` et n'était pas automatiquement relancé lors de mises à jour de ceertains logiciels, comme la base de données `postgresql`. Sur ces systèmes, il est conseillé de mettre à jour Debian avec le script `/opt/scodoc/Products/ScoDoc/config/upgrade.sh` afin d'éviter d'interrompre le service ScoDoc.
En Debian version 9 (et version antérieures), ScoDoc n'utilisait pas `systemd`
et n'était pas automatiquement relancé lors de mises à jour de certains
logiciels, comme la base de données `postgresql`. Sur ces systèmes, il est
conseillé de mettre à jour Debian avec le script
`/opt/scodoc/Products/ScoDoc/config/upgrade.sh` afin d'éviter d'interrompre le
service ScoDoc.
## Mise à jour rapide de Debian 9 à Debian 10
## Mise à jour rapide de Debian 9 à Debian 10 (obsolète)
Procédure raccourcie réservée aux personnes à l'aise avec linux. On met à jour Debian mais on réinstalle ScoDoc proprement.
Obsolète, sauf si vous avez encore un serveur avec Debian 9...
Vérifiez que vous avez assez d'espace disque disponible (`df -h`, au moins 3Go libres sur `/` ou `/opt`).
Procédure raccourcie réservée aux personnes à l'aise avec linux. On met à jour
Debian mais on réinstalle ScoDoc proprement.
0. Sauvegardez complètement votre système en lieu sûr. Si la procédure ci-dessous échoue, reprenez la voie normale: [MigrationDonneesScoDoc](MigrationDonneesScoDoc.md).
Vérifiez que vous avez assez d'espace disque disponible (`df -h`, au moins 3Go
libres sur `/` ou `/opt`).
0. Sauvegardez complètement votre système en lieu sûr. Si la procédure
ci-dessous échoue, reprenez la voie normale:
[MigrationDonneesScoDoc](MigrationDonneesScoDoc.md).
1. Mettre à jour votre ScoDoc:
cd /opt/scodoc/Products/ScoDoc/config
./upgrade.sh
2. Arrêter le service (en Debian 9 on utilisait *SysV-style init*, à partir de Debian 10 ScoDoc utilise `systemd`):
2. Arrêter le service (en Debian 9 on utilisait *SysV-style init*, à partir de
Debian 10 ScoDoc utilise `systemd`):
/etc/init.d/scodoc stop
@ -53,7 +91,9 @@ Vérifiez que vous avez assez d'espace disque disponible (`df -h`, au moins 3Go
./save_scodoc_data.sh /opt/data-scodoc-deb9 # par exemple
4. Mettre à jour Debian: pour les détails voir [https://www.debian.org/releases/stable/amd64/release-notes/ch-upgrading.html](https://www.debian.org/releases/stable/amd64/release-notes/ch-upgrading.html).
4. Mettre à jour Debian: pour les détails voir
[https://www.debian.org/releases/stable/amd64/release-notes/ch-upgrading.html](https://www.debian.org/releases/stable/amd64/release-notes/ch-upgrading.html).
En résumé:
@ -75,7 +115,8 @@ et **rebooter**.
5. Supprimer postgresql 9.6
On enlève carrément l'ancien, le script d'installation de ScoDoc installera la version 11:
On enlève carrément l'ancien, le script d'installation de ScoDoc installera la
version 11:
apt-get --purge remove postgresql

View File

@ -96,10 +96,37 @@ Le balisage XML est celui de [ReportLab](http://www.reportlab.com/) (intra-parag
### Logos
Une balise supplémentaire est interprétée par ScoDoc pour insérer des logos (images).
Les logos doivent être des images au format JPEG (extension `.jpg` uniquement), placées dans le répertoire `.../logos/`, et nommées `logo_xxx.jpg`.
Les logos doivent être des images au format JPEG (extension `.jpg` ou `.jpeg`) ou PNG (expension `.png`).
Principes généraux:
* Un logo est désigné par un identifiant (nom) et peut être défini soit globalement, soit pour un département;
* le nom d'un logo est exclusiement composé de caractères alphanumériques ou du caractère '`-`';
* les logos définis globalement sont accessibles pour tous les départements. Toutefois, si un logo de même nom est également dans un département,
c'est le logo du département qui sera utilisé en lieu et place de logo global;
* les logos de nom '`header`' et '`footer`' définis globalement ne peuvent être supprimés (mais peuvent être redéfinis).
L'enregistrement/modification /suppression d'un logo peut être réalisé par la page de configuration et par un super adminsitrateur.
Ce formulaire comporte une section pour les définitions globales plus une section par département.
Une section présente la liste des logos avec leurs propriétés (la dimension est donnée à titre indicatif quand elle est disponible).
Pour chaque logo, les actions diponibles sont:
* Le remplacement de l'image existante par un nouveau fichier
* La suppression du logo (sauf pour `header`et `footer`dans la section globale)
Il est également possible d'ajouter un nouveau logo dans une section (global ou département) et indiquant le nom.
NB. Quelquesoit 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 du fichier)
La balise `<logo name="xxx" width="44mm" height="22mm" valign="+5mm"/>`, placée dans un paragraphe, insère alors le logo `xxx` avec les dimensions indiquées. Le paramètre `valign` règle le positionnement vertical par rapport à la ligne de texte courante.
Notez qu'il est possible de ne préciser que l'une des deux dimensions hauter/largeur. dans ce cas, la dimension manquante est déduite du ratio de l'image originale.
Voir un exemple d'utilisation plus bas.

View File

@ -1,23 +1,37 @@
## Préférences
Les préférences sont des paramètres stockés dans la base de données d'un département. Les préférences s'appliquent à tout un département (tous les semestres), ou bien à un semestre particulier. Chaque département a son propre jeu de préférences (c'est parfois regrettable, car certaines préférences concernent tout l'établissement).
Les préférences sont des paramètres stockés dans la base de données d'un
département. Les préférences s'appliquent à tout un département (tous les
semestres), ou bien à un semestre particulier. Chaque département a son propre
jeu de préférences (c'est parfois regrettable, car certaines préférences
concernent tout l'établissement).
Si un semestre ne défini pas de valeur pour un paramètre (eg marge, police, paramétrage du bulletin de notes...), ScoDoc utilisera les préférences globales pour le département.
Si un semestre ne défini pas de valeur pour un paramètre (eg marge, police,
paramétrage du bulletin de notes...), ScoDoc utilisera les préférences globales
pour le département.
Donc:
* Pour affecter tous les semestres sauf ceux qui ont dit autrement: suivre le lien "Paramétrage" dans la marge gauche (visible uniquement si vous en avez la permission).
* Pour affecter tous les semestres sauf ceux qui ont dit autrement: suivre le
lien "Paramétrage" dans la marge gauche (visible uniquement si vous en avez
la permission).
* Pour affecter seulement un semestre: menu "Semestre", "Réglages bulletins" ou "Préférences du semestre".
* Pour affecter seulement un semestre: menu "Semestre", "Réglages bulletins" ou
"Préférences du semestre".
On accède aux préférences via le lien "Paramétrage", qui est présent dans la marge gauche seulement si l'on a le droit de modifier les préférences (la permission `Sco Change Preferences`, normalement associée au rôle `Admin` possédé par chef du département, voir [ConfigPermissions](ConfigPermissions.md)).
On accède aux préférences via le lien "Paramétrage", qui est présent dans la
marge gauche seulement si l'on a le droit de modifier les préférences (la
permission `Sco Change Preferences`, normalement associée au rôle `Admin`
possédé par chef du département, voir
[ConfigPermissions](ConfigPermissions.md)).
On distingue plusieurs groupes de préférences:
* Générales: nom de l'Université, du directeur, etc...
* Absences: alarmes si beaucoup d'absences, statut des samedis... (voir détails sur [GestionAbsences](GestionAbsences.md))
* Absences: alarmes si beaucoup d'absences, statut des samedis... (voir détails
sur [GestionAbsences](GestionAbsences.md))
* Liaison avec le portail: URL du portail, code du département, ...
@ -28,5 +42,6 @@ On distingue plusieurs groupes de préférences:
Voir la liste des préférences sur la page [NomsPreferences](NomsPreferences.md).
Note: les préférences et leurs valeurs par défaut sont définies dans le fichier `sco_preferences.py`.
Note pour les développeurs: les préférences et leurs valeurs par défaut sont
définies dans le fichier `sco_preferences.py`.

View File

@ -7,7 +7,7 @@ Pour communiquer aux étudiants leurs réultats, plusieurs solutions:
- Envoi des bulletins (pdf) par mail (c'est facile depuis le menu "Notes").
- Publication sur un autre site Web: typiquement l'ENT de l'établissement, ou un mini-site dédié.
- Pour interfacer un ENT, [voir l'API](ScoDocAPI.md).
- Pour interfacer un ENT, [voir l'API](ScoDoc9API.md).
- Plusieurs collègues ont développé des mini-sites pour publier les notes (accès protégé par CAS ou autre). Ces codes ne font pas stricto censu partie de ScoDoc. Quelques exemples en PHP sont distribués dans le répertoire `misc/PublicationBulletins` ([voir ici](https://scodoc.org/git/viennet/ScoDoc/src/branch/master/misc/PublicationBulletins)).
- Plus récemment (2020), des collègues de l'IUT de Mulhouse ont développé un mini-portail complet: [Scodoc_Notes](https://github.com/SebL68/Scodoc_Notes) (github), [historique](https://notes.iutmulhouse.uha.fr/maj.php).

View File

@ -1,20 +1,21 @@
# Mise en place de sauvegardes des bases de données ScoDoc
# Mise en place de sauvegardes des bases de données ScoDoc 9
Il est ***vivement recommandé*** de mettre en place une stratégie de sauvegarde permettant de rétablir le service en minimisant les pertes de données à la suite d'un accident majeur mais probable comme: crash de disque dur, bug, vol du serveur, incendie...
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 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. Le script `/opt/scodoc/instance/Products/ScoDoc/misc/backup_to_remote_server.sh` peut être utilisé pour 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.
Notons que ScoDoc sauvegarde certaines informations sous le répertoire `/opt/scodoc` (en particulier les photos, les documents archivés et divers réglages): *il est absolument nécessaire de sauvegarder aussi ce répertoire*, en plus des bases de données SQL.
Notons que ScoDoc sauvegarde de nombreuses informations sous le répertoire `/opt/scodoc-data` (en particulier les photos, les documents archivés et divers réglages): *il est absolument nécessaire de sauvegarder aussi ce répertoire*, en plus des bases de données SQL.
### Dump des bases de données
Le script `backup_db` (ou bien `backup_db2`, fournis dans le répertoire `.../ScoDoc/misc`) peut être utilisé pour effectuer des sauvegardes automatisées des bases de données SQL. Les données sont extraites de la base et écrites sur le disque local du serveur, qui doit bien entendu être sauvegardé par d'autres moyens, comme indiqué ci-dessus.
Le script `backup_db9` (fourni dans le répertoire `/opt/scodoc/tools/backups`) peut être utilisé pour effectuer des sauvegardes automatisées des bases de données SQL. Les données sont extraites de la base et écrites sur le disque local du serveur, qui doit bien entendu être sauvegardé par d'autres moyens, comme indiqué ci-dessus.
Le nouveau (mars 2014) script `backup_db2` permet de conserver des sauvegardes de chaque heure durant les 48 (par défaut) dernières heures, des sauvegardes quotidiennes des 40 derniers jours, hebdomadaires des 30 dernières semaines, et mensuelles des 200 derniers mois (tout ceci est paramétrable dans le script `.../ScoDoc/backup_rotation.sh`).
Le script `backup_db9` permet de conserver des sauvegardes de chaque heure durant les 48 (par défaut) dernières heures, des sauvegardes quotidiennes des 40 derniers jours, hebdomadaires des 30 dernières semaines, et mensuelles des 200 derniers mois (tout ceci est paramétrable dans le script `/opt/scodoc/tools/backups/backup_rotation.sh`).
Par défaut, les fichiers de sauvegardes sont créés dans le répertoire de l'utilisateur `postgres` (actuellement `/var/lib/postgresql/`).
@ -27,38 +28,47 @@ En tant que `root` sur le serveur, faire:
```
et ajouter:
```
10 * * * * /opt/scodoc/Products/ScoDoc/misc/backup_db2 SCOUSERS
15 * * * * /opt/scodoc/Products/ScoDoc/misc/backup_db2 SCOXXXX
20 * * * * /opt/scodoc/Products/ScoDoc/misc/backup_db2 SCOYYYY
...
15 * * * * /opt/scodoc/tools/backups/backup_db9 SCODOC
```
Remplacer `SCOXXXX` et `SCOYYYY` par les noms des bases de vos départements (la commande `psql -l` permet de lister toutes les bases).
(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
<img src="/img/alert.png" style="vertical-align: bottom; margin:0 0 0 0;" alt="/!\" /> Attention, certaines informations sont stockées dans des fichiers et non dans la base de données: configuration du logiciel, photos des étudiants. Ce paragraphe ne traite que de la restauration à de la base de données.
1. Choisir la sauvegarde à utiliser, en fonction de la date à partir de laquelle on a fait une erreur (eg suppression non intentionnelle d'un semestre...). Le fichier se trouve sous `/var/lib/postgresql/SCOXXX-BACKUPS`où `XXX` est le département concerné. Utiliser par exemple `ls -lrt` pour visualiser les sauvegardes triées par date. (Note: la version précédente du script écrivait dans `/var/lib/postgresql/BACKUP-SCOXXX`).
1. Choisir la sauvegarde à utiliser, en fonction de la date à partir de laquelle on a fait une erreur (eg suppression non intentionnelle d'un semestre...). Le fichier se trouve sous `/var/lib/postgresql/SCODOC-BACKUPS`où `XXX` est concerné. Utiliser par exemple `ls -lrt` pour visualiser les sauvegardes triées par date.
1. Copier le fichier de sauvegarde choisi et le décomprimer; par exemple:
```
cp /var/lib/postgresql/SCOGEII-BACKUPS/backup.hourly/2014-03-04T05\:35/SCOGEII_pgdump.gz /tmp
gunzip /tmp/SCOGEII_pgdump.gz
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 pour le département concerné. <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...
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...
```
# en tant que root...
/etc/init.d/scodoc stop # arret du serveur
systemctl stop scodoc9 # arret du serveur
su postgres
dropdb SCOXXX # <<< par exemple SCOGEII
pg_restore -C -d postgres /tmp/SCOXXX_pgdump # <<< changer le nom du fichier
dropdb SCODOC # <<< votre base production
pg_restore -C -d scodoc /tmp/SCODOC_pgdump # <<<
exit # retour a l'utilisateur root
/etc/init.d/scodoc start # relance ScoDoc
systemctl start scodoc # relance ScoDoc
```
Attention: s'il y a eu des mise à jour du logiciel entre temps, il peut arriver
que la base sauvegardée nécessite une migration. Arrêtez le sservice scodoc9,
puis, en tant qu'utilisateur `scodoc`, lancer les commandes suivantes:
cd /opt/scodoc
source venv/bin/activate
flask db upgrade
puis relancer le service (`systemctl start scodoc` comme root).

1180
docs/ScoDoc9API.md Normal file

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
# API pour ScoDoc
# 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.
@ -868,7 +868,7 @@ Et un autre exemple en format JSON:
## Absences
* **`Absences/ListeAbsEtud`**
* Paramètres: `etudid, abs_just_only, format`. `abs_just_only` spécifie si on veut les absences justifiées ou non.
* 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).
@ -914,8 +914,7 @@ Et un autre exemple en format JSON:
## En savoir plus
Voir l'exemple complet d'utilisation de l'API JSON en Python, dans `misc/example-api-1.py`
Voir exemples d'utilisation de l'API en Python, dans `tests/api/`.

View File

@ -3,6 +3,7 @@ L'export des résultats de ScoDoc vers Apogée se fait après le jury. Pour les
L'export des notes finales (et des décisions de jury) vers le logiciel Apogée peut être fait de plusieurs façons: soit par remplissage automatique de maquettes Apogée, soit en passant par des fichiers Excel.
La procédure détaillée d'import des résultats de ScoDoc dans Apogée est décrite 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.
## Remplissage des fichiers maquette Apogée (CSV)
Solution intégrée à ScoDoc en juillet 2016.

47
docs/TestsScoDoc.md Normal file
View File

@ -0,0 +1,47 @@
# Tests de ScoDoc
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
## Lancement interactif
flask shell
Pour mémoire, un certains nombre de commandes en ligne facilitant la gestion de
ScoDoc sont disponibles, afficher la liste avec
flask --help
## Tests unitaires
On utilise `pytest`. Ainsi, la commande
pytest tests/unit
lance l'ensemble des tests unitaires.
## Tests Selenium (web)
TODO (Aurélien, JMP)
## Portail pour tests
Un faux portail "apogée" pour inscrire de faux étudiants avec photos. Utile pour tester les fonctions d'inscription/synchronisation, et aussi pour peupler rapidement une base de donnée.
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`.
Lancement:
/opt/scodoc/tools/fakeportal/fakeportal.py

View File

@ -1,36 +0,0 @@
# Tests de ScoDoc7
## Lancement interactif
Un script permet de lancer ScoDoc7 en mode interactif, et d'exécuter au préalable des scripts (de test ou de création d'objets divers).
cd /opt/scodoc/Products/ScoDoc
# Lance le script scotests/test_basic.py
scotests/scointeractive.sh -r TEST00 scotests/test_basic.py
L'option `-r` utilisée ci-dessus va recréer la base SQL du département `TEST00` (et l'*effacer avant si elle existe*).
Attention: la base utilisateurs étant à part, s'assurer que les utilisateurs utilisés dans vos scripts de test existent au préalable.
## Tests unitaires
TODO (Fares)
## Tests Selenium (web)
TODO (Aurélien)
## Portail pour tests
Un faux portail "apogée" pour inscrire de faux étudiants avec photos. Utile pour tester les fonctions d'inscription/synchronisation, et aussi pour peupler rapidement une base de donnée.
Le code se trouve dans `scotests/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`.
/opt/scodoc/Products/ScoDoc/scotests/fakeportal/fakeportal.py

View File

@ -2,7 +2,7 @@
# É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>.
## Établissements membres de l'association (2020-2021)
## Établissements membres de l'association (2020-2021) [liste non à jour]
* [IUT d'Annecy](https://www.iut-acy.univ-smb.fr);

View File

@ -0,0 +1,2 @@
# ScoDoc repository
deb http://scodoc.org/repo bullseye main

BIN
docs/fig/but-bul-bdx.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 228 KiB

BIN
docs/fig/but-bul-lille.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

View File

@ -1,7 +1,7 @@
# ScoDoc: un logiciel libre pour le suivi de la scolarité
ScoDoc est un logiciel libre créé par Emmanuel Viennet pour suivre la scolarité des étudiants universitaires. Il est principalement utilisé dans les IUT, mais aussi apprécié par plusieurs Écoles et Masters. Il fournit notamment:
ScoDoc est un logiciel libre créé par Emmanuel Viennet pour suivre la scolarité des étudiants universitaires. Il est principalement utilisé dans les IUT, mais aussi apprécié par plusieurs Écoles et Masters en France et à l'étranger. Il fournit notamment:
- suivi précis de la progression des étudiants, évaluations formatives et certificatives;
- saisie et gestion des notes;
@ -14,7 +14,10 @@ ScoDoc est un logiciel libre créé par Emmanuel Viennet pour suivre la scolarit
ScoDoc est un *logiciel libre*: vous pouvez [participer à son développement](Contribuer.md).
ScoDoc s'utilise sur un navigateur web standard, avec connexions sécurisées; pour obtenir un accès sur un *serveur de démo* (réservé aux IUT), contacter: <notes@listes.univ-paris13.fr> . Pour installer le logiciel sur votre serveur, voir le [guide d'installation sur Debian 10](GuideInstallDebianDix.md).
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.
ScoDoc est utilisé dans de nombreux établissement français et étrangers, **dont au moins 58 IUT**: [liste des utilisateurs connus de ScoDoc](UtilisateursScoDoc.md).
@ -32,6 +35,7 @@ Depuis 2020, ScoDoc est soutenu par une [association à but non lucratif (1901)]
## 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)
@ -39,32 +43,61 @@ Depuis 2020, ScoDoc est soutenu par une [association à but non lucratif (1901)]
- [Contribuer à ScoDoc](Contribuer.md)
## Actualités
### Parution de ScoDoc 9.0
Version majeure, avec une architecture logicielle complètement remaniée. Dans un
premier temps, ScoDoc 9 n'offre presque pas de nouvelles fonctions par rapport à
l'ancien ScoDoc 7, mais son code permet des évolutions plus aisées.
### Quatre stagiaires (printemps 2021)
- 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.
- 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 ces derniers mois.
Plusieurs développeurs volontaires, la plupart enseignants en IUT, ont rejoint
l'équipe ces derniers mois.
### 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 continuera à vous aider à suivre, évaluer et noter vos étudiants, au plus près de vos pratiques. Nous attendons le cadrage officiel du BUT pour publier le code de calcul des notes BUT.
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
continuera à vous aider à suivre, évaluer et noter vos étudiants, au plus près
de vos pratiques. Voir [cette page pour plus d'informations](BUT.md).
Des formats de bulletins de notes adaptés seront proposés pour faciliter la compréhension des résultats par les étudiants et enseignants.
Des formats de bulletins de notes adaptés seront 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 l'interfaçage des outils (via des API), qui a priori sera plus fluide et facile à mettre en œuvre qu'avec Apogée. ScoDoc et Pégase devraient cohabiter en bonne entente.
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
l'interfaçage des outils (via des API), qui a priori sera plus fluide et facile
à mettre en œuvre qu'avec Apogée. ScoDoc et Pégase devraient cohabiter en bonne
entente.
### Feuille de route (roadmap)
Les prochaines versions de ScoDoc (*sous réserve !*):
- ScoDoc 9.0 : fin juin 2021 version remaniée en Python 3, avec version mobile.
- ScoDoc 9.0 : publiée le 19 sept. 2021, version complètement remaniée en
Python 3/Flask.
- ScoDoc 9.1 : fin août 2021 gestion du bachelor (BUT)
- ScoDoc 9.2 : octobre 2021 nouvelles fonctionnalités liés au BUT.
- ScoDoc 9.1 : novembre 2021 gestion du bachelor (BUT)
- type de formation BUT
- distinction SAE/ressources
- poids (coefs) des évaluations, affichage, édition
- coefs de modules (ressources, SAE): affichage et édition dans ScoDoc
- calculs moyennes modules et vérification conformité
- calcul des moyennes d'UE
- bulletin de note v1
- ScoDoc 9.2 : fin 2021 ou début 2022 nouvelles fonctionnalités liées au BUT
- tenue des jurys de S1
- gestion des parcours (pour la mise en place des semestre)
- import Orébut avec gestion adaptation locale (à l'étude)
<br>

View File

@ -0,0 +1,16 @@
window.MathJax = {
tex: {
inlineMath: [["\\(", "\\)"]],
displayMath: [["\\[", "\\]"]],
processEscapes: true,
processEnvironments: true
},
options: {
ignoreHtmlClass: ".*|",
processHtmlClass: "arithmatex"
}
};
document$.subscribe(() => {
MathJax.typesetPromise()
})

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,30 +1,48 @@
site_name: ScoDoc
theme:
name: mkdocs
navigation_depth: 3
nav:
- Documentation:
- 'Guide utilisateur': GuideUtilisateur.md
- 'Tutos vidéos': https://www.youtube.com/playlist?list=PLw49h6RbvswhasBk9bXj7PzOD8GDW3kG1
- 'Responsables de formations': GuideAdminFormation.md
- 'FAQ': FAQ.md
- Installation:
- 'Guide administration': GuideAdminSys.md
- 'Installation': GuideInstallDebianDix.md
- 'Installation': GuideInstallDebian11.md
- 'Mises à jour': MisesAJour.md
- 'Interfaces SI': InterrogationPortail.md
- 'Publication des notes': PublicationEtudiants.md
- 'Export Apogée': ScoDocApogee.md
- 'API': ScoDocAPI.md
- Utilisateurs: UtilisateursScoDoc.md
- Association: AssociationScoDoc.md
- Sources: https://scodoc.org/git
- Association:
- 'Association 1901': AssociationScoDoc.md
- 'Utilisateurs': UtilisateursScoDoc.md
- Développement:
- 'Git': https://scodoc.org/git
- 'Guide Développeurs': GuideDeveloppeurs.md
- 'API (interfaçages autres logiciels)': ScoDoc9API.md
- FAQ: FAQ.md
# theme: readthedocs
# Pour LaTex, juste faire pip install python-markdown-math
# dans l'environnement choisi (mkdocs)
extra_javascript:
- https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML
#extra_javascript:
# - https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML
extra_javascript:
- javascripts/config.js
- https://polyfill.io/v3/polyfill.min.js?features=es6
- https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js
markdown_extensions:
- mdx_math
- pymdownx.arithmatex:
generic: true