diff --git a/app/__init__.py b/app/__init__.py
index 9d57e9e416315bcd306b5d2a24e2fbbb4bc6b649..c5353e032d0e2a470c191431287b6818498c553f 100644
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -30,7 +30,8 @@ moment = Moment()
 
 
 def create_app(config_class=Config):
-    app = Flask(__name__)
+    app = Flask(__name__, static_url_path="/ScoDoc/static", static_folder="static")
+    app.logger.setLevel(logging.DEBUG)
     app.config.from_object(config_class)
     db.init_app(app)
     migrate.init_app(app, db)
diff --git a/app/main/routes.py b/app/main/routes.py
index a0235849f2dd07edf4cc466d8c393125e3c45879..5d4b9e5a373dca34359164f95a2a4ea0a629c752 100644
--- a/app/main/routes.py
+++ b/app/main/routes.py
@@ -20,7 +20,9 @@ context = None
 @bp.route("/")
 @bp.route("/index")
 def index():
-    return render_template("main/index.html", title=u"Essai Flask")
+    return render_template(
+        "main/index.html", title=u"Essai Flask", current_app=flask.current_app
+    )
 
 
 @bp.route("/test_vue")
diff --git a/app/scodoc/html_sco_header.py b/app/scodoc/html_sco_header.py
index 13ad4186bae240341747f9448b860dafc14a3a38..ca50b1770139bd2e82d32a5f6e007f75cfa02987 100644
--- a/app/scodoc/html_sco_header.py
+++ b/app/scodoc/html_sco_header.py
@@ -64,7 +64,7 @@ def standard_html_header():
 <META name="LANG" content="fr">
 <META name="DESCRIPTION" content="ScoDoc: gestion scolarite">
 
-<link HREF="/ScoDoc/static/css/scodoc.css" rel="stylesheet" type="text/css"/>
+<link href="/ScoDoc/static/css/scodoc.css" rel="stylesheet" type="text/css"/>
 
 </head><body>%s""" % (
         scu.SCO_ENCODING,
diff --git a/app/scodoc/notes_table.py b/app/scodoc/notes_table.py
index 7caab49163ca49a551e9d8a7c5f9be993d8895e0..1abdb72e9fcdf836b6b773c1c3b88453ca3123f3 100644
--- a/app/scodoc/notes_table.py
+++ b/app/scodoc/notes_table.py
@@ -177,7 +177,7 @@ class NotesTable:
             context, "use_ue_coefs", formsemestre_id
         )
         # Infos sur les etudiants
-        self.inscrlist = context.do_formsemestre_inscription_list(
+        self.inscrlist = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, 
             args={"formsemestre_id": formsemestre_id}
         )
         # infos identite etudiant
diff --git a/app/scodoc/sco_compute_moy.py b/app/scodoc/sco_compute_moy.py
index f5f6496c0c65f51e61a73b448f6289a83b5a6b96..9c6714791fd2b926a6accfdc4c2bb92b5e4830df 100644
--- a/app/scodoc/sco_compute_moy.py
+++ b/app/scodoc/sco_compute_moy.py
@@ -376,7 +376,7 @@ def do_formsemestre_moyennes(context, nt, formsemestre_id):
     liste des moduleimpls  avec notes en attente.
     """
     # sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
-    # inscr = context.do_formsemestre_inscription_list(
+    # inscr = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, 
     #    args={"formsemestre_id": formsemestre_id}
     # )
     # etudids = [x["etudid"] for x in inscr]
diff --git a/app/scodoc/sco_dept.py b/app/scodoc/sco_dept.py
index 8d422a758859839ebc3d6e2f897762a66440c6ac..6720c96d7f16697c2187ae12ecd3789133448c4e 100644
--- a/app/scodoc/sco_dept.py
+++ b/app/scodoc/sco_dept.py
@@ -35,7 +35,9 @@ import sco_news
 import sco_up_to_date
 import sco_formsemestre
 from gen_tables import GenTable
-from sco_permissions import ScoEtudInscrit, ScoEditApo
+from sco_permissions import Permission, ScoEtudInscrit, ScoEditApo
+import html_sco_header
+import sco_formsemestre_inscriptions
 
 
 def index_html(context, REQUEST=None, showcodes=0, showsemtable=0):
@@ -78,7 +80,9 @@ def index_html(context, REQUEST=None, showcodes=0, showsemtable=0):
             sem["tmpcode"] = ""
         # Nombre d'inscrits:
         args = {"formsemestre_id": sem["formsemestre_id"]}
-        ins = context.Notes.do_formsemestre_inscription_list(args=args)
+        ins = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(
+            context, args=args
+        )
         nb = len(ins)  # nb etudiants
         sem["nb_inscrits"] = nb
         if nb > 0:
diff --git a/app/scodoc/sco_formsemestre.py b/app/scodoc/sco_formsemestre.py
index c38d5862e6ae5a1c8632b250fd86e58c906c9ded..e3896a7895ee9e31fa7303ec257f6dbe75f93c3f 100644
--- a/app/scodoc/sco_formsemestre.py
+++ b/app/scodoc/sco_formsemestre.py
@@ -130,8 +130,9 @@ def formsemestre_enrich(context, sem):
     # imports ici pour eviter refs circulaires
     import sco_formsemestre_edit
     import scolars
+    from app.views import notes
 
-    F = context.formation_list(args={"formation_id": sem["formation_id"]})[0]
+    F = notes.formation_list(context, args={"formation_id": sem["formation_id"]})[0]
     parcours = sco_codes_parcours.get_parcours_from_code(F["type_parcours"])
     # 'S1', 'S2', ... ou '' pour les monosemestres
     if sem["semestre_id"] != NO_SEMESTRE_ID:
diff --git a/app/scodoc/sco_formsemestre_exterieurs.py b/app/scodoc/sco_formsemestre_exterieurs.py
index e9f6d38d895b0eb54691ad6941c73cbcc2e57a1e..6794ac116c9ae8e00c5af3a8136d90344ab6aa1f 100644
--- a/app/scodoc/sco_formsemestre_exterieurs.py
+++ b/app/scodoc/sco_formsemestre_exterieurs.py
@@ -100,7 +100,7 @@ def formsemestre_ext_create_form(context, etudid, formsemestre_id, REQUEST=None)
     # et seulement si pas inscrit au même semestre_id d'un semestre ordinaire ScoDoc.
     # Les autres situations (eg redoublements en changeant d'établissement)
     # doivent être gérées par les validations de semestres "antérieurs"
