diff --git a/app/formations/__init__.py b/app/formations/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..14cfb52e4b63670f5d5319d35db4542ae3f4d282
--- /dev/null
+++ b/app/formations/__init__.py
@@ -0,0 +1 @@
+# Fonctions et vues sur les formations ScoDoc
diff --git a/app/scodoc/sco_formation_recap.py b/app/formations/formation_recap.py
similarity index 98%
rename from app/scodoc/sco_formation_recap.py
rename to app/formations/formation_recap.py
index 71c08c9c169901cf9dd52845adb8b5fb4ce7b7ce..6bbdcaf311cd7b200e2ab20a61ff159cc3374c7c 100644
--- a/app/scodoc/sco_formation_recap.py
+++ b/app/formations/formation_recap.py
@@ -180,7 +180,7 @@ def formation_table_recap(formation: Formation, fmt="html") -> Response:
 
 
 def export_recap_formations_annee_scolaire(annee_scolaire):
-    """Exporte un zip des recap (excel) des formatons de tous les semestres
+    """Exporte un zip des recap (excel) des formations de tous les semestres
     de l'année scolaire indiquée.
     """
     annee_scolaire = int(annee_scolaire)
diff --git a/app/views/notes.py b/app/views/notes.py
index 9c0e0564ddc464b28eb1535dccae91dc280d0457..a9d8e3b7f894fb2ad566bd3d32e387bc260e4e40 100644
--- a/app/views/notes.py
+++ b/app/views/notes.py
@@ -110,7 +110,6 @@ from app.scodoc import (
     sco_evaluation_recap,
     sco_export_results,
     sco_formations,
-    sco_formation_recap,
     sco_formation_versions,
     sco_formsemestre,
     sco_formsemestre_custommenu,
@@ -142,6 +141,7 @@ from app.scodoc import (
     sco_undo_notes,
     sco_users,
 )
+from app.formations import formation_recap
 from app.scodoc.gen_tables import GenTable
 from app.scodoc.sco_permissions import Permission
 from app.scodoc.TrivialFormulator import TrivialFormulator
@@ -552,12 +552,12 @@ def formation_table_recap(formation_id: int):
     "Tableau récap. de la formation"
     formation = Formation.get_formation(formation_id)
     fmt = request.args.get("fmt", "html")
-    return sco_formation_recap.formation_table_recap(formation, fmt=fmt)
+    return formation_recap.formation_table_recap(formation, fmt=fmt)
 
 
 sco_publish(
     "/export_recap_formations_annee_scolaire",
-    sco_formation_recap.export_recap_formations_annee_scolaire,
+    formation_recap.export_recap_formations_annee_scolaire,
     Permission.ScoView,
 )
 sco_publish(
diff --git a/sco_version.py b/sco_version.py
index 5ac36785b19d87d8023df51bf26a4ce1000b748f..e9ebfa7cd99e6e7f44c1cc72ce4c253576609610 100644
--- a/sco_version.py
+++ b/sco_version.py
@@ -1,7 +1,7 @@
 # -*- mode: python -*-
 # -*- coding: utf-8 -*-
 
-SCOVERSION = "9.7.27"
+SCOVERSION = "9.7.28"
 
 SCONAME = "ScoDoc"