From be1d5d7a65fbd16f0484e487fe781f4e54f33c1a Mon Sep 17 00:00:00 2001
From: Emmanuel Viennet <emmanuel.viennet@gmail.com>
Date: Wed, 16 Jun 2021 16:59:31 +0200
Subject: [PATCH] =?UTF-8?q?WIP=20deplac=C3=A9=20/static.=20Accueil=20fonct?=
 =?UTF-8?q?ionnel.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 app/__init__.py                               |   3 +-
 app/main/routes.py                            |   4 +-
 app/scodoc/html_sco_header.py                 |   2 +-
 app/scodoc/notes_table.py                     |   2 +-
 app/scodoc/sco_compute_moy.py                 |   2 +-
 app/scodoc/sco_dept.py                        |   8 +-
 app/scodoc/sco_formsemestre.py                |   3 +-
 app/scodoc/sco_formsemestre_exterieurs.py     |   2 +-
 app/scodoc/sco_formsemestre_inscriptions.py   | 144 +++++++++++++-
 app/scodoc/sco_formsemestre_status.py         |   4 +-
 app/scodoc/sco_formsemestre_validation.py     |   4 +-
 app/scodoc/sco_groups.py                      |   2 +-
 app/scodoc/sco_inscr_passage.py               |   2 +-
 app/scodoc/sco_liste_notes.py                 |   2 +-
 app/scodoc/sco_moduleimpl.py                  |   2 +-
 app/scodoc/sco_moduleimpl_inscriptions.py     |   6 +-
 app/scodoc/sco_photos.py                      |   2 +-
 app/scodoc/sco_placement.py                   |   2 +-
 app/scodoc/sco_report.py                      |   2 +-
 app/scodoc/sco_saisie_notes.py                |   2 +-
 app/scodoc/sco_synchro_etuds.py               |   4 +-
 app/scodoc/sco_utils.py                       |   4 +-
 app/scodoc/scolars.py                         |   2 +-
 .../css/colReorder.bootstrap.css              |   0
 .../css/colReorder.bootstrap.min.css          |   0
 .../css/colReorder.dataTables.css             |   0
 .../css/colReorder.dataTables.min.css         |   0
 .../css/colReorder.foundation.css             |   0
 .../css/colReorder.foundation.min.css         |   0
 .../css/colReorder.jqueryui.css               |   0
 .../css/colReorder.jqueryui.min.css           |   0
 .../js/dataTables.colReorder.js               |   0
 .../js/dataTables.colReorder.min.js           |   0
 .../css/dataTables.bootstrap.css              |   0
 .../css/dataTables.bootstrap.min.css          |   0
 .../css/dataTables.foundation.css             |   0
 .../css/dataTables.foundation.min.css         |   0
 .../css/dataTables.jqueryui.css               |   0
 .../css/dataTables.jqueryui.min.css           |   0
 .../css/dataTables.semanticui.css             |   0
 .../css/dataTables.semanticui.min.css         |   0
 .../css/jquery.dataTables.css                 |   0
 .../css/jquery.dataTables.min.css             |   0
 .../css/jquery.dataTables_themeroller.css     |   0
 .../DataTables-1.10.15/images/sort_asc.png    | Bin
 .../images/sort_asc_disabled.png              | Bin
 .../DataTables-1.10.15/images/sort_both.png   | Bin
 .../DataTables-1.10.15/images/sort_desc.png   | Bin
 .../images/sort_desc_disabled.png             | Bin
 .../js/dataTables.bootstrap.js                |   0
 .../js/dataTables.bootstrap.min.js            |   0
 .../js/dataTables.foundation.js               |   0
 .../js/dataTables.foundation.min.js           |   0
 .../js/dataTables.jqueryui.js                 |   0
 .../js/dataTables.jqueryui.min.js             |   0
 .../js/dataTables.semanticui.js               |   0
 .../js/dataTables.semanticui.min.js           |   0
 .../js/jquery.dataTables.js                   |   0
 .../js/jquery.dataTables.min.js               |   0
 .../css/fixedColumns.bootstrap.css            |   0
 .../css/fixedColumns.bootstrap.min.css        |   0
 .../css/fixedColumns.dataTables.css           |   0
 .../css/fixedColumns.dataTables.min.css       |   0
 .../css/fixedColumns.foundation.css           |   0
 .../css/fixedColumns.foundation.min.css       |   0
 .../css/fixedColumns.jqueryui.css             |   0
 .../css/fixedColumns.jqueryui.min.css         |   0
 .../js/dataTables.fixedColumns.js             |   0
 .../js/dataTables.fixedColumns.min.js         |   0
 .../css/fixedHeader.bootstrap.css             |   0
 .../css/fixedHeader.bootstrap.min.css         |   0
 .../css/fixedHeader.dataTables.css            |   0
 .../css/fixedHeader.dataTables.min.css        |   0
 .../css/fixedHeader.foundation.css            |   0
 .../css/fixedHeader.foundation.min.css        |   0
 .../css/fixedHeader.jqueryui.css              |   0
 .../css/fixedHeader.jqueryui.min.css          |   0
 .../js/dataTables.fixedHeader.js              |   0
 .../js/dataTables.fixedHeader.min.js          |   0
 .../css/responsive.bootstrap.css              |   0
 .../css/responsive.bootstrap.min.css          |   0
 .../css/responsive.dataTables.css             |   0
 .../css/responsive.dataTables.min.css         |   0
 .../css/responsive.foundation.css             |   0
 .../css/responsive.foundation.min.css         |   0
 .../css/responsive.jqueryui.css               |   0
 .../css/responsive.jqueryui.min.css           |   0
 .../js/dataTables.responsive.js               |   0
 .../js/dataTables.responsive.min.js           |   0
 .../js/responsive.bootstrap.js                |   0
 .../js/responsive.bootstrap.min.js            |   0
 .../js/responsive.foundation.js               |   0
 .../js/responsive.foundation.min.js           |   0
 .../js/responsive.jqueryui.js                 |   0
 .../js/responsive.jqueryui.min.js             |   0
 .../static}/DataTables/datatables.css         |   0
 .../static}/DataTables/datatables.js          |   0
 .../static}/DataTables/datatables.min.css     |   0
 .../static}/DataTables/datatables.min.js      |   0
 {static => app/static}/README                 |   0
 .../static}/css/autosuggest_inquisitor.css    |   0
 {static => app/static}/css/calabs.css         |   0
 {static => app/static}/css/groups.css         |   0
 {static => app/static}/css/gt_table.css       |   0
 {static => app/static}/css/menu.css           |   0
 .../static}/css/multiple-select.css           |   0
 .../static}/css/multiple-select.png           |   0
 {static => app/static}/css/radar_bulletin.css |   0
 {static => app/static}/css/rickshaw.min.css   |   0
 {static => app/static}/css/scodoc.css         |   0
 {static => app/static}/css/verticalhisto.css  |   0
 {static => app/static}/icons/arrow_down.png   | Bin
 {static => app/static}/icons/arrow_none.png   | Bin
 {static => app/static}/icons/arrow_up.png     | Bin
 {static => app/static}/icons/as_pointer.png   | Bin
 {static => app/static}/icons/borgne_img.png   | Bin
 {static => app/static}/icons/bt_gif.png       | Bin
 {static => app/static}/icons/bullet_arrow.png | Bin
 {static => app/static}/icons/bullet_plus.png  | Bin
 .../static}/icons/bullet_warning_img.png      | Bin
 {static => app/static}/icons/calendar_img.png | Bin
 {static => app/static}/icons/contact_img.png  | Bin
 .../static}/icons/correspondant_img.png       | Bin
 {static => app/static}/icons/delete_img.png   | Bin
 .../static}/icons/delete_small_dis_img.png    | Bin
 .../static}/icons/delete_small_img.png        | Bin
 {static => app/static}/icons/devel_img.png    | Bin
 {static => app/static}/icons/edit_img.png     | Bin
 .../static}/icons/emptygroupicon_img.png      | Bin
 .../static}/icons/entreprise_img.png          | Bin
 .../static}/icons/entreprise_side_img.png     | Bin
 {static => app/static}/icons/eye_img.png      | Bin
 {static => app/static}/icons/firefox_fr.png   | Bin
 {static => app/static}/icons/flag_uk_img.png  | Bin
 {static => app/static}/icons/formula.png      | Bin
 .../static}/icons/groupicon_img.png           | Bin
 {static => app/static}/icons/hide_img.png     | Bin
 {static => app/static}/icons/hl_corner_bl.png | Bin
 {static => app/static}/icons/hl_corner_br.png | Bin
 {static => app/static}/icons/hl_corner_tl.png | Bin
 {static => app/static}/icons/hl_corner_tr.png | Bin
 {static => app/static}/icons/info-16_img.png  | Bin
 {static => app/static}/icons/info-24_img.png  | Bin
 {static => app/static}/icons/interdit_img.png | Bin
 {static => app/static}/icons/loading.jpg      | Bin
 {static => app/static}/icons/lock32_img.png   | Bin
 {static => app/static}/icons/lock_img.png     | Bin
 .../static}/icons/menuarrow1_img.png          | Bin
 {static => app/static}/icons/minus18_img.png  | Bin
 {static => app/static}/icons/minus_img.png    | Bin
 {static => app/static}/icons/next_img.png     | Bin
 {static => app/static}/icons/notes_icon.png   | Bin
 {static => app/static}/icons/notes_img.png    | Bin
 {static => app/static}/icons/nouv_img.png     | Bin
 .../static}/icons/pdficon16x20_img.png        | Bin
 {static => app/static}/icons/pdficon_img.png  | Bin
 {static => app/static}/icons/plus18_img.png   | Bin
 {static => app/static}/icons/plus_img.png     | Bin
 {static => app/static}/icons/prev_img.png     | Bin
 .../static}/icons/pythonpoweredsmall_img.png  | Bin
 .../static}/icons/roundedge_img.png           | Bin
 .../static}/icons/rssscodoc_img.png           | Bin
 {static => app/static}/icons/sco_icon.png     | Bin
 {static => app/static}/icons/scologo_img.png  | Bin
 .../static}/icons/smallpolar_img.png          | Bin
 .../static}/icons/status_green_img.png        | Bin
 .../static}/icons/status_greenorange_img.gif  | Bin
 .../static}/icons/status_orange_img.png       | Bin
 .../static}/icons/status_visible_img.png      | Bin
 .../static}/icons/table_brushed_jpg.png       | Bin
 .../static}/icons/takebacktheweb_small.png    | Bin
 .../static}/icons/trust_firefox_gif.png       | Bin
 {static => app/static}/icons/ul_corner_bl.png | Bin
 {static => app/static}/icons/ul_corner_br.png | Bin
 {static => app/static}/icons/ul_corner_tl.png | Bin
 {static => app/static}/icons/ul_corner_tr.png | Bin
 {static => app/static}/icons/unknown.jpg      | Bin
 {static => app/static}/icons/unknown_img.png  | Bin
 .../static}/icons/warning16_img.png           | Bin
 .../static}/icons/warning21_img.png           | Bin
 {static => app/static}/icons/warning_img.png  | Bin
 {static => app/static}/icons/xlsicon_img.png  | Bin
 {static => app/static}/index.html             |   0
 .../static}/jQuery/jquery-1.12.4.min.js       |   0
 .../jQuery/jquery-migrate-1.2.0.min.js        |   0
 {static => app/static}/jQuery/jquery.js       |   0
 {static => app/static}/js/abs_ajax.js         |   0
 .../static}/js/apo_semset_maq_status.js       |   0
 {static => app/static}/js/bulletin.js         |   0
 {static => app/static}/js/calabs.js           |   0
 .../static}/js/editPartitionForm.js           |   0
 {static => app/static}/js/edit_ue.js          |   0
 {static => app/static}/js/etud_debouche.js    |   0
 {static => app/static}/js/etud_info.js        |   0
 {static => app/static}/js/export_results.js   |   0
 .../formsemestre_ext_edit_ue_validations.js   |   0
 {static => app/static}/js/groupmgr.js         |   0
 {static => app/static}/js/groups_view.js      |   0
 {static => app/static}/js/map_lycees.js       |   0
 .../static}/js/module_tag_editor.js           |   0
 {static => app/static}/js/radar_bulletin.js   |   0
 {static => app/static}/js/recap_parcours.js   |   0
 {static => app/static}/js/saisie_notes.js     |   0
 {static => app/static}/js/sco_ue_external.js  |   0
 {static => app/static}/js/scodoc.js           |   0
 {static => app/static}/js/trombino.js         |   0
 {static => app/static}/js/ue_list.js          |   0
 .../static}/js/validate_previous_ue.js        |   0
 {static => app/static}/libjs/AutoSuggest.js   |   0
 .../static}/libjs/AutoSuggest_2.1.3_comp.js   |   0
 .../static}/libjs/bootstrap-3.1.1-dist/._css  | Bin
 .../libjs/bootstrap-3.1.1-dist/._fonts        | Bin
 .../static}/libjs/bootstrap-3.1.1-dist/._js   | Bin
 .../css/._bootstrap-theme.css                 | Bin
 .../css/._bootstrap-theme.css.map             | Bin
 .../css/._bootstrap-theme.min.css             | Bin
 .../bootstrap-3.1.1-dist/css/._bootstrap.css  | Bin
 .../css/._bootstrap.css.map                   | Bin
 .../css/._bootstrap.min.css                   | Bin
 .../css/bootstrap-theme.css                   |   0
 .../css/bootstrap-theme.css.map               |   0
 .../css/bootstrap-theme.min.css               |   0
 .../bootstrap-3.1.1-dist/css/bootstrap.css    |   0
 .../css/bootstrap.css.map                     |   0
 .../css/bootstrap.min.css                     |   0
 .../fonts/._glyphicons-halflings-regular.eot  | Bin
 .../fonts/._glyphicons-halflings-regular.svg  | Bin
 .../fonts/._glyphicons-halflings-regular.ttf  | Bin
 .../fonts/._glyphicons-halflings-regular.woff | Bin
 .../fonts/glyphicons-halflings-regular.eot    | Bin
 .../fonts/glyphicons-halflings-regular.svg    |   0
 .../fonts/glyphicons-halflings-regular.ttf    | Bin
 .../fonts/glyphicons-halflings-regular.woff   | Bin
 .../bootstrap-3.1.1-dist/js/._bootstrap.js    | Bin
 .../js/._bootstrap.min.js                     | Bin
 .../bootstrap-3.1.1-dist/js/bootstrap.js      |   0
 .../bootstrap-3.1.1-dist/js/bootstrap.min.js  |   0
 .../bootstrap-multiselect.css                 |   0
 .../bootstrap-multiselect.js                  |   0
 {static => app/static}/libjs/bubble.js        |   0
 {static => app/static}/libjs/d3.v3.min.js     |   0
 .../fullcalendar/THIS_IS_VERSION_2.0.0-beta2  |   0
 .../libjs/fullcalendar/fullcalendar.css       |   0
 .../libjs/fullcalendar/fullcalendar.min.js    |   0
 .../libjs/fullcalendar/fullcalendar.print.css |   0
 .../static}/libjs/jQuery-tagEditor/bower.json |   0
 .../static}/libjs/jQuery-tagEditor/demo.html  |   0
 .../jQuery-tagEditor/jquery.caret.min.js      |   0
 .../jQuery-tagEditor/jquery.tag-editor.css    |   0
 .../jQuery-tagEditor/jquery.tag-editor.js     |   0
 .../jQuery-tagEditor/jquery.tag-editor.min.js |   0
 .../static}/libjs/jQuery-tagEditor/readme.md  |   0
 .../jQuery-tagEditor/tag-editor.jquery.json   |   0
 .../static}/libjs/jinplace-1.2.1.min.js       |   0
 .../smoothness/images/animated-overlay.gif    | Bin
 .../images/ui-bg_flat_0_aaaaaa_40x100.png     | Bin
 .../images/ui-bg_flat_75_ffffff_40x100.png    | Bin
 .../images/ui-bg_glass_55_fbf9ee_1x400.png    | Bin
 .../images/ui-bg_glass_65_ffffff_1x400.png    | Bin
 .../images/ui-bg_glass_75_dadada_1x400.png    | Bin
 .../images/ui-bg_glass_75_e6e6e6_1x400.png    | Bin
 .../images/ui-bg_glass_95_fef1ec_1x400.png    | Bin
 .../ui-bg_highlight-soft_75_cccccc_1x100.png  | Bin
 .../images/ui-icons_222222_256x240.png        | Bin
 .../images/ui-icons_2e83ff_256x240.png        | Bin
 .../images/ui-icons_454545_256x240.png        | Bin
 .../images/ui-icons_888888_256x240.png        | Bin
 .../images/ui-icons_cd0a0a_256x240.png        | Bin
 .../smoothness/jquery-ui-1.10.4.custom.css    |   0
 .../jquery-ui-1.10.4.custom.min.css           |   0
 .../js/jquery-ui-1.10.4.custom.min.js         |   0
 .../static}/libjs/jquery.field.min.js         |   0
 .../static}/libjs/jquery.ui.map.full.min.js   |   0
 {static => app/static}/libjs/menu.js          |   0
 {static => app/static}/libjs/moment.min.js    |   0
 {static => app/static}/libjs/purl.js          |   0
 {static => app/static}/libjs/qtip/LICENSE     |   0
 .../libjs/qtip/jquery.qtip-3.0.3.min.css      |   0
 .../libjs/qtip/jquery.qtip-3.0.3.min.js       |   0
 {static => app/static}/libjs/rickshaw.min.js  |   0
 {static => app/static}/libjs/sorttable.js     |   0
 .../static}/mobile/asset-manifest.json        |   0
 {static => app/static}/mobile/favicon.ico     | Bin
 {static => app/static}/mobile/index.html      |   0
 {static => app/static}/mobile/manifest.json   |   0
 {static => app/static}/mobile/robots.txt      |   0
 {static => app/static}/mobile/scologo.png     | Bin
 .../mobile/static/css/2.4c97ca4f.chunk.css    |   0
 .../static/css/2.4c97ca4f.chunk.css.map       |   0
 .../mobile/static/css/main.6be5a531.chunk.css |   0
 .../static/css/main.6be5a531.chunk.css.map    |   0
 .../mobile/static/js/2.fb06b1f5.chunk.js      |   0
 .../static/js/2.fb06b1f5.chunk.js.LICENSE.txt |   0
 .../mobile/static/js/2.fb06b1f5.chunk.js.map  |   0
 .../mobile/static/js/3.b810fcea.chunk.js      |   0
 .../mobile/static/js/3.b810fcea.chunk.js.map  |   0
 .../mobile/static/js/main.1a008285.chunk.js   |   0
 .../static/js/main.1a008285.chunk.js.map      |   0
 .../mobile/static/js/runtime-main.f39ba660.js |   0
 .../static/js/runtime-main.f39ba660.js.map    |   0
 {static => app/static}/robots.txt             |   0
 app/templates/main/index.html                 |   6 +
 app/views/__init__.py                         |   3 +
 app/views/notes.py                            | 177 +++---------------
 app/views/scolar.py                           |  52 +++--
 config.py                                     |   5 +-
 refactor.py                                   |   3 +
 307 files changed, 260 insertions(+), 196 deletions(-)
 rename {static => app/static}/DataTables/ColReorder-1.3.3/css/colReorder.bootstrap.css (100%)
 rename {static => app/static}/DataTables/ColReorder-1.3.3/css/colReorder.bootstrap.min.css (100%)
 rename {static => app/static}/DataTables/ColReorder-1.3.3/css/colReorder.dataTables.css (100%)
 rename {static => app/static}/DataTables/ColReorder-1.3.3/css/colReorder.dataTables.min.css (100%)
 rename {static => app/static}/DataTables/ColReorder-1.3.3/css/colReorder.foundation.css (100%)
 rename {static => app/static}/DataTables/ColReorder-1.3.3/css/colReorder.foundation.min.css (100%)
 rename {static => app/static}/DataTables/ColReorder-1.3.3/css/colReorder.jqueryui.css (100%)
 rename {static => app/static}/DataTables/ColReorder-1.3.3/css/colReorder.jqueryui.min.css (100%)
 rename {static => app/static}/DataTables/ColReorder-1.3.3/js/dataTables.colReorder.js (100%)
 rename {static => app/static}/DataTables/ColReorder-1.3.3/js/dataTables.colReorder.min.js (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/css/dataTables.bootstrap.css (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/css/dataTables.bootstrap.min.css (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/css/dataTables.foundation.css (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/css/dataTables.foundation.min.css (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/css/dataTables.jqueryui.css (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/css/dataTables.jqueryui.min.css (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/css/dataTables.semanticui.css (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/css/dataTables.semanticui.min.css (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/css/jquery.dataTables.css (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/css/jquery.dataTables.min.css (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/css/jquery.dataTables_themeroller.css (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/images/sort_asc.png (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/images/sort_asc_disabled.png (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/images/sort_both.png (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/images/sort_desc.png (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/images/sort_desc_disabled.png (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/js/dataTables.bootstrap.js (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/js/dataTables.bootstrap.min.js (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/js/dataTables.foundation.js (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/js/dataTables.foundation.min.js (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/js/dataTables.jqueryui.js (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/js/dataTables.jqueryui.min.js (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/js/dataTables.semanticui.js (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/js/dataTables.semanticui.min.js (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/js/jquery.dataTables.js (100%)
 rename {static => app/static}/DataTables/DataTables-1.10.15/js/jquery.dataTables.min.js (100%)
 rename {static => app/static}/DataTables/FixedColumns-3.2.2/css/fixedColumns.bootstrap.css (100%)
 rename {static => app/static}/DataTables/FixedColumns-3.2.2/css/fixedColumns.bootstrap.min.css (100%)
 rename {static => app/static}/DataTables/FixedColumns-3.2.2/css/fixedColumns.dataTables.css (100%)
 rename {static => app/static}/DataTables/FixedColumns-3.2.2/css/fixedColumns.dataTables.min.css (100%)
 rename {static => app/static}/DataTables/FixedColumns-3.2.2/css/fixedColumns.foundation.css (100%)
 rename {static => app/static}/DataTables/FixedColumns-3.2.2/css/fixedColumns.foundation.min.css (100%)
 rename {static => app/static}/DataTables/FixedColumns-3.2.2/css/fixedColumns.jqueryui.css (100%)
 rename {static => app/static}/DataTables/FixedColumns-3.2.2/css/fixedColumns.jqueryui.min.css (100%)
 rename {static => app/static}/DataTables/FixedColumns-3.2.2/js/dataTables.fixedColumns.js (100%)
 rename {static => app/static}/DataTables/FixedColumns-3.2.2/js/dataTables.fixedColumns.min.js (100%)
 rename {static => app/static}/DataTables/FixedHeader-3.1.2/css/fixedHeader.bootstrap.css (100%)
 rename {static => app/static}/DataTables/FixedHeader-3.1.2/css/fixedHeader.bootstrap.min.css (100%)
 rename {static => app/static}/DataTables/FixedHeader-3.1.2/css/fixedHeader.dataTables.css (100%)
 rename {static => app/static}/DataTables/FixedHeader-3.1.2/css/fixedHeader.dataTables.min.css (100%)
 rename {static => app/static}/DataTables/FixedHeader-3.1.2/css/fixedHeader.foundation.css (100%)
 rename {static => app/static}/DataTables/FixedHeader-3.1.2/css/fixedHeader.foundation.min.css (100%)
 rename {static => app/static}/DataTables/FixedHeader-3.1.2/css/fixedHeader.jqueryui.css (100%)
 rename {static => app/static}/DataTables/FixedHeader-3.1.2/css/fixedHeader.jqueryui.min.css (100%)
 rename {static => app/static}/DataTables/FixedHeader-3.1.2/js/dataTables.fixedHeader.js (100%)
 rename {static => app/static}/DataTables/FixedHeader-3.1.2/js/dataTables.fixedHeader.min.js (100%)
 rename {static => app/static}/DataTables/Responsive-2.1.1/css/responsive.bootstrap.css (100%)
 rename {static => app/static}/DataTables/Responsive-2.1.1/css/responsive.bootstrap.min.css (100%)
 rename {static => app/static}/DataTables/Responsive-2.1.1/css/responsive.dataTables.css (100%)
 rename {static => app/static}/DataTables/Responsive-2.1.1/css/responsive.dataTables.min.css (100%)
 rename {static => app/static}/DataTables/Responsive-2.1.1/css/responsive.foundation.css (100%)
 rename {static => app/static}/DataTables/Responsive-2.1.1/css/responsive.foundation.min.css (100%)
 rename {static => app/static}/DataTables/Responsive-2.1.1/css/responsive.jqueryui.css (100%)
 rename {static => app/static}/DataTables/Responsive-2.1.1/css/responsive.jqueryui.min.css (100%)
 rename {static => app/static}/DataTables/Responsive-2.1.1/js/dataTables.responsive.js (100%)
 rename {static => app/static}/DataTables/Responsive-2.1.1/js/dataTables.responsive.min.js (100%)
 rename {static => app/static}/DataTables/Responsive-2.1.1/js/responsive.bootstrap.js (100%)
 rename {static => app/static}/DataTables/Responsive-2.1.1/js/responsive.bootstrap.min.js (100%)
 rename {static => app/static}/DataTables/Responsive-2.1.1/js/responsive.foundation.js (100%)
 rename {static => app/static}/DataTables/Responsive-2.1.1/js/responsive.foundation.min.js (100%)
 rename {static => app/static}/DataTables/Responsive-2.1.1/js/responsive.jqueryui.js (100%)
 rename {static => app/static}/DataTables/Responsive-2.1.1/js/responsive.jqueryui.min.js (100%)
 rename {static => app/static}/DataTables/datatables.css (100%)
 rename {static => app/static}/DataTables/datatables.js (100%)
 rename {static => app/static}/DataTables/datatables.min.css (100%)
 rename {static => app/static}/DataTables/datatables.min.js (100%)
 rename {static => app/static}/README (100%)
 rename {static => app/static}/css/autosuggest_inquisitor.css (100%)
 rename {static => app/static}/css/calabs.css (100%)
 rename {static => app/static}/css/groups.css (100%)
 rename {static => app/static}/css/gt_table.css (100%)
 rename {static => app/static}/css/menu.css (100%)
 rename {static => app/static}/css/multiple-select.css (100%)
 rename {static => app/static}/css/multiple-select.png (100%)
 rename {static => app/static}/css/radar_bulletin.css (100%)
 rename {static => app/static}/css/rickshaw.min.css (100%)
 rename {static => app/static}/css/scodoc.css (100%)
 rename {static => app/static}/css/verticalhisto.css (100%)
 rename {static => app/static}/icons/arrow_down.png (100%)
 rename {static => app/static}/icons/arrow_none.png (100%)
 rename {static => app/static}/icons/arrow_up.png (100%)
 rename {static => app/static}/icons/as_pointer.png (100%)
 rename {static => app/static}/icons/borgne_img.png (100%)
 rename {static => app/static}/icons/bt_gif.png (100%)
 rename {static => app/static}/icons/bullet_arrow.png (100%)
 rename {static => app/static}/icons/bullet_plus.png (100%)
 rename {static => app/static}/icons/bullet_warning_img.png (100%)
 rename {static => app/static}/icons/calendar_img.png (100%)
 rename {static => app/static}/icons/contact_img.png (100%)
 rename {static => app/static}/icons/correspondant_img.png (100%)
 rename {static => app/static}/icons/delete_img.png (100%)
 rename {static => app/static}/icons/delete_small_dis_img.png (100%)
 rename {static => app/static}/icons/delete_small_img.png (100%)
 rename {static => app/static}/icons/devel_img.png (100%)
 rename {static => app/static}/icons/edit_img.png (100%)
 rename {static => app/static}/icons/emptygroupicon_img.png (100%)
 rename {static => app/static}/icons/entreprise_img.png (100%)
 rename {static => app/static}/icons/entreprise_side_img.png (100%)
 rename {static => app/static}/icons/eye_img.png (100%)
 rename {static => app/static}/icons/firefox_fr.png (100%)
 rename {static => app/static}/icons/flag_uk_img.png (100%)
 rename {static => app/static}/icons/formula.png (100%)
 rename {static => app/static}/icons/groupicon_img.png (100%)
 rename {static => app/static}/icons/hide_img.png (100%)
 rename {static => app/static}/icons/hl_corner_bl.png (100%)
 rename {static => app/static}/icons/hl_corner_br.png (100%)
 rename {static => app/static}/icons/hl_corner_tl.png (100%)
 rename {static => app/static}/icons/hl_corner_tr.png (100%)
 rename {static => app/static}/icons/info-16_img.png (100%)
 rename {static => app/static}/icons/info-24_img.png (100%)
 rename {static => app/static}/icons/interdit_img.png (100%)
 rename {static => app/static}/icons/loading.jpg (100%)
 rename {static => app/static}/icons/lock32_img.png (100%)
 rename {static => app/static}/icons/lock_img.png (100%)
 rename {static => app/static}/icons/menuarrow1_img.png (100%)
 rename {static => app/static}/icons/minus18_img.png (100%)
 rename {static => app/static}/icons/minus_img.png (100%)
 rename {static => app/static}/icons/next_img.png (100%)
 rename {static => app/static}/icons/notes_icon.png (100%)
 rename {static => app/static}/icons/notes_img.png (100%)
 rename {static => app/static}/icons/nouv_img.png (100%)
 rename {static => app/static}/icons/pdficon16x20_img.png (100%)
 rename {static => app/static}/icons/pdficon_img.png (100%)
 rename {static => app/static}/icons/plus18_img.png (100%)
 rename {static => app/static}/icons/plus_img.png (100%)
 rename {static => app/static}/icons/prev_img.png (100%)
 rename {static => app/static}/icons/pythonpoweredsmall_img.png (100%)
 rename {static => app/static}/icons/roundedge_img.png (100%)
 rename {static => app/static}/icons/rssscodoc_img.png (100%)
 rename {static => app/static}/icons/sco_icon.png (100%)
 rename {static => app/static}/icons/scologo_img.png (100%)
 rename {static => app/static}/icons/smallpolar_img.png (100%)
 rename {static => app/static}/icons/status_green_img.png (100%)
 rename {static => app/static}/icons/status_greenorange_img.gif (100%)
 rename {static => app/static}/icons/status_orange_img.png (100%)
 rename {static => app/static}/icons/status_visible_img.png (100%)
 rename {static => app/static}/icons/table_brushed_jpg.png (100%)
 rename {static => app/static}/icons/takebacktheweb_small.png (100%)
 rename {static => app/static}/icons/trust_firefox_gif.png (100%)
 rename {static => app/static}/icons/ul_corner_bl.png (100%)
 rename {static => app/static}/icons/ul_corner_br.png (100%)
 rename {static => app/static}/icons/ul_corner_tl.png (100%)
 rename {static => app/static}/icons/ul_corner_tr.png (100%)
 rename {static => app/static}/icons/unknown.jpg (100%)
 rename {static => app/static}/icons/unknown_img.png (100%)
 rename {static => app/static}/icons/warning16_img.png (100%)
 rename {static => app/static}/icons/warning21_img.png (100%)
 rename {static => app/static}/icons/warning_img.png (100%)
 rename {static => app/static}/icons/xlsicon_img.png (100%)
 rename {static => app/static}/index.html (100%)
 rename {static => app/static}/jQuery/jquery-1.12.4.min.js (100%)
 rename {static => app/static}/jQuery/jquery-migrate-1.2.0.min.js (100%)
 rename {static => app/static}/jQuery/jquery.js (100%)
 rename {static => app/static}/js/abs_ajax.js (100%)
 rename {static => app/static}/js/apo_semset_maq_status.js (100%)
 rename {static => app/static}/js/bulletin.js (100%)
 rename {static => app/static}/js/calabs.js (100%)
 rename {static => app/static}/js/editPartitionForm.js (100%)
 rename {static => app/static}/js/edit_ue.js (100%)
 rename {static => app/static}/js/etud_debouche.js (100%)
 rename {static => app/static}/js/etud_info.js (100%)
 rename {static => app/static}/js/export_results.js (100%)
 rename {static => app/static}/js/formsemestre_ext_edit_ue_validations.js (100%)
 rename {static => app/static}/js/groupmgr.js (100%)
 rename {static => app/static}/js/groups_view.js (100%)
 rename {static => app/static}/js/map_lycees.js (100%)
 rename {static => app/static}/js/module_tag_editor.js (100%)
 rename {static => app/static}/js/radar_bulletin.js (100%)
 rename {static => app/static}/js/recap_parcours.js (100%)
 rename {static => app/static}/js/saisie_notes.js (100%)
 rename {static => app/static}/js/sco_ue_external.js (100%)
 rename {static => app/static}/js/scodoc.js (100%)
 rename {static => app/static}/js/trombino.js (100%)
 rename {static => app/static}/js/ue_list.js (100%)
 rename {static => app/static}/js/validate_previous_ue.js (100%)
 rename {static => app/static}/libjs/AutoSuggest.js (100%)
 rename {static => app/static}/libjs/AutoSuggest_2.1.3_comp.js (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/._css (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/._fonts (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/._js (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/css/._bootstrap-theme.css (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/css/._bootstrap-theme.css.map (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/css/._bootstrap-theme.min.css (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/css/._bootstrap.css (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/css/._bootstrap.css.map (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/css/._bootstrap.min.css (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/css/bootstrap-theme.css (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/css/bootstrap-theme.css.map (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/css/bootstrap-theme.min.css (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/css/bootstrap.css (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/css/bootstrap.css.map (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/css/bootstrap.min.css (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.eot (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.svg (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.ttf (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/fonts/._glyphicons-halflings-regular.woff (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.eot (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.svg (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.ttf (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/fonts/glyphicons-halflings-regular.woff (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/js/._bootstrap.js (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/js/._bootstrap.min.js (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/js/bootstrap.js (100%)
 rename {static => app/static}/libjs/bootstrap-3.1.1-dist/js/bootstrap.min.js (100%)
 rename {static => app/static}/libjs/bootstrap-multiselect/bootstrap-multiselect.css (100%)
 rename {static => app/static}/libjs/bootstrap-multiselect/bootstrap-multiselect.js (100%)
 rename {static => app/static}/libjs/bubble.js (100%)
 rename {static => app/static}/libjs/d3.v3.min.js (100%)
 rename {static => app/static}/libjs/fullcalendar/THIS_IS_VERSION_2.0.0-beta2 (100%)
 rename {static => app/static}/libjs/fullcalendar/fullcalendar.css (100%)
 rename {static => app/static}/libjs/fullcalendar/fullcalendar.min.js (100%)
 rename {static => app/static}/libjs/fullcalendar/fullcalendar.print.css (100%)
 rename {static => app/static}/libjs/jQuery-tagEditor/bower.json (100%)
 rename {static => app/static}/libjs/jQuery-tagEditor/demo.html (100%)
 rename {static => app/static}/libjs/jQuery-tagEditor/jquery.caret.min.js (100%)
 rename {static => app/static}/libjs/jQuery-tagEditor/jquery.tag-editor.css (100%)
 rename {static => app/static}/libjs/jQuery-tagEditor/jquery.tag-editor.js (100%)
 rename {static => app/static}/libjs/jQuery-tagEditor/jquery.tag-editor.min.js (100%)
 rename {static => app/static}/libjs/jQuery-tagEditor/readme.md (100%)
 rename {static => app/static}/libjs/jQuery-tagEditor/tag-editor.jquery.json (100%)
 rename {static => app/static}/libjs/jinplace-1.2.1.min.js (100%)
 rename {static => app/static}/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/animated-overlay.gif (100%)
 rename {static => app/static}/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png (100%)
 rename {static => app/static}/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png (100%)
 rename {static => app/static}/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png (100%)
 rename {static => app/static}/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png (100%)
 rename {static => app/static}/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png (100%)
 rename {static => app/static}/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png (100%)
 rename {static => app/static}/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png (100%)
 rename {static => app/static}/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png (100%)
 rename {static => app/static}/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_222222_256x240.png (100%)
 rename {static => app/static}/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_2e83ff_256x240.png (100%)
 rename {static => app/static}/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_454545_256x240.png (100%)
 rename {static => app/static}/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_888888_256x240.png (100%)
 rename {static => app/static}/libjs/jquery-ui-1.10.4.custom/css/smoothness/images/ui-icons_cd0a0a_256x240.png (100%)
 rename {static => app/static}/libjs/jquery-ui-1.10.4.custom/css/smoothness/jquery-ui-1.10.4.custom.css (100%)
 rename {static => app/static}/libjs/jquery-ui-1.10.4.custom/css/smoothness/jquery-ui-1.10.4.custom.min.css (100%)
 rename {static => app/static}/libjs/jquery-ui-1.10.4.custom/js/jquery-ui-1.10.4.custom.min.js (100%)
 rename {static => app/static}/libjs/jquery.field.min.js (100%)
 rename {static => app/static}/libjs/jquery.ui.map.full.min.js (100%)
 rename {static => app/static}/libjs/menu.js (100%)
 rename {static => app/static}/libjs/moment.min.js (100%)
 rename {static => app/static}/libjs/purl.js (100%)
 rename {static => app/static}/libjs/qtip/LICENSE (100%)
 rename {static => app/static}/libjs/qtip/jquery.qtip-3.0.3.min.css (100%)
 rename {static => app/static}/libjs/qtip/jquery.qtip-3.0.3.min.js (100%)
 rename {static => app/static}/libjs/rickshaw.min.js (100%)
 rename {static => app/static}/libjs/sorttable.js (100%)
 rename {static => app/static}/mobile/asset-manifest.json (100%)
 rename {static => app/static}/mobile/favicon.ico (100%)
 rename {static => app/static}/mobile/index.html (100%)
 rename {static => app/static}/mobile/manifest.json (100%)
 rename {static => app/static}/mobile/robots.txt (100%)
 rename {static => app/static}/mobile/scologo.png (100%)
 rename {static => app/static}/mobile/static/css/2.4c97ca4f.chunk.css (100%)
 rename {static => app/static}/mobile/static/css/2.4c97ca4f.chunk.css.map (100%)
 rename {static => app/static}/mobile/static/css/main.6be5a531.chunk.css (100%)
 rename {static => app/static}/mobile/static/css/main.6be5a531.chunk.css.map (100%)
 rename {static => app/static}/mobile/static/js/2.fb06b1f5.chunk.js (100%)
 rename {static => app/static}/mobile/static/js/2.fb06b1f5.chunk.js.LICENSE.txt (100%)
 rename {static => app/static}/mobile/static/js/2.fb06b1f5.chunk.js.map (100%)
 rename {static => app/static}/mobile/static/js/3.b810fcea.chunk.js (100%)
 rename {static => app/static}/mobile/static/js/3.b810fcea.chunk.js.map (100%)
 rename {static => app/static}/mobile/static/js/main.1a008285.chunk.js (100%)
 rename {static => app/static}/mobile/static/js/main.1a008285.chunk.js.map (100%)
 rename {static => app/static}/mobile/static/js/runtime-main.f39ba660.js (100%)
 rename {static => app/static}/mobile/static/js/runtime-main.f39ba660.js.map (100%)
 rename {static => app/static}/robots.txt (100%)

diff --git a/app/__init__.py b/app/__init__.py
index 9d57e9e41..c5353e032 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 a0235849f..5d4b9e5a3 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 13ad4186b..ca50b1770 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 7caab4916..1abdb72e9 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 f5f6496c0..9c6714791 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 8d422a758..6720c96d7 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 c38d5862e..e3896a789 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 e9f6d38d8..6794ac116 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 6acc2961f..02acb2c5c 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 b67c770f7..1e3d8e02a 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 dd3cd1c3d..360838a4e 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 7bc3ac175..00a983066 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 72176cb99..068450d99 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 1ea7f709e..abf6bca9b 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 31bb0e881..fb84f0a9a 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 d3d768e73..65ea7dc0a 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 b6d5d917a..549ba48e0 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 e0d561124..ac906fd99 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 e8fce7431..aafcf0708 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 732952ca3..44cca3900 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 71bd12a34..1cb2456dd 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 aec571c40..e81e431b6 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 6c7e8f053..3f632cae3 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 7ce106fb5..e214e2d36 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 2299417a4..307d77e68 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 2d8d50d4a..fdc48636d 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 57ff3721a..788cf4aee 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 1311f1e4d..85a4206da 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 5db1eb55c..2a4af4f4e 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, ")
-- 
GitLab