-    insem = context.do_formsemestre_inscription_list(
+    insem = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, 
         args={"etudid": etudid, "etat": "I"}
     )
     semlist = [
diff --git a/app/scodoc/sco_formsemestre_inscriptions.py b/app/scodoc/sco_formsemestre_inscriptions.py
index 6acc2961fe1b239ffb58872737e0e8cd73f40298..02acb2c5c0429a32837955a4cff60fb9de01fc1d 100644
--- a/app/scodoc/sco_formsemestre_inscriptions.py
+++ b/app/scodoc/sco_formsemestre_inscriptions.py
@@ -33,6 +33,7 @@ from notes_log import log
 from sco_exceptions import ScoValueError
 from sco_permissions import ScoEtudInscrit
 from sco_codes_parcours import UE_STANDARD, UE_SPORT, UE_TYPE_NAME
+import notesdb as ndb
 from notesdb import ScoDocCursor, DateISOtoDMY, DateDMYtoISO
 
 from TrivialFormulator import TrivialFormulator, TF
@@ -43,6 +44,145 @@ import sco_formsemestre
 import sco_moduleimpl
 import sco_groups
 
+# --- Gestion des inscriptions aux semestres
+_formsemestre_inscriptionEditor = ndb.EditableTable(
+    "notes_formsemestre_inscription",
+    "formsemestre_inscription_id",
+    ("formsemestre_inscription_id", "etudid", "formsemestre_id", "etat", "etape"),
+    sortkey="formsemestre_id",
+)
+
+
+def do_formsemestre_inscription_list(context, *args, **kw):
+    "list formsemestre_inscriptions"
+    cnx = ndb.GetDBConnexion()
+    return _formsemestre_inscriptionEditor.list(cnx, *args, **kw)
+
+
+def do_formsemestre_inscription_create(context, args, REQUEST, method=None):
+    "create a formsemestre_inscription (and sco event)"
+    cnx = ndb.GetDBConnexion()
+    log("do_formsemestre_inscription_create: args=%s" % str(args))
+    sems = sco_formsemestre.do_formsemestre_list(
+        context, {"formsemestre_id": args["formsemestre_id"]}
+    )
+    if len(sems) != 1:
+        raise ScoValueError("code de semestre invalide: %s" % args["formsemestre_id"])
+    sem = sems[0]
+    # check lock
+    if sem["etat"] != "1":
+        raise ScoValueError("inscription: semestre verrouille")
+    #
+    r = _formsemestre_inscriptionEditor.create(cnx, args)
+    # Evenement
+    scolars.scolar_events_create(
+        cnx,
+        args={
+            "etudid": args["etudid"],
+            "event_date": time.strftime("%d/%m/%Y"),
+            "formsemestre_id": args["formsemestre_id"],
+            "event_type": "INSCRIPTION",
+        },
+    )
+    # Log etudiant
+    logdb(
+        REQUEST,
+        cnx,
+        method=method,
+        etudid=args["etudid"],
+        msg="inscription en semestre %s" % args["formsemestre_id"],
+        commit=False,
+    )
+    #
+    sco_core.inval_cache(
+        context, formsemestre_id=args["formsemestre_id"]
+    )  # > inscription au semestre
+    return r
+
+
+def do_formsemestre_inscription_delete(context, oid, formsemestre_id=None):
+    "delete formsemestre_inscription"
+    cnx = ndb.GetDBConnexion()
+    _formsemestre_inscriptionEditor.delete(cnx, oid)
+
+    sco_core.inval_cache(
+        context, formsemestre_id=formsemestre_id
+    )  # > desinscription du semestre
+
+
+def do_formsemestre_inscription_edit(context, args=None, formsemestre_id=None):
+    "edit a formsemestre_inscription"
+    cnx = ndb.GetDBConnexion()
+    _formsemestre_inscriptionEditor.edit(cnx, args)
+    sco_core.inval_cache(
+        context, formsemestre_id=formsemestre_id
+    )  # > modif inscription semestre (demission ?)
+
+
+def do_formsemestre_desinscription(context, etudid, formsemestre_id, REQUEST=None):
+    """Désinscription d'un étudiant.
+    Si semestre extérieur et dernier inscrit, suppression de ce semestre.
+    """
+    sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
+    # -- check lock
+    if sem["etat"] != "1":
+        raise ScoValueError("desinscription impossible: semestre verrouille")
+
+    # -- Si decisions de jury, desinscription interdite
+    nt = sco_core.get_notes_cache(context).get_NotesTable(context, formsemestre_id)
+    if nt.etud_has_decision(etudid):
+        raise ScoValueError(
+            "desinscription impossible: l'étudiant a une décision de jury (la supprimer avant si nécessaire)"
+        )
+
+    insem = do_formsemestre_inscription_list(context, 
+        args={"formsemestre_id": formsemestre_id, "etudid": etudid}
+    )
+    if not insem:
+        raise ScoValueError("%s n'est pas inscrit au semestre !" % etudid)
+    insem = insem[0]
+    # -- desinscription de tous les modules
+    cnx = ndb.GetDBConnexion()
+    cursor = cnx.cursor(cursor_factory=ndb.ScoDocCursor)
+    cursor.execute(
+        "select moduleimpl_inscription_id from notes_moduleimpl_inscription Im, notes_moduleimpl M  where Im.etudid=%(etudid)s and Im.moduleimpl_id = M.moduleimpl_id and M.formsemestre_id = %(formsemestre_id)s",
+        {"etudid": etudid, "formsemestre_id": formsemestre_id},
+    )
+    res = cursor.fetchall()
+    moduleimpl_inscription_ids = [x[0] for x in res]
+    for moduleimpl_inscription_id in moduleimpl_inscription_ids:
+        sco_moduleimpl.do_moduleimpl_inscription_delete(
+            context, moduleimpl_inscription_id, formsemestre_id=formsemestre_id
+        )
+    # -- desincription du semestre
+    do_formsemestre_inscription_delete(
+        context, insem["formsemestre_inscription_id"], formsemestre_id=formsemestre_id
+    )
+    # --- Semestre extérieur
+    if sem["modalite"] == "EXT":
+        inscrits = do_formsemestre_inscription_list(context, 
+            args={"formsemestre_id": formsemestre_id}
+        )
+        nbinscrits = len(inscrits)
+        if nbinscrits == 0:
+            log(
+                "do_formsemestre_desinscription: suppression du semestre extérieur %s"
+                % formsemestre_id
+            )
+            sco_formsemestre_edit.do_formsemestre_delete(
+                context, formsemestre_id, REQUEST=REQUEST
+            )
+
+    if REQUEST:
+        logdb(
+            REQUEST,
+            cnx,
+            method="formsemestre_desinscription",
+            etudid=etudid,
+            msg="desinscription semestre %s" % formsemestre_id,
+            commit=False,
+        )
+
 
 def do_formsemestre_inscription_with_modules(
     context,
@@ -61,7 +201,7 @@ def do_formsemestre_inscription_with_modules(
     args = {"formsemestre_id": formsemestre_id, "etudid": etudid}
     if etat is not None:
         args["etat"] = etat
-    context.do_formsemestre_inscription_create(args, REQUEST, method=method)
+    do_formsemestre_inscription_create(context, args, REQUEST, method=method)
     log(
         "do_formsemestre_inscription_with_modules: etudid=%s formsemestre_id=%s"
         % (etudid, formsemestre_id)
@@ -135,7 +275,7 @@ def formsemestre_inscription_with_modules_form(
     )
     F = html_sco_header.sco_footer(context, REQUEST)
     sems = sco_formsemestre.do_formsemestre_list(context, args={"etat": "1"})
-    insem = context.do_formsemestre_inscription_list(
+    insem = do_formsemestre_inscription_list(context, 
         args={"etudid": etudid, "etat": "I"}
     )
     if sems:
diff --git a/app/scodoc/sco_formsemestre_status.py b/app/scodoc/sco_formsemestre_status.py
index b67c770f771bf5c9f926ee31f6a4d31e1db02ca1..1e3d8e02ac8264d32d16a105cf689070ae47eacc 100644
--- a/app/scodoc/sco_formsemestre_status.py
+++ b/app/scodoc/sco_formsemestre_status.py
@@ -579,7 +579,7 @@ def fill_formsemestre(context, sem, REQUEST=None):
         sco_formsemestre.formsemestre_etape_apo_str(sem) or "Pas de code étape"
     )
 
-    inscrits = context.Notes.do_formsemestre_inscription_list(
+    inscrits = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, 
         args={"formsemestre_id": formsemestre_id}
     )
     sem["nbinscrits"] = len(inscrits)
@@ -977,7 +977,7 @@ def formsemestre_status(context, formsemestre_id=None, REQUEST=None):
     Mlist = sco_moduleimpl.do_moduleimpl_withmodule_list(
         context, formsemestre_id=formsemestre_id
     )
-    # inscrits = context.do_formsemestre_inscription_list(
+    # inscrits = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, 
     #    args={"formsemestre_id": formsemestre_id}
     # )
     prev_ue_id = None
diff --git a/app/scodoc/sco_formsemestre_validation.py b/app/scodoc/sco_formsemestre_validation.py
index dd3cd1c3d415e4ddf4a6e5484caf91226baf1c94..360838a4e8add28844b2bb0e5543b619e594d20b 100644
--- a/app/scodoc/sco_formsemestre_validation.py
+++ b/app/scodoc/sco_formsemestre_validation.py
@@ -864,7 +864,7 @@ def do_formsemestre_validation_auto(context, formsemestre_id, REQUEST):
     for etudid in etudids:
         etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
         Se = sco_parcours_dut.SituationEtudParcours(context, etud, formsemestre_id)
-        ins = context.do_formsemestre_inscription_list(
+        ins = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, 
             {"etudid": etudid, "formsemestre_id": formsemestre_id}
         )[0]
 
@@ -966,7 +966,7 @@ def formsemestre_fix_validation_ues(context, formsemestre_id, REQUEST=None):
     for etudid in etudids:
         etud = scolars.get_etud_info(etudid=etudid, filled=True)[0]
         Se = sco_parcours_dut.SituationEtudParcours(context, etud, formsemestre_id)
-        ins = context.do_formsemestre_inscription_list(
+        ins = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, 
             {"etudid": etudid, "formsemestre_id": formsemestre_id}
         )[0]
         decision_sem = nt.get_etud_decision_sem(etudid)
diff --git a/app/scodoc/sco_groups.py b/app/scodoc/sco_groups.py
index 7bc3ac175ff2c1548b6c324f9e2c2520d0c93c8b..00a9830668a5f99a3728ede852c2157369b7145c 100644
--- a/app/scodoc/sco_groups.py
+++ b/app/scodoc/sco_groups.py
@@ -1321,7 +1321,7 @@ def create_etapes_partition(context, formsemestre_id, partition_name="apo_etapes
      vides ne sont pas supprimés).
     """
     log("create_etapes_partition(%s)" % formsemestre_id)
-    ins = context.do_formsemestre_inscription_list(
+    ins = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, 
         args={"formsemestre_id": formsemestre_id}
     )
     etapes = {i["etape"] for i in ins if i["etape"]}
diff --git a/app/scodoc/sco_inscr_passage.py b/app/scodoc/sco_inscr_passage.py
index 72176cb9976db3374cb8a9a54110af5f6e8e40ad..068450d992eafe3509e8dc834fefd8d262fc9f2b 100644
--- a/app/scodoc/sco_inscr_passage.py
+++ b/app/scodoc/sco_inscr_passage.py
@@ -110,7 +110,7 @@ def list_inscrits(context, formsemestre_id, with_dems=False):
         )  # optimized
     else:
         args = {"formsemestre_id": formsemestre_id}
-        ins = context.Notes.do_formsemestre_inscription_list(args=args)
+        ins = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, args=args)
     inscr = {}
     for i in ins:
         etudid = i["etudid"]
diff --git a/app/scodoc/sco_liste_notes.py b/app/scodoc/sco_liste_notes.py
index 1ea7f709e807ef91c9ead86e6f577df47de1016b..abf6bca9be2d3507e852dd8334f0b22880e52bf0 100644
--- a/app/scodoc/sco_liste_notes.py
+++ b/app/scodoc/sco_liste_notes.py
@@ -286,7 +286,7 @@ def _make_table_notes(
         # infos identite etudiant
         etud = scolars.get_etud_info(etudid=etudid, filled=1)[0]
         # infos inscription
-        inscr = context.do_formsemestre_inscription_list(
+        inscr = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, 
             {"etudid": etudid, "formsemestre_id": M["formsemestre_id"]}
         )[0]
 
diff --git a/app/scodoc/sco_moduleimpl.py b/app/scodoc/sco_moduleimpl.py
index 31bb0e881d9e39d54d420c65c50ed48ec9135f45..fb84f0a9a43da7398d29d80bc8e3f875bbf6834f 100644
--- a/app/scodoc/sco_moduleimpl.py
+++ b/app/scodoc/sco_moduleimpl.py
@@ -232,7 +232,7 @@ def do_moduleimpl_inscrit_etuds(
     """
     # Verifie qu'ils sont tous bien inscrits au semestre
     for etudid in etudids:
-        insem = context.do_formsemestre_inscription_list(
+        insem = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, 
             args={"formsemestre_id": formsemestre_id, "etudid": etudid}
         )
         if not insem:
diff --git a/app/scodoc/sco_moduleimpl_inscriptions.py b/app/scodoc/sco_moduleimpl_inscriptions.py
index d3d768e733d95607c58676da4ab3df2d8cd91b14..65ea7dc0aac12702fd7cb1a743845d09fbc7b060 100644
--- a/app/scodoc/sco_moduleimpl_inscriptions.py
+++ b/app/scodoc/sco_moduleimpl_inscriptions.py
@@ -238,7 +238,7 @@ def moduleimpl_inscriptions_stats(context, formsemestre_id, REQUEST=None):
     authuser = REQUEST.AUTHENTICATED_USER
 
     sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
-    inscrits = context.do_formsemestre_inscription_list(
+    inscrits = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, 
         args={"formsemestre_id": formsemestre_id}
     )
     set_all = set([x["etudid"] for x in inscrits])
@@ -465,7 +465,7 @@ def get_etuds_with_capitalized_ue(context, formsemestre_id):
     nt = sco_core.get_notes_cache(context).get_NotesTable(
         context, formsemestre_id
     )  # > get_ues, get_etud_ue_status
-    inscrits = context.do_formsemestre_inscription_list(
+    inscrits = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, 
         args={"formsemestre_id": formsemestre_id}
     )
     ues = nt.get_ues()
@@ -544,7 +544,7 @@ def do_etud_desinscrit_ue(context, etudid, formsemestre_id, ue_id, REQUEST=None)
 def do_etud_inscrit_ue(context, etudid, formsemestre_id, ue_id, REQUEST=None):
     """Incrit l'etudiant de tous les modules de cette UE dans ce semestre."""
     # Verifie qu'il est bien inscrit au semestre
-    insem = context.do_formsemestre_inscription_list(
+    insem = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, 
         args={"formsemestre_id": formsemestre_id, "etudid": etudid}
     )
     if not insem:
diff --git a/app/scodoc/sco_photos.py b/app/scodoc/sco_photos.py
index b6d5d917a62ee97e7524e9556262c30ae0f49d34..549ba48e020e37b37eb86481b70f0ba2842d2457 100644
--- a/app/scodoc/sco_photos.py
+++ b/app/scodoc/sco_photos.py
@@ -64,7 +64,7 @@ from scolog import logdb
 
 # Full paths on server's filesystem. Something like "/opt/scodoc/var/scodoc/photos"
 PHOTO_DIR = os.path.join(Config.INSTANCE_HOME, "var", "scodoc", "photos")
-ICONS_DIR = os.path.join(SCO_SRC_DIR, "static", "icons")
+ICONS_DIR = os.path.join(SCO_SRC_DIR, "app", "static", "icons")
 UNKNOWN_IMAGE_PATH = os.path.join(ICONS_DIR, "unknown.jpg")
 UNKNOWN_IMAGE_URL = "get_photo_image?etudid="  # with empty etudid => unknown face image
 IMAGE_EXT = ".jpg"
diff --git a/app/scodoc/sco_placement.py b/app/scodoc/sco_placement.py
index e0d561124f7fa9ce1661f9d0a5fbb12ef43df31f..ac906fd996738fb2870dd0e53d958f0ab4615aa0 100644
--- a/app/scodoc/sco_placement.py
+++ b/app/scodoc/sco_placement.py
@@ -298,7 +298,7 @@ def do_placement(context, REQUEST):
             0
         ]  # XXX utiliser ZScolar (parent)
         # infos inscription
-        inscr = context.do_formsemestre_inscription_list(
+        inscr = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, 
             {"etudid": etudid, "formsemestre_id": M["formsemestre_id"]}
         )[0]
         if inscr["etat"] != "D":
diff --git a/app/scodoc/sco_report.py b/app/scodoc/sco_report.py
index e8fce7431150781f16eb19d5741828de93eb33fe..aafcf0708b8fcde5f919bcd0e8e0f8700b021628 100644
--- a/app/scodoc/sco_report.py
+++ b/app/scodoc/sco_report.py
@@ -451,7 +451,7 @@ def table_suivi_cohorte(
     logt("B: etuds sets")
     sem["members"] = orig_set
     for s in sems:
-        ins = context.do_formsemestre_inscription_list(
+        ins = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, 
             args={"formsemestre_id": s["formsemestre_id"]}
         )  # sans dems
         inset = set([i["etudid"] for i in ins])
diff --git a/app/scodoc/sco_saisie_notes.py b/app/scodoc/sco_saisie_notes.py
index 732952ca3a972c4b13fffc5b8e89ee9d171f96c2..44cca39007900dbccdf2933cd7ee6485f73e3234 100644
--- a/app/scodoc/sco_saisie_notes.py
+++ b/app/scodoc/sco_saisie_notes.py
@@ -1006,7 +1006,7 @@ def _get_sorted_etuds(context, E, etudids, formsemestre_id):
         scolars.format_etud_ident(e)
         etuds.append(e)
         # infos inscription dans ce semestre
-        e["inscr"] = context.do_formsemestre_inscription_list(
+        e["inscr"] = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, 
             {"etudid": etudid, "formsemestre_id": formsemestre_id}
         )[0]
         # Groupes auxquels appartient cet étudiant:
diff --git a/app/scodoc/sco_synchro_etuds.py b/app/scodoc/sco_synchro_etuds.py
index 71bd12a3453c4fbf675b82732ad6d670118b01b8..1cb2456ddedc1651c9a2988b72e0f38e883f9cd5 100644
--- a/app/scodoc/sco_synchro_etuds.py
+++ b/app/scodoc/sco_synchro_etuds.py
@@ -770,7 +770,7 @@ def update_etape_formsemestre_inscription(context, ins, etud):
     """
     if etud["etape"] != ins["etape"]:
         ins["etape"] = etud["etape"]
-        context.do_formsemestre_inscription_edit(args=ins)
+        sco_formsemestre_inscriptions.do_formsemestre_inscription_edit(context, args=ins)
 
 
 def formsemestre_import_etud_admission(
@@ -783,7 +783,7 @@ def formsemestre_import_etud_admission(
     N'affecte pas les etudiants inconnus sur le portail.
     """
     sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
-    ins = context.do_formsemestre_inscription_list({"formsemestre_id": formsemestre_id})
+    ins = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, {"formsemestre_id": formsemestre_id})
     log(
         "formsemestre_import_etud_admission: %s (%d etuds)"
         % (formsemestre_id, len(ins))
diff --git a/app/scodoc/sco_utils.py b/app/scodoc/sco_utils.py
index aec571c401a5de8053c36b3acbba1c53b3163e30..e81e431b62bdbd00fe6c3ee6c6bb5f4c0c5ff4f3 100644
--- a/app/scodoc/sco_utils.py
+++ b/app/scodoc/sco_utils.py
@@ -234,7 +234,7 @@ if not os.path.exists(SCO_TMP_DIR):
 # ----- Les logos: /opt/scodoc/var/scodoc/config/logos
 SCODOC_LOGOS_DIR = os.path.join(SCODOC_CFG_DIR, "logos")
 
-# Dans les sources:
+# Racine projet: /.../ScoDoc/
 SCO_SRC_DIR = os.path.join(Config.INSTANCE_HOME, "Products", "ScoDoc")
 #  - Les outils distribués
 SCO_TOOLS_DIR = os.path.join(SCO_SRC_DIR, "config")
@@ -820,7 +820,7 @@ def icontag(name, file_format="png", **attrs):
     """
     if ("width" not in attrs) or ("height" not in attrs):
         if name not in ICONSIZES:
-            img_file = SCO_SRC_DIR + "/static/icons/%s.%s" % (name, file_format)
+            img_file = SCO_SRC_DIR + "/app/static/icons/%s.%s" % (name, file_format)
             im = PILImage.open(img_file)
             width, height = im.size[0], im.size[1]
             ICONSIZES[name] = (width, height)  # cache
diff --git a/app/scodoc/scolars.py b/app/scodoc/scolars.py
index 6c7e8f053bf8d7cff69173bcd4068f934ed211bf..3f632cae3065568623a8cfb8f80bd3eb4e054e0d 100644
--- a/app/scodoc/scolars.py
+++ b/app/scodoc/scolars.py
@@ -926,7 +926,7 @@ def fillEtudsInfo(context, etuds):
         format_etud_ident(etud)
 
         # Semestres dans lesquel il est inscrit
-        ins = context.Notes.do_formsemestre_inscription_list({"etudid": etudid})
+        ins = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, {"etudid": etudid})
         etud["ins"] = ins
         sems = []
         cursem = None  # semestre "courant" ou il est inscrit
diff --git a/static/DataTables/ColReorder-1.3.3/css/colReorder.bootstrap.css b/app/static/DataTables/ColReorder-1.3.3/css/colReorder.bootstrap.css
similarity index 100%
rename from static/DataTables/ColReorder-1.3.3/css/colReorder.bootstrap.css
rename to app/static/DataTables/ColReorder-1.3.3/css/colReorder.bootstrap.css
diff --git a/static/DataTables/ColReorder-1.3.3/css/colReorder.bootstrap.min.css b/app/static/DataTables/ColReorder-1.3.3/css/colReorder.bootstrap.min.css
similarity index 100%
rename from static/DataTables/ColReorder-1.3.3/css/colReorder.bootstrap.min.css
rename to app/static/DataTables/ColReorder-1.3.3/css/colReorder.bootstrap.min.css
diff --git a/static/DataTables/ColReorder-1.3.3/css/colReorder.dataTables.css b/app/static/DataTables/ColReorder-1.3.3/css/colReorder.dataTables.css
similarity index 100%
rename from static/DataTables/ColReorder-1.3.3/css/colReorder.dataTables.css
rename to app/static/DataTables/ColReorder-1.3.3/css/colReorder.dataTables.css
diff --git a/static/DataTables/ColReorder-1.3.3/css/colReorder.dataTables.min.css b/app/static/DataTables/ColReorder-1.3.3/css/colReorder.dataTables.min.css
similarity index 100%
rename from static/DataTables/ColReorder-1.3.3/css/colReorder.dataTables.min.css
rename to app/static/DataTables/ColReorder-1.3.3/css/colReorder.dataTables.min.css
diff --git a/static/DataTables/ColReorder-1.3.3/css/colReorder.foundation.css b/app/static/DataTables/ColReorder-1.3.3/css/colReorder.foundation.css
similarity index 100%
rename from static/DataTables/ColReorder-1.3.3/css/colReorder.foundation.css
rename to app/static/DataTables/ColReorder-1.3.3/css/colReorder.foundation.css
diff --git a/static/DataTables/ColReorder-1.3.3/css/colReorder.foundation.min.css b/app/static/DataTables/ColReorder-1.3.3/css/colReorder.foundation.min.css
similarity index 100%
rename from static/DataTables/ColReorder-1.3.3/css/colReorder.foundation.min.css
rename to app/static/DataTables/ColReorder-1.3.3/css/colReorder.foundation.min.css
diff --git a/static/DataTables/ColReorder-1.3.3/css/colReorder.jqueryui.css b/app/static/DataTables/ColReorder-1.3.3/css/colReorder.jqueryui.css
similarity index 100%
rename from static/DataTables/ColReorder-1.3.3/css/colReorder.jqueryui.css
rename to app/static/DataTables/ColReorder-1.3.3/css/colReorder.jqueryui.css
diff --git a/static/DataTables/ColReorder-1.3.3/css/colReorder.jqueryui.min.css b/app/static/DataTables/ColReorder-1.3.3/css/colReorder.jqueryui.min.css
similarity index 100%
rename from static/DataTables/ColReorder-1.3.3/css/colReorder.jqueryui.min.css
rename to app/static/DataTables/ColReorder-1.3.3/css/colReorder.jqueryui.min.css
diff --git a/static/DataTables/ColReorder-1.3.3/js/dataTables.colReorder.js b/app/static/DataTables/ColReorder-1.3.3/js/dataTables.colReorder.js
similarity index 100%
rename from static/DataTables/ColReorder-1.3.3/js/dataTables.colReorder.js
rename to app/static/DataTables/ColReorder-1.3.3/js/dataTables.colReorder.js
diff --git a/static/DataTables/ColReorder-1.3.3/js/dataTables.colReorder.min.js b/app/static/DataTables/ColReorder-1.3.3/js/dataTables.colReorder.min.js
similarity index 100%
rename from static/DataTables/ColReorder-1.3.3/js/dataTables.colReorder.min.js
rename to app/static/DataTables/ColReorder-1.3.3/js/dataTables.colReorder.min.js
diff --git a/static/DataTables/DataTables-1.10.15/css/dataTables.bootstrap.css b/app/static/DataTables/DataTables-1.10.15/css/dataTables.bootstrap.css
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/css/dataTables.bootstrap.css
rename to app/static/DataTables/DataTables-1.10.15/css/dataTables.bootstrap.css
diff --git a/static/DataTables/DataTables-1.10.15/css/dataTables.bootstrap.min.css b/app/static/DataTables/DataTables-1.10.15/css/dataTables.bootstrap.min.css
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/css/dataTables.bootstrap.min.css
rename to app/static/DataTables/DataTables-1.10.15/css/dataTables.bootstrap.min.css
diff --git a/static/DataTables/DataTables-1.10.15/css/dataTables.foundation.css b/app/static/DataTables/DataTables-1.10.15/css/dataTables.foundation.css
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/css/dataTables.foundation.css
rename to app/static/DataTables/DataTables-1.10.15/css/dataTables.foundation.css
diff --git a/static/DataTables/DataTables-1.10.15/css/dataTables.foundation.min.css b/app/static/DataTables/DataTables-1.10.15/css/dataTables.foundation.min.css
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/css/dataTables.foundation.min.css
rename to app/static/DataTables/DataTables-1.10.15/css/dataTables.foundation.min.css
diff --git a/static/DataTables/DataTables-1.10.15/css/dataTables.jqueryui.css b/app/static/DataTables/DataTables-1.10.15/css/dataTables.jqueryui.css
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/css/dataTables.jqueryui.css
rename to app/static/DataTables/DataTables-1.10.15/css/dataTables.jqueryui.css
diff --git a/static/DataTables/DataTables-1.10.15/css/dataTables.jqueryui.min.css b/app/static/DataTables/DataTables-1.10.15/css/dataTables.jqueryui.min.css
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/css/dataTables.jqueryui.min.css
rename to app/static/DataTables/DataTables-1.10.15/css/dataTables.jqueryui.min.css
diff --git a/static/DataTables/DataTables-1.10.15/css/dataTables.semanticui.css b/app/static/DataTables/DataTables-1.10.15/css/dataTables.semanticui.css
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/css/dataTables.semanticui.css
rename to app/static/DataTables/DataTables-1.10.15/css/dataTables.semanticui.css
diff --git a/static/DataTables/DataTables-1.10.15/css/dataTables.semanticui.min.css b/app/static/DataTables/DataTables-1.10.15/css/dataTables.semanticui.min.css
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/css/dataTables.semanticui.min.css
rename to app/static/DataTables/DataTables-1.10.15/css/dataTables.semanticui.min.css
diff --git a/static/DataTables/DataTables-1.10.15/css/jquery.dataTables.css b/app/static/DataTables/DataTables-1.10.15/css/jquery.dataTables.css
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/css/jquery.dataTables.css
rename to app/static/DataTables/DataTables-1.10.15/css/jquery.dataTables.css
diff --git a/static/DataTables/DataTables-1.10.15/css/jquery.dataTables.min.css b/app/static/DataTables/DataTables-1.10.15/css/jquery.dataTables.min.css
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/css/jquery.dataTables.min.css
rename to app/static/DataTables/DataTables-1.10.15/css/jquery.dataTables.min.css
diff --git a/static/DataTables/DataTables-1.10.15/css/jquery.dataTables_themeroller.css b/app/static/DataTables/DataTables-1.10.15/css/jquery.dataTables_themeroller.css
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/css/jquery.dataTables_themeroller.css
rename to app/static/DataTables/DataTables-1.10.15/css/jquery.dataTables_themeroller.css
diff --git a/static/DataTables/DataTables-1.10.15/images/sort_asc.png b/app/static/DataTables/DataTables-1.10.15/images/sort_asc.png
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/images/sort_asc.png
rename to app/static/DataTables/DataTables-1.10.15/images/sort_asc.png
diff --git a/static/DataTables/DataTables-1.10.15/images/sort_asc_disabled.png b/app/static/DataTables/DataTables-1.10.15/images/sort_asc_disabled.png
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/images/sort_asc_disabled.png
rename to app/static/DataTables/DataTables-1.10.15/images/sort_asc_disabled.png
diff --git a/static/DataTables/DataTables-1.10.15/images/sort_both.png b/app/static/DataTables/DataTables-1.10.15/images/sort_both.png
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/images/sort_both.png
rename to app/static/DataTables/DataTables-1.10.15/images/sort_both.png
diff --git a/static/DataTables/DataTables-1.10.15/images/sort_desc.png b/app/static/DataTables/DataTables-1.10.15/images/sort_desc.png
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/images/sort_desc.png
rename to app/static/DataTables/DataTables-1.10.15/images/sort_desc.png
diff --git a/static/DataTables/DataTables-1.10.15/images/sort_desc_disabled.png b/app/static/DataTables/DataTables-1.10.15/images/sort_desc_disabled.png
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/images/sort_desc_disabled.png
rename to app/static/DataTables/DataTables-1.10.15/images/sort_desc_disabled.png
diff --git a/static/DataTables/DataTables-1.10.15/js/dataTables.bootstrap.js b/app/static/DataTables/DataTables-1.10.15/js/dataTables.bootstrap.js
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/js/dataTables.bootstrap.js
rename to app/static/DataTables/DataTables-1.10.15/js/dataTables.bootstrap.js
diff --git a/static/DataTables/DataTables-1.10.15/js/dataTables.bootstrap.min.js b/app/static/DataTables/DataTables-1.10.15/js/dataTables.bootstrap.min.js
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/js/dataTables.bootstrap.min.js
rename to app/static/DataTables/DataTables-1.10.15/js/dataTables.bootstrap.min.js
diff --git a/static/DataTables/DataTables-1.10.15/js/dataTables.foundation.js b/app/static/DataTables/DataTables-1.10.15/js/dataTables.foundation.js
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/js/dataTables.foundation.js
rename to app/static/DataTables/DataTables-1.10.15/js/dataTables.foundation.js
diff --git a/static/DataTables/DataTables-1.10.15/js/dataTables.foundation.min.js b/app/static/DataTables/DataTables-1.10.15/js/dataTables.foundation.min.js
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/js/dataTables.foundation.min.js
rename to app/static/DataTables/DataTables-1.10.15/js/dataTables.foundation.min.js
diff --git a/static/DataTables/DataTables-1.10.15/js/dataTables.jqueryui.js b/app/static/DataTables/DataTables-1.10.15/js/dataTables.jqueryui.js
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/js/dataTables.jqueryui.js
rename to app/static/DataTables/DataTables-1.10.15/js/dataTables.jqueryui.js
diff --git a/static/DataTables/DataTables-1.10.15/js/dataTables.jqueryui.min.js b/app/static/DataTables/DataTables-1.10.15/js/dataTables.jqueryui.min.js
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/js/dataTables.jqueryui.min.js
rename to app/static/DataTables/DataTables-1.10.15/js/dataTables.jqueryui.min.js
diff --git a/static/DataTables/DataTables-1.10.15/js/dataTables.semanticui.js b/app/static/DataTables/DataTables-1.10.15/js/dataTables.semanticui.js
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/js/dataTables.semanticui.js
rename to app/static/DataTables/DataTables-1.10.15/js/dataTables.semanticui.js
diff --git a/static/DataTables/DataTables-1.10.15/js/dataTables.semanticui.min.js b/app/static/DataTables/DataTables-1.10.15/js/dataTables.semanticui.min.js
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/js/dataTables.semanticui.min.js
rename to app/static/DataTables/DataTables-1.10.15/js/dataTables.semanticui.min.js
diff --git a/static/DataTables/DataTables-1.10.15/js/jquery.dataTables.js b/app/static/DataTables/DataTables-1.10.15/js/jquery.dataTables.js
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/js/jquery.dataTables.js
rename to app/static/DataTables/DataTables-1.10.15/js/jquery.dataTables.js
diff --git a/static/DataTables/DataTables-1.10.15/js/jquery.dataTables.min.js b/app/static/DataTables/DataTables-1.10.15/js/jquery.dataTables.min.js
similarity index 100%
rename from static/DataTables/DataTables-1.10.15/js/jquery.dataTables.min.js
rename to app/static/DataTables/DataTables-1.10.15/js/jquery.dataTables.min.js
diff --git a/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.bootstrap.css b/app/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.bootstrap.css
similarity index 100%
rename from static/DataTables/FixedColumns-3.2.2/css/fixedColumns.bootstrap.css
rename to app/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.bootstrap.css
diff --git a/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.bootstrap.min.css b/app/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.bootstrap.min.css
similarity index 100%
rename from static/DataTables/FixedColumns-3.2.2/css/fixedColumns.bootstrap.min.css
rename to app/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.bootstrap.min.css
diff --git a/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.dataTables.css b/app/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.dataTables.css
similarity index 100%
rename from static/DataTables/FixedColumns-3.2.2/css/fixedColumns.dataTables.css
rename to app/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.dataTables.css
diff --git a/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.dataTables.min.css b/app/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.dataTables.min.css
similarity index 100%
rename from static/DataTables/FixedColumns-3.2.2/css/fixedColumns.dataTables.min.css
rename to app/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.dataTables.min.css
diff --git a/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.foundation.css b/app/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.foundation.css
similarity index 100%
rename from static/DataTables/FixedColumns-3.2.2/css/fixedColumns.foundation.css
rename to app/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.foundation.css
diff --git a/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.foundation.min.css b/app/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.foundation.min.css
similarity index 100%
rename from static/DataTables/FixedColumns-3.2.2/css/fixedColumns.foundation.min.css
rename to app/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.foundation.min.css
diff --git a/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.jqueryui.css b/app/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.jqueryui.css
similarity index 100%
rename from static/DataTables/FixedColumns-3.2.2/css/fixedColumns.jqueryui.css
rename to app/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.jqueryui.css
diff --git a/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.jqueryui.min.css b/app/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.jqueryui.min.css
similarity index 100%
rename from static/DataTables/FixedColumns-3.2.2/css/fixedColumns.jqueryui.min.css
rename to app/static/DataTables/FixedColumns-3.2.2/css/fixedColumns.jqueryui.min.css
diff --git a/static/DataTables/FixedColumns-3.2.2/js/dataTables.fixedColumns.js b/app/static/DataTables/FixedColumns-3.2.2/js/dataTables.fixedColumns.js
similarity index 100%
rename from static/DataTables/FixedColumns-3.2.2/js/dataTables.fixedColumns.js
rename to app/static/DataTables/FixedColumns-3.2.2/js/dataTables.fixedColumns.js
diff --git a/static/DataTables/FixedColumns-3.2.2/js/dataTables.fixedColumns.min.js b/app/static/DataTables/FixedColumns-3.2.2/js/dataTables.fixedColumns.min.js
similarity index 100%
rename from static/DataTables/FixedColumns-3.2.2/js/dataTables.fixedColumns.min.js
rename to app/static/DataTables/FixedColumns-3.2.2/js/dataTables.fixedColumns.min.js
diff --git a/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.bootstrap.css b/app/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.bootstrap.css
similarity index 100%
rename from static/DataTables/FixedHeader-3.1.2/css/fixedHeader.bootstrap.css
rename to app/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.bootstrap.css
diff --git a/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.bootstrap.min.css b/app/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.bootstrap.min.css
similarity index 100%
rename from static/DataTables/FixedHeader-3.1.2/css/fixedHeader.bootstrap.min.css
rename to app/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.bootstrap.min.css
diff --git a/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.dataTables.css b/app/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.dataTables.css
similarity index 100%
rename from static/DataTables/FixedHeader-3.1.2/css/fixedHeader.dataTables.css
rename to app/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.dataTables.css
diff --git a/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.dataTables.min.css b/app/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.dataTables.min.css
similarity index 100%
rename from static/DataTables/FixedHeader-3.1.2/css/fixedHeader.dataTables.min.css
rename to app/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.dataTables.min.css
diff --git a/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.foundation.css b/app/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.foundation.css
similarity index 100%
rename from static/DataTables/FixedHeader-3.1.2/css/fixedHeader.foundation.css
rename to app/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.foundation.css
diff --git a/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.foundation.min.css b/app/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.foundation.min.css
similarity index 100%
rename from static/DataTables/FixedHeader-3.1.2/css/fixedHeader.foundation.min.css
rename to app/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.foundation.min.css
diff --git a/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.jqueryui.css b/app/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.jqueryui.css
similarity index 100%
rename from static/DataTables/FixedHeader-3.1.2/css/fixedHeader.jqueryui.css
rename to app/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.jqueryui.css
diff --git a/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.jqueryui.min.css b/app/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.jqueryui.min.css
similarity index 100%
rename from static/DataTables/FixedHeader-3.1.2/css/fixedHeader.jqueryui.min.css
rename to app/static/DataTables/FixedHeader-3.1.2/css/fixedHeader.jqueryui.min.css
diff --git a/static/DataTables/FixedHeader-3.1.2/js/dataTables.fixedHeader.js b/app/static/DataTables/FixedHeader-3.1.2/js/dataTables.fixedHeader.js
similarity index 100%
rename from static/DataTables/FixedHeader-3.1.2/js/dataTables.fixedHeader.js
rename to app/static/DataTables/FixedHeader-3.1.2/js/dataTables.fixedHeader.js
diff --git a/static/DataTables/FixedHeader-3.1.2/js/dataTables.fixedHeader.min.js b/app/static/DataTables/FixedHeader-3.1.2/js/dataTables.fixedHeader.min.js
similarity index 100%
rename from static/DataTables/FixedHeader-3.1.2/js/dataTables.fixedHeader.min.js
rename to app/static/DataTables/FixedHeader-3.1.2/js/dataTables.fixedHeader.min.js
diff --git a/static/DataTables/Responsive-2.1.1/css/responsive.bootstrap.css b/app/static/DataTables/Responsive-2.1.1/css/responsive.bootstrap.css
similarity index 100%
rename from static/DataTables/Responsive-2.1.1/css/responsive.bootstrap.css
rename to app/static/DataTables/Responsive-2.1.1/css/responsive.bootstrap.css
diff --git a/static/DataTables/Responsive-2.1.1/css/responsive.bootstrap.min.css b/app/static/DataTables/Responsive-2.1.1/css/responsive.bootstrap.min.css
similarity index 100%
rename from static/DataTables/Responsive-2.1.1/css/responsive.bootstrap.min.css
rename to app/static/DataTables/Responsive-2.1.1/css/responsive.bootstrap.min.css
diff --git a/static/DataTables/Responsive-2.1.1/css/responsive.dataTables.css b/app/static/DataTables/Responsive-2.1.1/css/responsive.dataTables.css
similarity index 100%
rename from static/DataTables/Responsive-2.1.1/css/responsive.dataTables.css
rename to app/static/DataTables/Responsive-2.1.1/css/responsive.dataTables.css
diff --git a/static/DataTables/Responsive-2.1.1/css/responsive.dataTables.min.css b/app/static/DataTables/Responsive-2.1.1/css/responsive.dataTables.min.css
similarity index 100%
rename from static/DataTables/Responsive-2.1.1/css/responsive.dataTables.min.css
rename to app/static/DataTables/Responsive-2.1.1/css/responsive.dataTables.min.css
diff --git a/static/DataTables/Responsive-2.1.1/css/responsive.foundation.css b/app/static/DataTables/Responsive-2.1.1/css/responsive.foundation.css
similarity index 100%
rename from static/DataTables/Responsive-2.1.1/css/responsive.foundation.css
rename to app/static/DataTables/Responsive-2.1.1/css/responsive.foundation.css
diff --git a/static/DataTables/Responsive-2.1.1/css/responsive.foundation.min.css b/app/static/DataTables/Responsive-2.1.1/css/responsive.foundation.min.css
similarity index 100%
rename from static/DataTables/Responsive-2.1.1/css/responsive.foundation.min.css
rename to app/static/DataTables/Responsive-2.1.1/css/responsive.foundation.min.css
diff --git a/static/DataTables/Responsive-2.1.1/css/responsive.jqueryui.css b/app/static/DataTables/Responsive-2.1.1/css/responsive.jqueryui.css
similarity index 100%
rename from static/DataTables/Responsive-2.1.1/css/responsive.jqueryui.css
rename to app/static/DataTables/Responsive-2.1.1/css/responsive.jqueryui.css
diff --git a/static/DataTables/Responsive-2.1.1/css/responsive.jqueryui.min.css b/app/static/DataTables/Responsive-2.1.1/css/responsive.jqueryui.min.css
similarity index 100%
rename from static/DataTables/Responsive-2.1.1/css/responsive.jqueryui.min.css
rename to app/static/DataTables/Responsive-2.1.1/css/responsive.jqueryui.min.css
diff --git a/static/DataTables/Responsive-2.1.1/js/dataTables.responsive.js b/app/static/DataTables/Responsive-2.1.1/js/dataTables.responsive.js
similarity index 100%
rename from static/DataTables/Responsive-2.1.1/js/dataTables.responsive.js
rename to app/static/DataTables/Responsive-2.1.1/js/dataTables.responsive.js
diff --git a/static/DataTables/Responsive-2.1.1/js/dataTables.responsive.min.js b/app/static/DataTables/Responsive-2.1.1/js/dataTables.responsive.min.js
similarity index 100%
rename from static/DataTables/Responsive-2.1.1/js/dataTables.responsive.min.js
rename to app/static/DataTables/Responsive-2.1.1/js/dataTables.responsive.min.js
diff --git a/static/DataTables/Responsive-2.1.1/js/responsive.bootstrap.js b/app/static/DataTables/Responsive-2.1.1/js/responsive.bootstrap.js
similarity index 100%
rename from static/DataTables/Responsive-2.1.1/js/responsive.bootstrap.js
rename to app/static/DataTables/Responsive-2.1.1/js/responsive.bootstrap.js
diff --git a/static/DataTables/Responsive-2.1.1/js/responsive.bootstrap.min.js b/app/static/DataTables/Responsive-2.1.1/js/responsive.bootstrap.min.js
similarity index 100%
rename from static/DataTables/Responsive-2.1.1/js/responsive.bootstrap.min.js
rename to app/static/DataTables/Responsive-2.1.1/js/responsive.bootstrap.min.js
diff --git a/static/DataTables/Responsive-2.1.1/js/responsive.foundation.js b/app/static/DataTables/Responsive-2.1.1/js/responsive.foundation.js
similarity index 100%
rename from static/DataTables/Responsive-2.1.1/js/responsive.foundation.js
rename to app/static/DataTables/Responsive-2.1.1/js/responsive.foundation.js
diff --git a/static/DataTables/Responsive-2.1.1/js/responsive.foundation.min.js b/app/static/DataTables/Responsive-2.1.1/js/responsive.foundation.min.js
similarity index 100%
rename from static/DataTables/Responsive-2.1.1/js/responsive.foundation.min.js
rename to app/static/DataTables/Responsive-2.1.1/js/responsive.foundation.min.js
diff --git a/static/DataTables/Responsive-2.1.1/js/responsive.jqueryui.js b/app/static/DataTables/Responsive-2.1.1/js/responsive.jqueryui.js
similarity index 100%
rename from static/DataTables/Responsive-2.1.1/js/responsive.jqueryui.js
rename to app/static/DataTables/Responsive-2.1.1/js/responsive.jqueryui.js
diff --git a/static/DataTables/Responsive-2.1.1/js/responsive.jqueryui.min.js b/app/static/DataTables/Responsive-2.1.1/js/responsive.jqueryui.min.js
similarity index 100%
rename from static/DataTables/Responsive-2.1.1/js/responsive.jqueryui.min.js
rename to app/static/DataTables/Responsive-2.1.1/js/responsive.jqueryui.min.js
diff --git a/static/DataTables/datatables.css b/app/static/DataTables/datatables.css
similarity index 100%
rename from static/DataTables/datatables.css
rename to app/static/DataTables/datatables.css
diff --git a/static/DataTables/datatables.js b/app/static/DataTables/datatables.js
similarity index 100%
rename from static/DataTables/datatables.js
rename to app/static/DataTables/datatables.js
diff --git a/static/DataTables/datatables.min.css b/app/static/DataTables/datatables.min.css
similarity index 100%
rename from static/DataTables/datatables.min.css
rename to app/static/DataTables/datatables.min.css
diff --git a/static/DataTables/datatables.min.js b/app/static/DataTables/datatables.min.js
similarity index 100%
rename from static/DataTables/datatables.min.js
rename to app/static/DataTables/datatables.min.js
diff --git a/static/README b/app/static/README
similarity index 100%
rename from static/README
rename to app/static/README
diff --git a/static/css/autosuggest_inquisitor.css b/app/static/css/autosuggest_inquisitor.css
similarity index 100%
rename from static/css/autosuggest_inquisitor.css
rename to app/static/css/autosuggest_inquisitor.css
diff --git a/static/css/calabs.css b/app/static/css/calabs.css
similarity index 100%
rename from static/css/calabs.css
rename to app/static/css/calabs.css
diff --git a/static/css/groups.css b/app/static/css/groups.css
similarity index 100%
rename from static/css/groups.css
rename to app/static/css/groups.css
diff --git a/static/css/gt_table.css b/app/static/css/gt_table.css
similarity index 100%
rename from static/css/gt_table.css
rename to app/static/css/gt_table.css
diff --git a/static/css/menu.css b/app/static/css/menu.css
similarity index 100%
rename from static/css/menu.css
rename to app/static/css/menu.css
diff --git a/static/css/multiple-select.css b/app/static/css/multiple-select.css
similarity index 100%
rename from static/css/multiple-select.css
rename to app/static/css/multiple-select.css
diff --git a/static/css/multiple-select.png b/app/static/css/multiple-select.png
similarity index 100%
rename from static/css/multiple-select.png
rename to app/static/css/multiple-select.png
diff --git a/static/css/radar_bulletin.css b/app/static/css/radar_bulletin.css
similarity index 100%
rename from static/css/radar_bulletin.css
rename to app/static/css/radar_bulletin.css
diff --git a/static/css/rickshaw.min.css b/app/static/css/rickshaw.min.css
similarity index 100%
rename from static/css/rickshaw.min.css
rename to app/static/css/rickshaw.min.css
diff --git a/static/css/scodoc.css b/app/static/css/scodoc.css
similarity index 100%
rename from static/css/scodoc.css
rename to app/static/css/scodoc.css
diff --git a/static/css/verticalhisto.css b/app/static/css/verticalhisto.css
similarity index 100%
rename from static/css/verticalhisto.css
rename to app/static/css/verticalhisto.css
diff --git a/static/icons/arrow_down.png b/app/static/icons/arrow_down.png
similarity index 100%
rename from static/icons/arrow_down.png
rename to app/static/icons/arrow_down.png
diff --git a/static/icons/arrow_none.png b/app/static/icons/arrow_none.png
similarity index 100%
rename from static/icons/arrow_none.png
rename to app/static/icons/arrow_none.png
diff --git a/static/icons/arrow_up.png b/app/static/icons/arrow_up.png
similarity index 100%
rename from static/icons/arrow_up.png
rename to app/static/icons/arrow_up.png
diff --git a/static/icons/as_pointer.png b/app/static/icons/as_pointer.png
similarity index 100%
rename from static/icons/as_pointer.png
rename to app/static/icons/as_pointer.png
diff --git a/static/icons/borgne_img.png b/app/static/icons/borgne_img.png
similarity index 100%
rename from static/icons/borgne_img.png
rename to app/static/icons/borgne_img.png
diff --git a/static/icons/bt_gif.png b/app/static/icons/bt_gif.png
similarity index 100%
rename from static/icons/bt_gif.png
rename to app/static/icons/bt_gif.png
diff --git a/static/icons/bullet_arrow.png b/app/static/icons/bullet_arrow.png
similarity index 100%
rename from static/icons/bullet_arrow.png
rename to app/static/icons/bullet_arrow.png
diff --git a/static/icons/bullet_plus.png b/app/static/icons/bullet_plus.png
similarity index 100%
rename from static/icons/bullet_plus.png
rename to app/static/icons/bullet_plus.png
diff --git a/static/icons/bullet_warning_img.png b/app/static/icons/bullet_warning_img.png
similarity index 100%
rename from static/icons/bullet_warning_img.png
rename to app/static/icons/bullet_warning_img.png
diff --git a/static/icons/calendar_img.png b/app/static/icons/calendar_img.png
similarity index 100%
rename from static/icons/calendar_img.png
rename to app/static/icons/calendar_img.png
diff --git a/static/icons/contact_img.png b/app/static/icons/contact_img.png
similarity index 100%
rename from static/icons/contact_img.png
rename to app/static/icons/contact_img.png
diff --git a/static/icons/correspondant_img.png b/app/static/icons/correspondant_img.png
similarity index 100%
rename from static/icons/correspondant_img.png
rename to app/static/icons/correspondant_img.png
diff --git a/static/icons/delete_img.png b/app/static/icons/delete_img.png
similarity index 100%
rename from static/icons/delete_img.png
rename to app/static/icons/delete_img.png
diff --git a/static/icons/delete_small_dis_img.png b/app/static/icons/delete_small_dis_img.png
similarity index 100%
rename from static/icons/delete_small_dis_img.png
rename to app/static/icons/delete_small_dis_img.png
diff --git a/static/icons/delete_small_img.png b/app/static/icons/delete_small_img.png
similarity index 100%
rename from static/icons/delete_small_img.png
rename to app/static/icons/delete_small_img.png
diff --git a/static/icons/devel_img.png b/app/static/icons/devel_img.png
similarity index 100%
rename from static/icons/devel_img.png
rename to app/static/icons/devel_img.png
diff --git a/static/icons/edit_img.png b/app/static/icons/edit_img.png
similarity index 100%
rename from static/icons/edit_img.png
rename to app/static/icons/edit_img.png
diff --git a/static/icons/emptygroupicon_img.png b/app/static/icons/emptygroupicon_img.png
similarity index 100%
rename from static/icons/emptygroupicon_img.png
rename to app/static/icons/emptygroupicon_img.png
diff --git a/static/icons/entreprise_img.png b/app/static/icons/entreprise_img.png
similarity index 100%
rename from static/icons/entreprise_img.png
rename to app/static/icons/entreprise_img.png
diff --git a/static/icons/entreprise_side_img.png b/app/static/icons/entreprise_side_img.png
similarity index 100%
rename from static/icons/entreprise_side_img.png
rename to app/static/icons/entreprise_side_img.png
diff --git a/static/icons/eye_img.png b/app/static/icons/eye_img.png
similarity index 100%
rename from static/icons/eye_img.png
rename to app/static/icons/eye_img.png
diff --git a/static/icons/firefox_fr.png b/app/static/icons/firefox_fr.png
similarity index 100%
rename from static/icons/firefox_fr.png
rename to app/static/icons/firefox_fr.png
diff --git a/static/icons/flag_uk_img.png b/app/static/icons/flag_uk_img.png
similarity index 100%
rename from static/icons/flag_uk_img.png
rename to app/static/icons/flag_uk_img.png
diff --git a/static/icons/formula.png b/app/static/icons/formula.png
similarity index 100%
rename from static/icons/formula.png
rename to app/static/icons/formula.png
diff --git a/static/icons/groupicon_img.png b/app/static/icons/groupicon_img.png
similarity index 100%
rename from static/icons/groupicon_img.png
rename to app/static/icons/groupicon_img.png
diff --git a/static/icons/hide_img.png b/app/static/icons/hide_img.png
similarity index 100%
rename from static/icons/hide_img.png
rename to app/static/icons/hide_img.png
diff --git a/static/icons/hl_corner_bl.png b/app/static/icons/hl_corner_bl.png
similarity index 100%
rename from static/icons/hl_corner_bl.png
rename to app/static/icons/hl_corner_bl.png
diff --git a/static/icons/hl_corner_br.png b/app/static/icons/hl_corner_br.png
similarity index 100%
rename from static/icons/hl_corner_br.png
rename to app/static/icons/hl_corner_br.png
diff --git a/static/icons/hl_corner_tl.png b/app/static/icons/hl_corner_tl.png
similarity index 100%
rename from static/icons/hl_corner_tl.png
rename to app/static/icons/hl_corner_tl.png
diff --git a/static/icons/hl_corner_tr.png b/app/static/icons/hl_corner_tr.png
similarity index 100%
rename from static/icons/hl_corner_tr.png
rename to app/static/icons/hl_corner_tr.png
diff --git a/static/icons/info-16_img.png b/app/static/icons/info-16_img.png
similarity index 100%
rename from static/icons/info-16_img.png
rename to app/static/icons/info-16_img.png
diff --git a/static/icons/info-24_img.png b/app/static/icons/info-24_img.png
similarity index 100%
rename from static/icons/info-24_img.png
rename to app/static/icons/info-24_img.png
diff --git a/static/icons/interdit_img.png b/app/static/icons/interdit_img.png
similarity index 100%
rename from static/icons/interdit_img.png
rename to app/static/icons/interdit_img.png
diff --git a/static/icons/loading.jpg b/app/static/icons/loading.jpg
similarity index 100%
rename from static/icons/loading.jpg
rename to app/static/icons/loading.jpg
diff --git a/static/icons/lock32_img.png b/app/static/icons/lock32_img.png
similarity index 100%
rename from static/icons/lock32_img.png
rename to app/static/icons/lock32_img.png
diff --git a/static/icons/lock_img.png b/app/static/icons/lock_img.png
similarity index 100%
rename from static/icons/lock_img.png
rename to app/static/icons/lock_img.png
diff --git a/static/icons/menuarrow1_img.png b/app/static/icons/menuarrow1_img.png
similarity index 100%
rename from static/icons/menuarrow1_img.png
rename to app/static/icons/menuarrow1_img.png
diff --git a/static/icons/minus18_img.png b/app/static/icons/minus18_img.png
similarity index 100%
rename from static/icons/minus18_img.png
rename to app/static/icons/minus18_img.png
diff --git a/static/icons/minus_img.png b/app/static/icons/minus_img.png
similarity index 100%
rename from static/icons/minus_img.png
rename to app/static/icons/minus_img.png
diff --git a/static/icons/next_img.png b/app/static/icons/next_img.png
similarity index 100%
rename from static/icons/next_img.png
rename to app/static/icons/next_img.png
diff --git a/static/icons/notes_icon.png b/app/static/icons/notes_icon.png
similarity index 100%
rename from static/icons/notes_icon.png
rename to app/static/icons/notes_icon.png
diff --git a/static/icons/notes_img.png b/app/static/icons/notes_img.png
similarity index 100%
rename from static/icons/notes_img.png
rename to app/static/icons/notes_img.png
diff --git a/static/icons/nouv_img.png b/app/static/icons/nouv_img.png
similarity index 100%
rename from static/icons/nouv_img.png
rename to app/static/icons/nouv_img.png
diff --git a/static/icons/pdficon16x20_img.png b/app/static/icons/pdficon16x20_img.png
similarity index 100%
rename from static/icons/pdficon16x20_img.png
rename to app/static/icons/pdficon16x20_img.png
diff --git a/static/icons/pdficon_img.png b/app/static/icons/pdficon_img.png
similarity index 100%
rename from static/icons/pdficon_img.png
rename to app/static/icons/pdficon_img.png
diff --git a/static/icons/plus18_img.png b/app/static/icons/plus18_img.png
similarity index 100%
rename from static/icons/plus18_img.png
rename to app/static/icons/plus18_img.png
diff --git a/static/icons/plus_img.png b/app/static/icons/plus_img.png
similarity index 100%
rename from static/icons/plus_img.png
rename to app/static/icons/plus_img.png
diff --git a/static/icons/prev_img.png b/app/static/icons/prev_img.png
similarity index 100%
rename from static/icons/prev_img.png
rename to app/static/icons/prev_img.png
diff --git a/static/icons/pythonpoweredsmall_img.png b/app/static/icons/pythonpoweredsmall_img.png
similarity index 100%
rename from static/icons/pythonpoweredsmall_img.png
rename to app/static/icons/pythonpoweredsmall_img.png
diff --git a/static/icons/roundedge_img.png b/app/static/icons/roundedge_img.png
similarity index 100%
rename from static/icons/roundedge_img.png
rename to app/static/icons/roundedge_img.png
diff --git a/static/icons/rssscodoc_img.png b/app/static/icons/rssscodoc_img.png
similarity index 100%
rename from static/icons/rssscodoc_img.png
rename to app/static/icons/rssscodoc_img.png
diff --git a/static/icons/sco_icon.png b/app/static/icons/sco_icon.png
similarity index 100%
rename from static/icons/sco_icon.png
rename to app/static/icons/sco_icon.png
diff --git a/static/icons/scologo_img.png b/app/static/icons/scologo_img.png
similarity index 100%
rename from static/icons/scologo_img.png
rename to app/static/icons/scologo_img.png
diff --git a/static/icons/smallpolar_img.png b/app/static/icons/smallpolar_img.png
similarity index 100%
rename from static/icons/smallpolar_img.png
rename to app/static/icons/smallpolar_img.png
diff --git a/static/icons/status_green_img.png b/app/static/icons/status_green_img.png
similarity index 100%
rename from static/icons/status_green_img.png
rename to app/static/icons/status_green_img.png
diff --git a/static/icons/status_greenorange_img.gif b/app/static/icons/status_greenorange_img.gif
similarity index 100%
rename from static/icons/status_greenorange_img.gif
rename to app/static/icons/status_greenorange_img.gif
diff --git a/static/icons/status_orange_img.png b/app/static/icons/status_orange_img.png
similarity index 100%
rename from static/icons/status_orange_img.png
rename to app/static/icons/status_orange_img.png
diff --git a/static/icons/status_visible_img.png b/app/static/icons/status_visible_img.png
similarity index 100%
rename from static/icons/status_visible_img.png
rename to app/static/icons/status_visible_img.png
diff --git a/static/icons/table_brushed_jpg.png b/app/static/icons/table_brushed_jpg.png
similarity index 100%
rename from static/icons/table_brushed_jpg.png
rename to app/static/icons/table_brushed_jpg.png
diff --git a/static/icons/takebacktheweb_small.png b/app/static/icons/takebacktheweb_small.png
similarity index 100%
rename from static/icons/takebacktheweb_small.png
rename to app/static/icons/takebacktheweb_small.png
diff --git a/static/icons/trust_firefox_gif.png b/app/static/icons/trust_firefox_gif.png
similarity index 100%
rename from static/icons/trust_firefox_gif.png
rename to app/static/icons/trust_firefox_gif.png
diff --git a/static/icons/ul_corner_bl.png b/app/static/icons/ul_corner_bl.png
similarity index 100%
rename from static/icons/ul_corner_bl.png
rename to app/static/icons/ul_corner_bl.png
diff --git a/static/icons/ul_corner_br.png b/app/static/icons/ul_corner_br.png
similarity index 100%
rename from static/icons/ul_corner_br.png
rename to app/static/icons/ul_corner_br.png
diff --git a/static/icons/ul_corner_tl.png b/app/static/icons/ul_corner_tl.png
similarity index 100%
rename from static/icons/ul_corner_tl.png
rename to app/static/icons/ul_corner_tl.png
diff --git a/static/icons/ul_corner_tr.png b/app/static/icons/ul_corner_tr.png
similarity index 100%
rename from static/icons/ul_corner_tr.png
rename to app/static/icons/ul_corner_tr.png
diff --git a/static/icons/unknown.jpg b/app/static/icons/unknown.jpg
similarity index 100%
rename from static/icons/unknown.jpg
rename to app/static/icons/unknown.jpg
diff --git a/static/icons/unknown_img.png b/app/static/icons/unknown_img.png
similarity index 100%
rename from static/icons/unknown_img.png
rename to app/static/icons/unknown_img.png
diff --git a/static/icons/warning16_img.png b/app/static/icons/warning16_img.png
similarity index 100%
rename from static/icons/warning16_img.png
rename to app/static/icons/warning16_img.png
diff --git a/static/icons/warning21_img.png b/app/static/icons/warning21_img.png
similarity index 100%
rename from static/icons/warning21_img.png
rename to app/static/icons/warning21_img.png
diff --git a/static/icons/warning_img.png b/app/static/icons/warning_img.png
similarity index 100%
rename from static/icons/warning_img.png
rename to app/static/icons/warning_img.png
diff --git a/static/icons/xlsicon_img.png b/app/static/icons/xlsicon_img.png
similarity index 100%
rename from static/icons/xlsicon_img.png
rename to app/static/icons/xlsicon_img.png
diff --git a/static/index.html b/app/static/index.html
similarity index 100%
rename from static/index.html
rename to app/static/index.html
diff --git a/static/jQuery/jquery-1.12.4.min.js b/app/static/jQuery/jquery-1.12.4.min.js
similarity index 100%
rename from static/jQuery/jquery-1.12.4.min.js
rename to app/static/jQuery/jquery-1.12.4.min.js
diff --git a/static/jQuery/jquery-migrate-1.2.0.min.js b/app/static/jQuery/jquery-migrate-1.2.0.min.js
similarity index 100%
rename from static/jQuery/jquery-migrate-1.2.0.min.js
rename to app/static/jQuery/jquery-migrate-1.2.0.min.js
diff --git a/static/jQuery/jquery.js b/app/static/jQuery/jquery.js
similarity index 100%
rename from static/jQuery/jquery.js
rename to app/static/jQuery/jquery.js
diff --git a/static/js/abs_ajax.js b/app/static/js/abs_ajax.js
similarity index 100%
rename from static/js/abs_ajax.js
rename to app/static/js/abs_ajax.js
diff --git a/static/js/apo_semset_maq_status.js b/app/static/js/apo_semset_maq_status.js
similarity index 100%
rename from static/js/apo_semset_maq_status.js
rename to app/static/js/apo_semset_maq_status.js
diff --git a/static/js/bulletin.js b/app/static/js/bulletin.js
similarity index 100%
rename from static/js/bulletin.js
rename to app/static/js/bulletin.js
diff --git a/static/js/calabs.js b/app/static/js/calabs.js
similarity index 100%
rename from static/js/calabs.js
rename to app/static/js/calabs.js
diff --git a/static/js/editPartitionForm.js b/app/static/js/editPartitionForm.js
similarity index 100%
rename from static/js/editPartitionForm.js
rename to app/static/js/editPartitionForm.js
diff --git a/static/js/edit_ue.js b/app/static/js/edit_ue.js
similarity index 100%
rename from static/js/edit_ue.js
rename to app/static/js/edit_ue.js
diff --git a/static/js/etud_debouche.js b/app/static/js/etud_debouche.js
similarity index 100%
rename from static/js/etud_debouche.js
rename to app/static/js/etud_debouche.js
diff --git a/static/js/etud_info.js b/app/static/js/etud_info.js
similarity index 100%
rename from static/js/etud_info.js
rename to app/static/js/etud_info.js
diff --git a/static/js/export_results.js b/app/static/js/export_results.js
similarity index 100%
rename from static/js/export_results.js
rename to app/static/js/export_results.js
diff --git a/static/js/formsemestre_ext_edit_ue_validations.js b/app/static/js/formsemestre_ext_edit_ue_validations.js
similarity index 100%
rename from static/js/formsemestre_ext_edit_ue_validations.js
rename to app/static/js/formsemestre_ext_edit_ue_validations.js
diff --git a/static/js/groupmgr.js b/app/static/js/groupmgr.js
similarity index 100%
rename from static/js/groupmgr.js
rename to app/static/js/groupmgr.js
diff --git a/static/js/groups_view.js b/app/static/js/groups_view.js
similarity index 100%
rename from static/js/groups_view.js
rename to app/static/js/groups_view.js
diff --git a/static/js/map_lycees.js b/app/static/js/map_lycees.js
similarity index 100%
rename from static/js/map_lycees.js
rename to app/static/js/map_lycees.js
diff --git a/static/js/module_tag_editor.js b/app/static/js/module_tag_editor.js
similarity index 100%
rename from static/js/module_tag_editor.js
rename to app/static/js/module_tag_editor.js
diff --git a/static/js/radar_bulletin.js b/app/static/js/radar_bulletin.js
similarity index 100%
rename from static/js/radar_bulletin.js
rename to app/static/js/radar_bulletin.js
diff --git a/static/js/recap_parcours.js b/app/static/js/recap_parcours.js
similarity index 100%
rename from static/js/recap_parcours.js
rename to app/static/js/recap_parcours.js
diff --git a/static/js/saisie_notes.js b/app/static/js/saisie_notes.js
similarity index 100%
rename from static/js/saisie_notes.js
rename to app/static/js/saisie_notes.js
diff --git a/static/js/sco_ue_external.js b/app/static/js/sco_ue_external.js
similarity index 100%
rename from static/js/sco_ue_external.js
rename to app/static/js/sco_ue_external.js
diff --git a/static/js/scodoc.js b/app/static/js/scodoc.js
similarity index 100%
rename from static/js/scodoc.js
rename to app/static/js/scodoc.js
diff --git a/static/js/trombino.js b/app/static/js/trombino.js
similarity index 100%
rename from static/js/trombino.js
rename to app/static/js/trombino.js
diff --git a/static/js/ue_list.js b/app/static/js/ue_list.js
similarity index 100%
rename from static/js/ue_list.js
rename to app/static/js/ue_list.js
diff --git a/static/js/validate_previous_ue.js b/app/static/js/validate_previous_ue.js
similarity index 100%
rename from static/js/validate_previous_ue.js
rename to app/static/js/validate_previous_ue.js
diff --git a/static/libjs/AutoSuggest.js b/app/static/libjs/AutoSuggest.js
similarity index 100%
rename from static/libjs/AutoSuggest.js
rename to app/static/libjs/AutoSuggest.js
diff --git a/static/libjs/AutoSuggest_2.1.3_comp.js b/app/static/libjs/AutoSuggest_2.1.3_comp.js
similarity index 100%
rename from static/libjs/AutoSuggest_2.1.3_comp.js
rename to app/static/libjs/AutoSuggest_2.1.3_comp.js
diff --git a/static/libjs/bootstrap-3.1.1-dist/._css b/app/static/libjs/bootstrap-3.1.1-dist/._css
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/._css
rename to app/static/libjs/bootstrap-3.1.1-dist/._css
diff --git a/static/libjs/bootstrap-3.1.1-dist/._fonts b/app/static/libjs/bootstrap-3.1.1-dist/._fonts
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/._fonts
rename to app/static/libjs/bootstrap-3.1.1-dist/._fonts
diff --git a/static/libjs/bootstrap-3.1.1-dist/._js b/app/static/libjs/bootstrap-3.1.1-dist/._js
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/._js
rename to app/static/libjs/bootstrap-3.1.1-dist/._js
diff --git a/static/libjs/bootstrap-3.1.1-dist/css/._bootstrap-theme.css b/app/static/libjs/bootstrap-3.1.1-dist/css/._bootstrap-theme.css
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/css/._bootstrap-theme.css
rename to app/static/libjs/bootstrap-3.1.1-dist/css/._bootstrap-theme.css
diff --git a/static/libjs/bootstrap-3.1.1-dist/css/._bootstrap-theme.css.map b/app/static/libjs/bootstrap-3.1.1-dist/css/._bootstrap-theme.css.map
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/css/._bootstrap-theme.css.map
rename to app/static/libjs/bootstrap-3.1.1-dist/css/._bootstrap-theme.css.map
diff --git a/static/libjs/bootstrap-3.1.1-dist/css/._bootstrap-theme.min.css b/app/static/libjs/bootstrap-3.1.1-dist/css/._bootstrap-theme.min.css
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/css/._bootstrap-theme.min.css
rename to app/static/libjs/bootstrap-3.1.1-dist/css/._bootstrap-theme.min.css
diff --git a/static/libjs/bootstrap-3.1.1-dist/css/._bootstrap.css b/app/static/libjs/bootstrap-3.1.1-dist/css/._bootstrap.css
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/css/._bootstrap.css
rename to app/static/libjs/bootstrap-3.1.1-dist/css/._bootstrap.css
diff --git a/static/libjs/bootstrap-3.1.1-dist/css/._bootstrap.css.map b/app/static/libjs/bootstrap-3.1.1-dist/css/._bootstrap.css.map
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/css/._bootstrap.css.map
rename to app/static/libjs/bootstrap-3.1.1-dist/css/._bootstrap.css.map
diff --git a/static/libjs/bootstrap-3.1.1-dist/css/._bootstrap.min.css b/app/static/libjs/bootstrap-3.1.1-dist/css/._bootstrap.min.css
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/css/._bootstrap.min.css
rename to app/static/libjs/bootstrap-3.1.1-dist/css/._bootstrap.min.css
diff --git a/static/libjs/bootstrap-3.1.1-dist/css/bootstrap-theme.css b/app/static/libjs/bootstrap-3.1.1-dist/css/bootstrap-theme.css
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/css/bootstrap-theme.css
rename to app/static/libjs/bootstrap-3.1.1-dist/css/bootstrap-theme.css
diff --git a/static/libjs/bootstrap-3.1.1-dist/css/bootstrap-theme.css.map b/app/static/libjs/bootstrap-3.1.1-dist/css/bootstrap-theme.css.map
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/css/bootstrap-theme.css.map
rename to app/static/libjs/bootstrap-3.1.1-dist/css/bootstrap-theme.css.map
diff --git a/static/libjs/bootstrap-3.1.1-dist/css/bootstrap-theme.min.css b/app/static/libjs/bootstrap-3.1.1-dist/css/bootstrap-theme.min.css
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/css/bootstrap-theme.min.css
rename to app/static/libjs/bootstrap-3.1.1-dist/css/bootstrap-theme.min.css
diff --git a/static/libjs/bootstrap-3.1.1-dist/css/bootstrap.css b/app/static/libjs/bootstrap-3.1.1-dist/css/bootstrap.css
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/css/bootstrap.css
rename to app/static/libjs/bootstrap-3.1.1-dist/css/bootstrap.css
diff --git a/static/libjs/bootstrap-3.1.1-dist/css/bootstrap.css.map b/app/static/libjs/bootstrap-3.1.1-dist/css/bootstrap.css.map
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/css/bootstrap.css.map
rename to app/static/libjs/bootstrap-3.1.1-dist/css/bootstrap.css.map
diff --git a/static/libjs/bootstrap-3.1.1-dist/css/bootstrap.min.css b/app/static/libjs/bootstrap-3.1.1-dist/css/bootstrap.min.css
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/css/bootstrap.min.css
rename to app/static/libjs/bootstrap-3.1.1-dist/css/bootstrap.min.css
diff --git a/static/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.eot b/app/static/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.eot
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.eot
rename to app/static/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.eot
diff --git a/static/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.svg b/app/static/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.svg
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.svg
rename to app/static/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.svg
diff --git a/static/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.ttf b/app/static/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.ttf
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.ttf
rename to app/static/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.ttf
diff --git a/static/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.woff b/app/static/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.woff
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.woff
rename to app/static/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.woff
diff --git a/static/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.eot b/app/static/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.eot
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.eot
rename to app/static/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.eot
diff --git a/static/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.svg b/app/static/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.svg
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.svg
rename to app/static/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.svg
diff --git a/static/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.ttf b/app/static/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.ttf
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.ttf
rename to app/static/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.ttf
diff --git a/static/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.woff b/app/static/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.woff
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.woff
rename to app/static/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.woff
diff --git a/static/libjs/bootstrap-3.1.1-dist/js/._bootstrap.js b/app/static/libjs/bootstrap-3.1.1-dist/js/._bootstrap.js
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/js/._bootstrap.js
rename to app/static/libjs/bootstrap-3.1.1-dist/js/._bootstrap.js
diff --git a/static/libjs/bootstrap-3.1.1-dist/js/._bootstrap.min.js b/app/static/libjs/bootstrap-3.1.1-dist/js/._bootstrap.min.js
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/js/._bootstrap.min.js
rename to app/static/libjs/bootstrap-3.1.1-dist/js/._bootstrap.min.js
diff --git a/static/libjs/bootstrap-3.1.1-dist/js/bootstrap.js b/app/static/libjs/bootstrap-3.1.1-dist/js/bootstrap.js
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/js/bootstrap.js
rename to app/static/libjs/bootstrap-3.1.1-dist/js/bootstrap.js
diff --git a/static/libjs/bootstrap-3.1.1-dist/js/bootstrap.min.js b/app/static/libjs/bootstrap-3.1.1-dist/js/bootstrap.min.js
similarity index 100%
rename from static/libjs/bootstrap-3.1.1-dist/js/bootstrap.min.js
rename to app/static/libjs/bootstrap-3.1.1-dist/js/bootstrap.min.js
diff --git a/static/libjs/bootstrap-multiselect/bootstrap-multiselect.css b/app/static/libjs/bootstrap-multiselect/bootstrap-multiselect.css
similarity index 100%
rename from static/libjs/bootstrap-multiselect/bootstrap-multiselect.css
rename to app/static/libjs/bootstrap-multiselect/bootstrap-multiselect.css
diff --git a/static/libjs/bootstrap-multiselect/bootstrap-multiselect.js b/app/static/libjs/bootstrap-multiselect/bootstrap-multiselect.js
similarity index 100%
rename from static/libjs/bootstrap-multiselect/bootstrap-multiselect.js
rename to app/static/libjs/bootstrap-multiselect/bootstrap-multiselect.js
diff --git a/static/libjs/bubble.js b/app/static/libjs/bubble.js
similarity index 100%
rename from static/libjs/bubble.js
rename to app/static/libjs/bubble.js
diff --git a/static/libjs/d3.v3.min.js b/app/static/libjs/d3.v3.min.js
similarity index 100%
rename from static/libjs/d3.v3.min.js
rename to app/static/libjs/d3.v3.min.js
diff --git a/static/libjs/fullcalendar/THIS_IS_VERSION_2.0.0-beta2 b/app/static/libjs/fullcalendar/THIS_IS_VERSION_2.0.0-beta2
similarity index 100%
rename from static/libjs/fullcalendar/THIS_IS_VERSION_2.0.0-beta2
rename to app/static/libjs/fullcalendar/THIS_IS_VERSION_2.0.0-beta2
diff --git a/static/libjs/fullcalendar/fullcalendar.css b/app/static/libjs/fullcalendar/fullcalendar.css
similarity index 100%
rename from static/libjs/fullcalendar/fullcalendar.css
rename to app/static/libjs/fullcalendar/fullcalendar.css
diff --git a/static/libjs/fullcalendar/fullcalendar.min.js b/app/static/libjs/fullcalendar/fullcalendar.min.js
similarity index 100%
rename from static/libjs/fullcalendar/fullcalendar.min.js
rename to app/static/libjs/fullcalendar/fullcalendar.min.js
diff --git a/static/libjs/fullcalendar/fullcalendar.print.css b/app/static/libjs/fullcalendar/fullcalendar.print.css
similarity index 100%
rename from static/libjs/fullcalendar/fullcalendar.print.css
rename to app/static/libjs/fullcalendar/fullcalendar.print.css
diff --git a/static/libjs/jQuery-tagEditor/bower.json b/app/static/libjs/jQuery-tagEditor/bower.json
similarity index 100%
rename from static/libjs/jQuery-tagEditor/bower.json
rename to app/static/libjs/jQuery-tagEditor/bower.json
diff --git a/static/libjs/jQuery-tagEditor/demo.html b/app/static/libjs/jQuery-tagEditor/demo.html
similarity index 100%
rename from static/libjs/jQuery-tagEditor/demo.html
rename to app/static/libjs/jQuery-tagEditor/demo.html
diff --git a/static/libjs/jQuery-tagEditor/jquery.caret.min.js b/app/static/libjs/jQuery-tagEditor/jquery.caret.min.js
similarity index 100%
rename from static/libjs/jQuery-tagEditor/jquery.caret.min.js
rename to app/static/libjs/jQuery-tagEditor/jquery.caret.min.js
diff --git a/static/libjs/jQuery-tagEditor/jquery.tag-editor.css b/app/static/libjs/jQuery-tagEditor/jquery.tag-editor.css
similarity index 100%
rename from static/libjs/jQuery-tagEditor/jquery.tag-editor.css
rename to app/static/libjs/jQuery-tagEditor/jquery.tag-editor.css
diff --git a/static/libjs/jQuery-tagEditor/jquery.tag-editor.js b/app/static/libjs/jQuery-tagEditor/jquery.tag-editor.js
similarity index 100%
rename from static/libjs/jQuery-tagEditor/jquery.tag-editor.js
rename to app/static/libjs/jQuery-tagEditor/jquery.tag-editor.js
diff --git a/static/libjs/jQuery-tagEditor/jquery.tag-editor.min.js b/app/static/libjs/jQuery-tagEditor/jquery.tag-editor.min.js
similarity index 100%
rename from static/libjs/jQuery-tagEditor/jquery.tag-editor.min.js
rename to app/static/libjs/jQuery-tagEditor/jquery.tag-editor.min.js
diff --git a/static/libjs/jQuery-tagEditor/readme.md b/app/static/libjs/jQuery-tagEditor/readme.md
similarity index 100%
rename from static/libjs/jQuery-tagEditor/readme.md
rename to app/static/libjs/jQuery-tagEditor/readme.md
diff --git a/static/libjs/jQuery-tagEditor/tag-editor.jquery.json b/app/static/libjs/jQuery-tagEditor/tag-editor.jquery.json
similarity index 100%
rename from static/libjs/jQuery-tagEditor/tag-editor.jquery.json
rename to app/static/libjs/jQuery-tagEditor/tag-editor.jquery.json
diff --git a/static/libjs/jinplace-1.2.1.min.js b/app/static/libjs/jinplace-1.2.1.min.js
similarity index 100%
rename from static/libjs/jinplace-1.2.1.min.js
rename to app/static/libjs/jinplace-1.2.1.min.js
diff --git a/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/animated-overlay.gif b/app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/animated-overlay.gif
similarity index 100%
rename from static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/animated-overlay.gif
rename to app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/animated-overlay.gif
diff --git a/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png b/app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
similarity index 100%
rename from static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
rename to app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
diff --git a/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png b/app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
similarity index 100%
rename from static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
rename to app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
diff --git a/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png b/app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
similarity index 100%
rename from static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
rename to app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
diff --git a/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png b/app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
similarity index 100%
rename from static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
rename to app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
diff --git a/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png b/app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png
similarity index 100%
rename from static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png
rename to app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png
diff --git a/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png b/app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
similarity index 100%
rename from static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
rename to app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
diff --git a/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png b/app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
similarity index 100%
rename from static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
rename to app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
diff --git a/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
similarity index 100%
rename from static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
rename to app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
diff --git a/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_222222_256x240.png b/app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_222222_256x240.png
similarity index 100%
rename from static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_222222_256x240.png
rename to app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_222222_256x240.png
diff --git a/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_2e83ff_256x240.png b/app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_2e83ff_256x240.png
similarity index 100%
rename from static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_2e83ff_256x240.png
rename to app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_2e83ff_256x240.png
diff --git a/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_454545_256x240.png b/app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_454545_256x240.png
similarity index 100%
rename from static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_454545_256x240.png
rename to app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_454545_256x240.png
diff --git a/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_888888_256x240.png b/app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_888888_256x240.png
similarity index 100%
rename from static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_888888_256x240.png
rename to app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_888888_256x240.png
diff --git a/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_cd0a0a_256x240.png b/app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_cd0a0a_256x240.png
similarity index 100%
rename from static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_cd0a0a_256x240.png
rename to app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_cd0a0a_256x240.png
diff --git a/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/jquery-ui-1.10.4.custom.css b/app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/jquery-ui-1.10.4.custom.css
similarity index 100%
rename from static/libjs/jquery-ui-1.10.4.custom/css/smoothness/jquery-ui-1.10.4.custom.css
rename to app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/jquery-ui-1.10.4.custom.css
diff --git a/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/jquery-ui-1.10.4.custom.min.css b/app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/jquery-ui-1.10.4.custom.min.css
similarity index 100%
rename from static/libjs/jquery-ui-1.10.4.custom/css/smoothness/jquery-ui-1.10.4.custom.min.css
rename to app/static/libjs/jquery-ui-1.10.4.custom/css/smoothness/jquery-ui-1.10.4.custom.min.css
diff --git a/static/libjs/jquery-ui-1.10.4.custom/js/jquery-ui-1.10.4.custom.min.js b/app/static/libjs/jquery-ui-1.10.4.custom/js/jquery-ui-1.10.4.custom.min.js
similarity index 100%
rename from static/libjs/jquery-ui-1.10.4.custom/js/jquery-ui-1.10.4.custom.min.js
rename to app/static/libjs/jquery-ui-1.10.4.custom/js/jquery-ui-1.10.4.custom.min.js
diff --git a/static/libjs/jquery.field.min.js b/app/static/libjs/jquery.field.min.js
similarity index 100%
rename from static/libjs/jquery.field.min.js
rename to app/static/libjs/jquery.field.min.js
diff --git a/static/libjs/jquery.ui.map.full.min.js b/app/static/libjs/jquery.ui.map.full.min.js
similarity index 100%
rename from static/libjs/jquery.ui.map.full.min.js
rename to app/static/libjs/jquery.ui.map.full.min.js
diff --git a/static/libjs/menu.js b/app/static/libjs/menu.js
similarity index 100%
rename from static/libjs/menu.js
rename to app/static/libjs/menu.js
diff --git a/static/libjs/moment.min.js b/app/static/libjs/moment.min.js
similarity index 100%
rename from static/libjs/moment.min.js
rename to app/static/libjs/moment.min.js
diff --git a/static/libjs/purl.js b/app/static/libjs/purl.js
similarity index 100%
rename from static/libjs/purl.js
rename to app/static/libjs/purl.js
diff --git a/static/libjs/qtip/LICENSE b/app/static/libjs/qtip/LICENSE
similarity index 100%
rename from static/libjs/qtip/LICENSE
rename to app/static/libjs/qtip/LICENSE
diff --git a/static/libjs/qtip/jquery.qtip-3.0.3.min.css b/app/static/libjs/qtip/jquery.qtip-3.0.3.min.css
similarity index 100%
rename from static/libjs/qtip/jquery.qtip-3.0.3.min.css
rename to app/static/libjs/qtip/jquery.qtip-3.0.3.min.css
diff --git a/static/libjs/qtip/jquery.qtip-3.0.3.min.js b/app/static/libjs/qtip/jquery.qtip-3.0.3.min.js
similarity index 100%
rename from static/libjs/qtip/jquery.qtip-3.0.3.min.js
rename to app/static/libjs/qtip/jquery.qtip-3.0.3.min.js
diff --git a/static/libjs/rickshaw.min.js b/app/static/libjs/rickshaw.min.js
similarity index 100%
rename from static/libjs/rickshaw.min.js
rename to app/static/libjs/rickshaw.min.js
diff --git a/static/libjs/sorttable.js b/app/static/libjs/sorttable.js
similarity index 100%
rename from static/libjs/sorttable.js
rename to app/static/libjs/sorttable.js
diff --git a/static/mobile/asset-manifest.json b/app/static/mobile/asset-manifest.json
similarity index 100%
rename from static/mobile/asset-manifest.json
rename to app/static/mobile/asset-manifest.json
diff --git a/static/mobile/favicon.ico b/app/static/mobile/favicon.ico
similarity index 100%
rename from static/mobile/favicon.ico
rename to app/static/mobile/favicon.ico
diff --git a/static/mobile/index.html b/app/static/mobile/index.html
similarity index 100%
rename from static/mobile/index.html
rename to app/static/mobile/index.html
diff --git a/static/mobile/manifest.json b/app/static/mobile/manifest.json
similarity index 100%
rename from static/mobile/manifest.json
rename to app/static/mobile/manifest.json
diff --git a/static/mobile/robots.txt b/app/static/mobile/robots.txt
similarity index 100%
rename from static/mobile/robots.txt
rename to app/static/mobile/robots.txt
diff --git a/static/mobile/scologo.png b/app/static/mobile/scologo.png
similarity index 100%
rename from static/mobile/scologo.png
rename to app/static/mobile/scologo.png
diff --git a/static/mobile/static/css/2.4c97ca4f.chunk.css b/app/static/mobile/static/css/2.4c97ca4f.chunk.css
similarity index 100%
rename from static/mobile/static/css/2.4c97ca4f.chunk.css
rename to app/static/mobile/static/css/2.4c97ca4f.chunk.css
diff --git a/static/mobile/static/css/2.4c97ca4f.chunk.css.map b/app/static/mobile/static/css/2.4c97ca4f.chunk.css.map
similarity index 100%
rename from static/mobile/static/css/2.4c97ca4f.chunk.css.map
rename to app/static/mobile/static/css/2.4c97ca4f.chunk.css.map
diff --git a/static/mobile/static/css/main.6be5a531.chunk.css b/app/static/mobile/static/css/main.6be5a531.chunk.css
similarity index 100%
rename from static/mobile/static/css/main.6be5a531.chunk.css
rename to app/static/mobile/static/css/main.6be5a531.chunk.css
diff --git a/static/mobile/static/css/main.6be5a531.chunk.css.map b/app/static/mobile/static/css/main.6be5a531.chunk.css.map
similarity index 100%
rename from static/mobile/static/css/main.6be5a531.chunk.css.map
rename to app/static/mobile/static/css/main.6be5a531.chunk.css.map
diff --git a/static/mobile/static/js/2.fb06b1f5.chunk.js b/app/static/mobile/static/js/2.fb06b1f5.chunk.js
similarity index 100%
rename from static/mobile/static/js/2.fb06b1f5.chunk.js
rename to app/static/mobile/static/js/2.fb06b1f5.chunk.js
diff --git a/static/mobile/static/js/2.fb06b1f5.chunk.js.LICENSE.txt b/app/static/mobile/static/js/2.fb06b1f5.chunk.js.LICENSE.txt
similarity index 100%
rename from static/mobile/static/js/2.fb06b1f5.chunk.js.LICENSE.txt
rename to app/static/mobile/static/js/2.fb06b1f5.chunk.js.LICENSE.txt
diff --git a/static/mobile/static/js/2.fb06b1f5.chunk.js.map b/app/static/mobile/static/js/2.fb06b1f5.chunk.js.map
similarity index 100%
rename from static/mobile/static/js/2.fb06b1f5.chunk.js.map
rename to app/static/mobile/static/js/2.fb06b1f5.chunk.js.map
diff --git a/static/mobile/static/js/3.b810fcea.chunk.js b/app/static/mobile/static/js/3.b810fcea.chunk.js
similarity index 100%
rename from static/mobile/static/js/3.b810fcea.chunk.js
rename to app/static/mobile/static/js/3.b810fcea.chunk.js
diff --git a/static/mobile/static/js/3.b810fcea.chunk.js.map b/app/static/mobile/static/js/3.b810fcea.chunk.js.map
similarity index 100%
rename from static/mobile/static/js/3.b810fcea.chunk.js.map
rename to app/static/mobile/static/js/3.b810fcea.chunk.js.map
diff --git a/static/mobile/static/js/main.1a008285.chunk.js b/app/static/mobile/static/js/main.1a008285.chunk.js
similarity index 100%
rename from static/mobile/static/js/main.1a008285.chunk.js
rename to app/static/mobile/static/js/main.1a008285.chunk.js
diff --git a/static/mobile/static/js/main.1a008285.chunk.js.map b/app/static/mobile/static/js/main.1a008285.chunk.js.map
similarity index 100%
rename from static/mobile/static/js/main.1a008285.chunk.js.map
rename to app/static/mobile/static/js/main.1a008285.chunk.js.map
diff --git a/static/mobile/static/js/runtime-main.f39ba660.js b/app/static/mobile/static/js/runtime-main.f39ba660.js
similarity index 100%
rename from static/mobile/static/js/runtime-main.f39ba660.js
rename to app/static/mobile/static/js/runtime-main.f39ba660.js
diff --git a/static/mobile/static/js/runtime-main.f39ba660.js.map b/app/static/mobile/static/js/runtime-main.f39ba660.js.map
similarity index 100%
rename from static/mobile/static/js/runtime-main.f39ba660.js.map
rename to app/static/mobile/static/js/runtime-main.f39ba660.js.map
diff --git a/static/robots.txt b/app/static/robots.txt
similarity index 100%
rename from static/robots.txt
rename to app/static/robots.txt
diff --git a/app/templates/main/index.html b/app/templates/main/index.html
index 7ce106fb51df3deec564b00dbe351ce8106c82db..e214e2d3656f399c75255dd326d81827bb213c78 100644
--- a/app/templates/main/index.html
+++ b/app/templates/main/index.html
@@ -33,6 +33,12 @@
     <ul>
         <li><a href="{{ url_for('essais.sco_exemple', scodoc_dept='RT') }}">sco_exemple</a></li>
     </ul>
+
+    <h2>Config</h2>
+    <div>
+        <tt>static_url_path={{current_app.static_url_path}}</tt><br />
+        <tt>static_folder={{current_app.static_folder}}</tt>
+    </div>
 </div>
 
 {% endblock %}
\ No newline at end of file
diff --git a/app/views/__init__.py b/app/views/__init__.py
index 2299417a48666e4eebc10ac5ff476ba09cdcb954..307d77e684bd971f3b6a8529eeba2574b78acca9 100644
--- a/app/views/__init__.py
+++ b/app/views/__init__.py
@@ -9,3 +9,6 @@ absences_bp = Blueprint("absences", __name__)
 essais_bp = Blueprint("essais", __name__)
 
 from app.views import notes, scolar, absences, essais
+
+scolar.context.Notes = notes.context
+scolar.context.Absences = absences.context
diff --git a/app/views/notes.py b/app/views/notes.py
index 2d8d50d4a9af6715bc91c0c6dbcf383f16cccf0c..fdc48636df4a881e4bd28324316bf158b975ff64 100644
--- a/app/views/notes.py
+++ b/app/views/notes.py
@@ -1721,81 +1721,27 @@ def edit_enseignants_form_delete(context, REQUEST, moduleimpl_id, ens_id):
     )
 
 
-# --- Gestion des inscriptions aux modules
-_formsemestre_inscriptionEditor = ndb.EditableTable(
-    "notes_formsemestre_inscription",
-    "formsemestre_inscription_id",
-    ("formsemestre_inscription_id", "etudid", "formsemestre_id", "etat", "etape"),
-    sortkey="formsemestre_id",
+# --- Gestion des inscriptions aux semestres
+
+# Ancienne API, pas certain de la publier en ScoDoc8
+# sco_publish(
+#     "/do_formsemestre_inscription_create",
+#     sco_formsemestre_inscriptions.do_formsemestre_inscription_create,
+#     Permission.ScoEtudInscrit,
+# )
+# sco_publish(
+#     "/do_formsemestre_inscription_edit",
+#     sco_formsemestre_inscriptions.do_formsemestre_inscription_edit,
+#     Permission.ScoEtudInscrit,
+# )
+
+sco_publish(
+    "/do_formsemestre_inscription_list",
+    sco_formsemestre_inscriptions.do_formsemestre_inscription_list,
+    Permission.ScoView,
 )
 
 
-@bp.route("/do_formsemestre_inscription_create")
-@permission_required(Permission.ScoEtudInscrit)
-@scodoc7func(context)
-def do_formsemestre_inscription_create(context, args, REQUEST, method=None):
-    "create a formsemestre_inscription (and sco event)"
-    cnx = ndb.GetDBConnexion()
-    log("do_formsemestre_inscription_create: args=%s" % str(args))
-    sems = sco_formsemestre.do_formsemestre_list(
-        context, {"formsemestre_id": args["formsemestre_id"]}
-    )
-    if len(sems) != 1:
-        raise ScoValueError("code de semestre invalide: %s" % args["formsemestre_id"])
-    sem = sems[0]
-    # check lock
-    if sem["etat"] != "1":
-        raise ScoValueError("inscription: semestre verrouille")
-    #
-    r = context._formsemestre_inscriptionEditor.create(cnx, args)
-    # Evenement
-    scolars.scolar_events_create(
-        cnx,
-        args={
-            "etudid": args["etudid"],
-            "event_date": time.strftime("%d/%m/%Y"),
-            "formsemestre_id": args["formsemestre_id"],
-            "event_type": "INSCRIPTION",
-        },
-    )
-    # Log etudiant
-    logdb(
-        REQUEST,
-        cnx,
-        method=method,
-        etudid=args["etudid"],
-        msg="inscription en semestre %s" % args["formsemestre_id"],
-        commit=False,
-    )
-    #
-    sco_core.inval_cache(
-        context, formsemestre_id=args["formsemestre_id"]
-    )  # > inscription au semestre
-    return r
-
-
-@bp.route("/do_formsemestre_inscription_delete")
-@permission_required(Permission.ScoImplement)
-@scodoc7func(context)
-def do_formsemestre_inscription_delete(context, oid, formsemestre_id=None):
-    "delete formsemestre_inscription"
-    cnx = ndb.GetDBConnexion()
-    context._formsemestre_inscriptionEditor.delete(cnx, oid)
-
-    sco_core.inval_cache(
-        context, formsemestre_id=formsemestre_id
-    )  # > desinscription du semestre
-
-
-@bp.route("/do_formsemestre_inscription_list")
-@permission_required(Permission.ScoView)
-@scodoc7func(context)
-def do_formsemestre_inscription_list(context, *args, **kw):
-    "list formsemestre_inscriptions"
-    cnx = ndb.GetDBConnexion()
-    return context._formsemestre_inscriptionEditor.list(cnx, *args, **kw)
-
-
 @bp.route("/do_formsemestre_inscription_listinscrits")
 @permission_required(Permission.ScoView)
 @scodoc7func(context)
@@ -1807,25 +1753,13 @@ def do_formsemestre_inscription_listinscrits(
     r = cache.get(formsemestre_id)
     if r is None:
         # retreive list
-        r = context.do_formsemestre_inscription_list(
+        r = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, 
             args={"formsemestre_id": formsemestre_id, "etat": "I"}
         )
         cache.set(formsemestre_id, r)
     return scu.sendResult(REQUEST, r, format=format, name="inscrits")
 
 
-@bp.route("/do_formsemestre_inscription_edit")
-@permission_required(Permission.ScoImplement)
-@scodoc7func(context)
-def do_formsemestre_inscription_edit(context, args=None, formsemestre_id=None):
-    "edit a formsemestre_inscription"
-    cnx = ndb.GetDBConnexion()
-    context._formsemestre_inscriptionEditor.edit(cnx, args)
-    sco_core.inval_cache(
-        context, formsemestre_id=formsemestre_id
-    )  # > modif inscription semestre (demission ?)
-
-
 @bp.route("/formsemestre_desinscription")
 @permission_required(Permission.ScoImplement)
 @scodoc7func(context)
@@ -1877,7 +1811,7 @@ def formsemestre_desinscription(
                 sem["date_debut"],
                 sem["date_fin"],
             )
-            inscrits = context.do_formsemestre_inscription_list(
+            inscrits = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(context, 
                 args={"formsemestre_id": formsemestre_id}
             )
             nbinscrits = len(inscrits)
@@ -1905,72 +1839,11 @@ def formsemestre_desinscription(
     )
 
 
-@bp.route("/do_formsemestre_desinscription")
-@permission_required(Permission.ScoImplement)
-@scodoc7func(context)
-def do_formsemestre_desinscription(context, etudid, formsemestre_id, REQUEST=None):
-    """Désinscription d'un étudiant.
-    Si semestre extérieur et dernier inscrit, suppression de ce semestre.
-    """
-    sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
-    # -- check lock
-    if sem["etat"] != "1":
-        raise ScoValueError("desinscription impossible: semestre verrouille")
-
-    # -- Si decisions de jury, desinscription interdite
-    nt = sco_core.get_notes_cache(context).get_NotesTable(context, formsemestre_id)
-    if nt.etud_has_decision(etudid):
-        raise ScoValueError(
-            "desinscription impossible: l'étudiant a une décision de jury (la supprimer avant si nécessaire)"
-        )
-
-    insem = context.do_formsemestre_inscription_list(
-        args={"formsemestre_id": formsemestre_id, "etudid": etudid}
-    )
-    if not insem:
-        raise ScoValueError("%s n'est pas inscrit au semestre !" % etudid)
-    insem = insem[0]
-    # -- desinscription de tous les modules
-    cnx = ndb.GetDBConnexion()
-    cursor = cnx.cursor(cursor_factory=ndb.ScoDocCursor)
-    cursor.execute(
-        "select moduleimpl_inscription_id from notes_moduleimpl_inscription Im, notes_moduleimpl M  where Im.etudid=%(etudid)s and Im.moduleimpl_id = M.moduleimpl_id and M.formsemestre_id = %(formsemestre_id)s",
-        {"etudid": etudid, "formsemestre_id": formsemestre_id},
-    )
-    res = cursor.fetchall()
-    moduleimpl_inscription_ids = [x[0] for x in res]
-    for moduleimpl_inscription_id in moduleimpl_inscription_ids:
-        sco_moduleimpl.do_moduleimpl_inscription_delete(
-            context, moduleimpl_inscription_id, formsemestre_id=formsemestre_id
-        )
-    # -- desincription du semestre
-    context.do_formsemestre_inscription_delete(
-        insem["formsemestre_inscription_id"], formsemestre_id=formsemestre_id
-    )
-    # --- Semestre extérieur
-    if sem["modalite"] == "EXT":
-        inscrits = context.do_formsemestre_inscription_list(
-            args={"formsemestre_id": formsemestre_id}
-        )
-        nbinscrits = len(inscrits)
-        if nbinscrits == 0:
-            log(
-                "do_formsemestre_desinscription: suppression du semestre extérieur %s"
-                % formsemestre_id
-            )
-            sco_formsemestre_edit.do_formsemestre_delete(
-                context, formsemestre_id, REQUEST=REQUEST
-            )
-
-    if REQUEST:
-        logdb(
-            REQUEST,
-            cnx,
-            method="formsemestre_desinscription",
-            etudid=etudid,
-            msg="desinscription semestre %s" % formsemestre_id,
-            commit=False,
-        )
+sco_publish(
+    "/do_formsemestre_desinscription",
+    sco_formsemestre_inscriptions.do_formsemestre_desinscription,
+    Permission.ScoEtudInscrit,
+)
 
 
 @bp.route("/etud_desinscrit_ue")
diff --git a/app/views/scolar.py b/app/views/scolar.py
index 57ff3721ad818b90d38930973cf251f6faa88117..788cf4aee105bff52a5357607d1c219f5acc2023 100644
--- a/app/views/scolar.py
+++ b/app/views/scolar.py
@@ -120,6 +120,7 @@ from app.scodoc import sco_find_etud
 from app.scodoc import sco_photos
 from app.scodoc import sco_formsemestre
 from app.scodoc import sco_formsemestre_edit
+from app.scodoc import sco_formsemestre_inscriptions
 from app.scodoc import sco_news
 from app.scodoc import html_sco_header
 from app.scodoc import html_sidebar
@@ -287,7 +288,7 @@ def showEtudLog(context, etudid, format="html", REQUEST=None):
 
 
 # ----------  PAGE ACCUEIL (listes) --------------
-sco_publish("/index_html", sco_dept.index_html, Permission.ScoView)
+sco_publish("/", sco_dept.index_html, Permission.ScoView)
 
 
 @bp.route("/rssnews")
@@ -901,14 +902,14 @@ def _doDem_or_Def_Etudiant(
     if sem["etat"] != "1":
         raise ScoValueError("Modification impossible: semestre verrouille")
     #
-    ins = context.Notes.do_formsemestre_inscription_list(
-        {"etudid": etudid, "formsemestre_id": formsemestre_id}
+    ins = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(
+        context, {"etudid": etudid, "formsemestre_id": formsemestre_id}
     )[0]
     if not ins:
         raise ScoException("etudiant non inscrit ?!")
     ins["etat"] = etat_new
-    context.Notes.do_formsemestre_inscription_edit(
-        args=ins, formsemestre_id=formsemestre_id
+    sco_formsemestre_inscriptions.do_formsemestre_inscription_edit(
+        context, args=ins, formsemestre_id=formsemestre_id
     )
     logdb(REQUEST, cnx, method=operation_method, etudid=etudid)
     scolars.scolar_events_create(
@@ -1005,15 +1006,15 @@ def _doCancelDem_or_Def(
             parameters={"etudid": etudid, "formsemestre_id": formsemestre_id},
         )
     #
-    ins = context.Notes.do_formsemestre_inscription_list(
-        {"etudid": etudid, "formsemestre_id": formsemestre_id}
+    ins = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(
+        context, {"etudid": etudid, "formsemestre_id": formsemestre_id}
     )[0]
     if ins["etat"] != etat_current:
         raise ScoException("etudiant non %s !!!" % etat_current)  # obviously a bug
     ins["etat"] = etat_new
     cnx = ndb.GetDBConnexion()
-    context.Notes.do_formsemestre_inscription_edit(
-        args=ins, formsemestre_id=formsemestre_id
+    sco_formsemestre_inscriptions.do_formsemestre_inscription_edit(
+        context, args=ins, formsemestre_id=formsemestre_id
     )
     logdb(REQUEST, cnx, method=operation_method, etudid=etudid)
     cursor = cnx.cursor(cursor_factory=ndb.ScoDocCursor)
@@ -2015,8 +2016,8 @@ sco_publish(
 def stat_bac(context, formsemestre_id):
     "Renvoie statistisques sur nb d'etudiants par bac"
     cnx = ndb.GetDBConnexion()
-    ins = context.Notes.do_formsemestre_inscription_list(
-        args={"formsemestre_id": formsemestre_id}
+    ins = sco_formsemestre_inscriptions.do_formsemestre_inscription_list(
+        context, args={"formsemestre_id": formsemestre_id}
     )
     Bacs = {}  # type bac : nb etud
     for i in ins:
@@ -2039,3 +2040,32 @@ sco_publish(
 )
 
 context.populate(globals())
+
+
+class FakeUsers:
+    """Temporary for ScoDoc8 devs"""
+
+    def user_info(self, user_name="test8"):
+        return {
+            "user_name": user_name,
+            "nom": user_name,
+            "prenom": "",
+            "email": "",
+            "dept": "",
+            "nomprenom": user_name,
+            "prenomnom": user_name,
+            "prenom_fmt": "",
+            "nom_fmt": user_name,
+            "nomcomplet": user_name,
+            "nomplogin": user_name,
+            "nomnoacc": scu.suppress_accents(user_name),
+            "passwd_temp": 0,
+            "status": "",
+            "date_expiration": None,
+        }
+
+    def get_userlist(self, dept=None, with_olds=False):
+        return [self.user_info()]
+
+
+context.Users = FakeUsers()
\ No newline at end of file
diff --git a/config.py b/config.py
index 1311f1e4d697008784103b8cd0b1974d50fb67c1..85a4206da7a5b24c5b7ea67c3c9cef1f44caa405 100755
--- a/config.py
+++ b/config.py
@@ -34,8 +34,9 @@ class ConfigClass(object):
     # For legacy ScoDoc7 installs: postgresql user
     SCODOC7_SQL_USER = os.environ.get("SCODOC7_SQL_USER", "www-data")
     DEFAULT_SQL_PORT = os.environ.get("DEFAULT_SQL_PORT", "5432")
-
-    SERVER_NAME = os.environ.get("SERVER_NAME")
+    # STATIC_URL_PATH = "/ScoDoc/static"
+    # static_folder = "stat"
+    # SERVER_NAME = os.environ.get("SERVER_NAME")
 
     def __init__(self):
         """Used to build some config variable at startup time"""
diff --git a/refactor.py b/refactor.py
index 5db1eb55c9e9d9fe1b58bb6885d8c708d4df9b23..2a4af4f4e735f98eacbf75ee4188577349337dca 100644
--- a/refactor.py
+++ b/refactor.py
@@ -178,6 +178,9 @@ def refactor(modulemethod, src_filenames):
             source2 = source.replace(
                 "context." + method + "(", module + "." + method + "(context, "
             )
+            source2 = source2.replace(
+                "context.Notes." + method + "(", module + "." + method + "(context, "
+            )
         else:
             # call in the same module:
             source2 = source.replace("context." + method + "(", method + "(context, ")