diff --git a/docs/BUT.md b/docs/BUT.md
new file mode 100644
index 000000000..1196ade96
--- /dev/null
+++ b/docs/BUT.md
@@ -0,0 +1,258 @@
+
+# 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.
+
+
+
+## Calcul des notes
+
+Les rôles des SAÉ et ressources étant symétriques, on appellera dans al 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.
+
+
+
+
+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 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_{u,e}}$$
+
+L'exemple suivant illustre ce mode de calcul:
+
+
+
+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):
+
+
+
+### 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 obtenu à plus de 50% des regroupements cohérents d’UE (niveaux de
+ compétences).
+ 2. Aucun regroupement cohérent d’UE < 8.
+ 3. Cas particulier du passage en BUT 3: nécessité d’avoir validé toutes les UE
+ du BUT 1.
+
+
+
+
+
+# É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
+
+
+
+ - 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:
+
+
+
+Dans le cas où les évaluations ne couvriraient pas toutes les UE (mauvais choix
+des poids ou oubli d'une évaluation):
+
+
+
+
+
+# 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).
+
+
+
+
+# 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.
+
+
+
diff --git a/docs/fig/but-competences-ues.png b/docs/fig/but-competences-ues.png
new file mode 100644
index 000000000..142edf49c
Binary files /dev/null and b/docs/fig/but-competences-ues.png differ
diff --git a/docs/fig/but-dialog-eval-create.png b/docs/fig/but-dialog-eval-create.png
new file mode 100644
index 000000000..92c5cab65
Binary files /dev/null and b/docs/fig/but-dialog-eval-create.png differ
diff --git a/docs/fig/but-exemple-calcul-notes.png b/docs/fig/but-exemple-calcul-notes.png
new file mode 100644
index 000000000..509fa4074
Binary files /dev/null and b/docs/fig/but-exemple-calcul-notes.png differ
diff --git a/docs/fig/but-ref-comp-ex-commente.png b/docs/fig/but-ref-comp-ex-commente.png
new file mode 100644
index 000000000..e25de437f
Binary files /dev/null and b/docs/fig/but-ref-comp-ex-commente.png differ
diff --git a/docs/fig/but-ref-comp-ex-geii.jpg b/docs/fig/but-ref-comp-ex-geii.jpg
new file mode 100644
index 000000000..7dfccd4ce
Binary files /dev/null and b/docs/fig/but-ref-comp-ex-geii.jpg differ
diff --git a/docs/fig/but-tableau-evals-module-ko.png b/docs/fig/but-tableau-evals-module-ko.png
new file mode 100644
index 000000000..1878c9e68
Binary files /dev/null and b/docs/fig/but-tableau-evals-module-ko.png differ
diff --git a/docs/fig/but-tableau-evals-module-ok.png b/docs/fig/but-tableau-evals-module-ok.png
new file mode 100644
index 000000000..df62280bc
Binary files /dev/null and b/docs/fig/but-tableau-evals-module-ok.png differ
diff --git a/docs/fig/but-validation-ue.png b/docs/fig/but-validation-ue.png
new file mode 100644
index 000000000..0991826d6
Binary files /dev/null and b/docs/fig/but-validation-ue.png differ
diff --git a/docs/index.md b/docs/index.md
index 315d8b63b..87bb02103 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -69,11 +69,11 @@ Nous sommes en contact avec l'équipe du projet Pégase/PC-SCOL, qui succédera
### Feuille de route (roadmap)
Les prochaines versions de ScoDoc (*sous réserve !*):
- - ScoDoc 9.0 : juillet 2021 version remaniée en Python 3/Flask, 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.1 : octobre 2021 gestion du bachelor (BUT)
- - ScoDoc 9.2 : octobre 2021 nouvelles fonctionnalités liées au BUT.
+ - ScoDoc 9.2 : décembre 2021 nouvelles fonctionnalités liées au BUT.
diff --git a/mkdocs.yml b/mkdocs.yml
index f43168f28..059ebedd3 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -1,4 +1,9 @@
site_name: ScoDoc
+
+theme:
+ name: mkdocs
+ navigation_depth: 3
+
nav:
- Documentation:
- 'Guide utilisateur': GuideUtilisateur.md
@@ -33,4 +38,4 @@ extra_javascript:
markdown_extensions:
- pymdownx.arithmatex:
- generic: true
+ generic: true