Adding specific items to iconolab-mcc project interface
authorRiwad Salim
Wed, 23 May 2018 12:42:37 +0200
changeset 1 309def3c05dc
parent 0 c21813f95c41
child 2 48b9b57dfbaa
Adding specific items to iconolab-mcc project interface
.hgignore
README.md
docker-compose.yml
src/iconolab_mcc/settings/__init__.py
src/iconolab_mcc/settings/dev.py.tmpl
src/iconolab_mcc/static/iconolab_mcc/img/logo_mcc_footer.png
src/iconolab_mcc/templates/iconolab/misc/help.html
src/iconolab_mcc/templates/iconolab_mcc/misc/charter.html
src/iconolab_mcc/templates/iconolab_mcc/misc/credits.html
src/iconolab_mcc/templates/iconolab_mcc/misc/legalmentions.html
src/iconolab_mcc/templates/partials/footer.html
src/iconolab_mcc/urls.py
src/iconolab_mcc/views/__init__.py
src/iconolab_mcc/views/misc.py
--- a/.hgignore	Wed May 16 00:13:16 2018 +0200
+++ b/.hgignore	Wed May 23 12:42:37 2018 +0200
@@ -26,6 +26,7 @@
 ^src/db.sqlite3$
 ^src/log\.txt$
 ^run/log/
+^run/web/
 ^log$
 ^sbin/sync/config\.py$
 ^src/MANIFEST
@@ -38,3 +39,5 @@
 ^src/.envrc$
 
 ^data/
+
+^.vscode
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README.md	Wed May 23 12:42:37 2018 +0200
@@ -0,0 +1,182 @@
+## ICONOLAB-MCC 
+
+### 1. Configuration and setup for development  
+
+### virtualenv
+
+- Install pip
+- Create a virtualenv for the project (using virtualenvwrapper is a good idea if possible). Python version is 3.6.5
+
+Example
+```
+virtualenv -p python3.6 ./virtualenv
+. virtualenv/bin/activate
+
+cd src/
+pip install -r requirements/dev.txt
+```
+
+
+### Django project setup
+
+- Install iconolab
+    pip install -e path/iconolab
+
+- Copy iconolab/src/settings/dev.py.tmpl into iconolab-mcc/src/iconolab_mcc/settings/dev.py, adapt content to configuration
+- cd into iconolab-mcc/src folder and run
+
+    python manage.py migrate
+
+to create database tables
+
+- Run
+
+    python manage.py createsuperuser
+
+to create an admin user
+
+- Collect static files
+
+    python manage.py collectstatic
+
+
+- Use Docker adress for HOST in settings
+
+- don't use  os.path.join(BASE_DIR, 'media') in settings
+
+- make JS_DEV_MODE afalse (if not, it will not connect correctly on server)
+
+
+
+### Iconolab to Iconolab-mcc
+
+- Create uploads and cache repertories 
+    MEDIA_ROOT/uploads and MEDIA_ROOT/cache
+
+- Move the run directory into iconolab-mcc
+
+- Create static directory
+
+- Edit the settings in dev.py (using absolute path is better)
+    BASE_DIR = '../iconolab-mcc/src/iconolab_mcc'
+
+    STATIC_ROOT =  '../iconolab-mcc/run/web/static/site'
+    MEDIA_ROOT = '../iconolab-mcc/run/web/media'
+
+- Create templates and views directories
+
+    iconolab-mcc/src/iconolab_mcc/templates
+    iconolab-mcc/src/iconolab_mcc/views
+
+
+- Add the charter, credits and legalmentions templates and it views and URLs (the URLs need to be on top)
+
+    exemple for credits view in iconolab-mcc/src/iconolab_mcc/views/misc.py : 
+    
+    class CreditsView(TemplateView):
+    template_name='iconolab_mcc/misc/credits.html'
+
+    exemple for credits url in iconolab-mcc/src/urls.py  : 
+
+    path('credits/', views.misc.CreditsView.as_view(), name="iconolab_mcc_credits"),
+
+
+- Add line "from iconolab_mcc import" views in file iconolab_mcc/urls.py to access views
+
+
+- Change "from iconolab.settings import *" into "from iconolab_mcc.settings import *" in the settings
+
+
+- Add help and footer templates
+
+    iconolab-mcc/src/iconolab_mcc/templates/misc/help.html
+     iconolab-mcc/src/iconolab_mcc/templates/partials/footer.html
+
+
+
+
+- Add logo_mcc_footer in src/iconolab_mcc/static/iconolab_mcc/img
+
+
+
+### Docker 
+
+Migrate the file docker-compose.yml in iconolab-mcc project
+
+- Create containers
+
+    docker-compose up
+
+- Run containers
+    
+    docker-compose start
+
+
+### Elasticsearch
+
+Some objects in Iconolab are indexed and searched using ElasticSearch. You need to configure Haystack (see dev.py.tmpl, HAYSTACK_CONNECTIONS) and run:
+
+    python manage.py rebuild_index
+
+
+
+### 2. Python server
+
+- cd into the iconolab/src folder and run
+
+    python manage.py runserver
+
+By default, the app is accessible through http://127.0.0.1:8000/home
+
+
+### 3. Importing initial data from CSV
+
+Make sure to have the following in the same folder:
+
+* All the images to import. The image names must match their respective item inventory number.
+* A csv file that contains the metadata for the items you will import
+* A json file for initializing the collection in the database. (Optional if you want to import images in an existing collection)
+* A json file for the metacategories that will be linked to the collection.
+* Ensure the folder settings.MEDIA_ROOT+/uploads/ exists
+
+The following django manage.py command is used to import collection data and images:
+
+```
+python manage.py importimages <:export-csv-path> --delimiter <:delimiter> --encoding <:encoding> --collection-json <:collection_fixture_FILENAME> (OR --collection-id <:collection_id> if collection already exists in db) --metacategories-json <:metacategories_json_FILENAME>
+```
+
+Options:
+- ```--delimiter```: the delimiter for the csv file. For special ascii characters add a # before the code. Supported special chars are 9 (tab), 29 (Group separator), 30 (Record separator), 31 (Unit separator)
+- ```--encoding```: the encoding provided if the csv is not in utf-8. Exemple: 8859 for ISO-8859
+- ```--collection-json```: the json file to create the collection from
+- ```--collection-id```: the id of the collection to import into, it must already exist
+- ```--metacategories-json```: the json file to create metacategories on the collection we're importing into
+- ```--jpeg-quality```: the jpeg quality: default to the setting IMG_JPG_DEFAULT_QUALITY
+- ```--no-jpg-conversion```: set to True so the command will not convert the images to jpg. Useful for pre-converted jpeg and especially when importing large image banks
+- ```--img-filename-identifier```: the column from which the command will try to find images in the folder: use keys from the setting IMPORT_FIELDS_DICT. Default is "INV".
+- ```--filename-regexp-prefix```: allows you to customize the way the command try to find images by specifying a regexp pattern to match *before* the identifier provided in img-filename-identifier. Defaults to .*
+- ```--filename-regexp-suffix```: allows you to customize the way the command try to find images by specifying a regexp pattern to match *after* the identifier provided in img-filename-identifier. Defaults to [\.\-_].*
+
+Notes:
+* The export csv path will be used to find everything else (images and fixtures files).
+* If the csv file is not encoded in utf-8, you MUST provide --encoding so the csv file can be read
+* You MUST provide either --collection-json or --collection-id, else the command doesn't know to which collection the objects will belong to.
+* To find all images for a given item, the command will try to match filenames according to the pattern build from the 3 options: filename-regexp-prefix+<value of img-filename-identifier>+filename-regexp-suffix. For instance by default, for an object with an INV of MIC.3.10, the files MIC.3.10.jpg and MIC.3.10.verso.jpg would be matched and linked to the object.
+* The command will first parse the csv, then create the objects in the database (Item and ItemMetadata), then move the images to the settings.MEDIA_ROOT+/uploads/ folder after converting them to JPEG, then create the database objects for the images. The command will ignore any csv row that lacks an image or any csv row that already has a database entry for the collection (by default INV number is used to test if a database entry exists).
+    
+
+### 4. Updating already existing data
+
+Another management command allows for editing data using only a .csv file. The command will go through the csv and update the metadatas for every objects it finds in the database with the csv row content.
+
+```
+python manage.py updatecollection --collection-id=<:id> --delimiter=<:delimiter> --encoding=<:encoding>
+```
+
+Options:
+- ```--delimiter```: the delimiter for the csv file. For special ascii characters add a # before the code. Supported special chars are 9 (tab), 29 (Group separator), 30 (Record separator), 31 (Unit separator)
+- ```--encoding```: the encoding provided if the csv is not in utf-8. Exemple: 8859 for ISO-8859
+- ```--collection-id```: the id of the collection to import into, it must already exist
+
+
+ * document the test import command  : `python manage.py importimages --collection-json dossierImportMontauban/montauban_collection.json --metacategories-json dossierImportMontauban/montauban_metacategories_import.json --encoding "UTF-8" --delimiter "," dossierImportMontauban/ExportMontauban.csv`
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/docker-compose.yml	Wed May 23 12:42:37 2018 +0200
@@ -0,0 +1,24 @@
+version: '2.1'
+
+services:
+
+  elasticsearch:
+    image: elasticsearch:1.7-alpine
+    environment:
+      - "transport.host=127.0.0.1"
+      - "http.cors.enabled=true"
+      - "http.cors.allow-origin=*"
+      - "http.cors.allow-headers=Authorization"
+      - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
+    ports:
+      - 9200:9200
+    volumes:
+      - /usr/share/elasticsearch/data
+
+  postgres:
+    image: postgres:alpine
+    ports:
+      - 5432:5432
+    volumes:
+      - /var/lib/postgresql/data
+
--- a/src/iconolab_mcc/settings/__init__.py	Wed May 16 00:13:16 2018 +0200
+++ b/src/iconolab_mcc/settings/__init__.py	Wed May 23 12:42:37 2018 +0200
@@ -56,7 +56,7 @@
     'django_comments_xtd',
     'haystack',
     'sorl.thumbnail',
-    'notifications'
+    'notifications',
 ]
 
 COMMENTS_APP = "django_comments_xtd"
@@ -82,7 +82,7 @@
 TEMPLATES = [
     {
         'BACKEND': 'django.template.backends.django.DjangoTemplates',
-        'DIRS': [os.path.join(BASE_DIR,'iconolab','templates')],
+        'DIRS': [os.path.join(BASE_DIR,'iconolab_mcc', 'templates')],
         'APP_DIRS': True,
         'OPTIONS': {
             'context_processors': [
--- a/src/iconolab_mcc/settings/dev.py.tmpl	Wed May 16 00:13:16 2018 +0200
+++ b/src/iconolab_mcc/settings/dev.py.tmpl	Wed May 23 12:42:37 2018 +0200
@@ -12,7 +12,7 @@
 import logging
 import os
 
-from iconolab.settings import *
+from iconolab_mcc.settings import *
 
 CONTACT_EMAIL = 'youremail@yourprovider.fr'
 
@@ -70,12 +70,10 @@
 
 SITE_ID = 1
 
-ROOT_URLCONF = 'iconolab.urls'
-
 TEMPLATES = [
     {
         'BACKEND': 'django.template.backends.django.DjangoTemplates',
-        'DIRS': [os.path.join(BASE_DIR,'iconolab','templates')],
+        'DIRS': [os.path.join(BASE_DIR,'iconolab_mcc','templates')],
         'APP_DIRS': True,
         'OPTIONS': {
             'context_processors': [
Binary file src/iconolab_mcc/static/iconolab_mcc/img/logo_mcc_footer.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab_mcc/templates/iconolab/misc/help.html	Wed May 23 12:42:37 2018 +0200
@@ -0,0 +1,27 @@
+{% extends 'iconolab_base.html' %}
+
+{% load staticfiles %}
+
+{% load thumbnail %}
+
+{% load iconolab_tags %}
+
+{% block content %}
+  <div class="row">
+    <div class="alert alert-warning">
+      <b>Avertissement</b> : Le contenu de cette page est temporaire et sera amené à être modifié dans les versions ultérieures de la plateforme.
+    </div><div class="col-md-9">
+    <h1>Le projet</h1>
+    <p class="text-justify">Iconolab est une plateforme contributive grâce à laquelle les utilisateurs peuvent explorer et annoter des <a href="/glossary/">collections (fonds)</a> d'images fournies par plusieurs musées et référencées dans la base de données <a target="_blank" href="http://www.culture.gouv.fr/documentation/joconde/fr/pres.htm">Joconde, catalogue collectif des collections des musées de France</a>.
+    <br><br>
+    Sur cette plateforme, il est possible de découper des <a href="/glossary/">détails</a> d'une image et de lui assigner des <a href="/glossary/">mots-clés</a> pour en faire une <a href="/glossary/">annotation</a>. Les autres utilisateurs de la plateforme peuvent ensuite échanger, débattre et faire évoluer ces annotations.
+    <br><br>
+    La <a href="/glossary/">page "glossaire"</a> décrit le vocabulaire employé sur la plateforme afin de vous aider à en comprendre le fonctionnement.
+    </p>
+    </div>
+    <div class="col-md-3 text-center">
+         <img src="{% static 'iconolab/img/glossary_example.png' %}" width="200" height="200">
+         <br><h4 class="text-center"><small>Exemple de fragment</small></h6>
+    </div>
+  </div>
+{% endblock %}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab_mcc/templates/iconolab_mcc/misc/charter.html	Wed May 23 12:42:37 2018 +0200
@@ -0,0 +1,105 @@
+{% extends 'iconolab_base.html' %}
+
+{% load staticfiles %}
+
+{% load thumbnail %}
+
+{% load iconolab_tags %}
+
+{% block content %}
+  <div class="row">
+    <div class="alert alert-warning">
+      <b>Avertissement</b> : Le contenu de cette page est temporaire et sera amené à être modifié dans les versions ultérieures de la plateforme.
+    </div>
+    <div class="col-md-12">
+      <h3>Charte de contribution</h3>
+      <p class="text-justify">
+        La plate-forme IconoLab est un site expérimental mis en œuvre par le ministère de la Culture et de la Communication (MCC) et l’Institut de Recherche et d’Innovation (IRI).
+      </p><br>
+      <h4>Contexte</h4>
+      <p class="text-justify">
+        Iconolab a pour objet :
+        <ul style="list-style-type:none;">
+          <li class="text-justify">- d’expérimenter l’annotation contributive sur des fonds iconographiques incomplètement documentés, conservés par des institutions publiques, musées de France participant au projet, et publiés en parallèle sur la base Joconde, catalogue collectif des collections des musées de France ; </li>
+          <li class="text-justify">- de recueillir les contributions sur les objets, les images entières ou des détails de ces images, sous forme d’annotations (mots-clés, commentaires), catégorisées, auto-évaluées, évaluées ou révisées entre pairs. </li>
+        </ul>
+        Iconolab a pour but :
+        <ul style="list-style-type:none;">
+          <li class="text-justify">- d’expérimenter la validation de données issues de la contribution grâce à l’évaluation par les contributeurs eux-mêmes et par leurs pairs grâce à des métriques permettant de croiser des indices de confiance (pertinence et fiabilité) ; </li>
+          <li class="text-justify">- de co-construire des ensembles de données validées que les musées participants pourront réintégrer, selon leurs besoins et leurs propres critères de sélection, dans leurs systèmes informatisés pour utilisation en interne et possible mise en ligne sur la base Joconde, catalogue collectif des collections des musées de France, ou un autre support public de diffusion. </li>
+        </ul>
+      </p><br>
+
+      <p class="text-justify">
+        Toute personne qui souhaite contribuer sur un ou plusieurs objets en ligne sur la plate-forme IconoLab doit accepter préalablement les termes de la présente charte.
+        Le contributeur reconnaît avoir pris connaissance des mentions légales de la plate-forme IconoLab.
+      </p><br>
+
+      <h4>Accès à la consultation et à la contribution</h4>
+      <p class="text-justify">
+        L’accès aux fonds mis en ligne sur la plate-forme IconoLab est public depuis le site iconolab.iri-research.org.
+      </p>
+      <p class="text-justify">
+        Le contenu des notices est mis gratuitement en ligne par le musée détenteur du fonds.
+      </p>
+      <p class="text-justify">
+        Le contributeur est validé en amont par le musée détenteur du fonds qui lui a communiqué l’url de création d’un compte personnel. Le musée détenteur des fonds peut avoir passé une convention avec une association fédérant de potentiels contributeurs. Le cas échéant, le contributeur s’engage donc à respecter ladite convention (cf. Conditions particulières de contribution posées par le musée détenteur des fonds).
+      </p>
+      <p class="text-justify">
+        Le musée détenteur des fonds se réserve le droit de refuser toute inscription qui ne serait pas conforme à l’objet de la plate-forme IconoLab ou qui aurait un caractère commercial, et d’interdire, temporairement ou définitivement, sans mise en demeure préalable, l’accès à la contribution.
+      </p>
+      <p class="text-justify">
+        Les notices et images des objets ouverts à la contribution sont accessibles depuis la liste des fonds, accessible à partir de la page d’accueil.
+      </p>
+      <p class="text-justify">
+        Pour publier des contributions ou les réviser, le contributeur doit, au préalable, avoir créé un compte avec un nom d’utilisateur et mot de passe de son choix. Lors des sessions suivantes, le contributeur devra se connecter avec ces mêmes identifiants. Le contributeur est responsable de la conservation du nom d’utilisateur et du mot de passe choisis pour l’accès à la contribution.
+      </p>
+      <p class="text-justify">
+        L’adresse de messagerie requise pour l'ouverture du compte peut être utilisée par l’équipe responsable de la plate-forme afin de contacter le contributeur dans le cadre de sa participation à l’expérimentation.
+      </p>
+      <p class="text-justify">
+        Le contributeur peut annoter autant d’objets qu’il le souhaite, sur un ou plusieurs fonds selon le ciblage du musée.
+      </p>
+      <p class="text-justify">
+        Le contributeur peut réviser autant d’annotations qu’il le souhaite, sur un ou plusieurs fonds selon le ciblage du musée.
+      </p>
+      <p class="text-justify">
+        Toutes les contributions, soumises ou révisées, sur la plateforme sont rendues publiques sur la plateforme dont l’accès est réservé aux utilisateurs identifiés.
+      </p><br>
+
+      <h4>Règles de Contribution</h4>
+      <p class="text-justify">
+      En participant à la plate-forme IconoLab, et en créant un compte, le contributeur s’engage notamment :
+      <ul>
+        <li class="text-justify">A apporter des contributions utiles, en rapport avec le sujet abordé, et à participer au débat de manière constructive ; </li>
+        <li class="text-justify">à introduire des annotations et à rédiger des commentaires basés sur des sources fiables, vérifiables, et de préférence de première main, mentionnées dans la rubrique « référence » ; </li>
+        <li class="text-justify">à respecter les obligations légales en matière de propriété intellectuelle ; </li>
+        <li class="text-justify">à indiquer dès l’inscription, et dans la mesure du possible, un nom d’utilisateur permettant l’identification claire du contributeur ; </li>
+        <li class="text-justify">à n’exprimer aucun propos illicites, diffamants, injurieux, obscènes, discriminatoires, menaçants ou contraires à l’esprit de la consultation ; </li>
+        <li class="text-justify">à ne pas publier de publicité ou exercer d’activité commerciale ; </li>
+        <li class="text-justify">à reconnaître à chacun le droit d’avoir une opinion différente  et à la respecter ; </li>
+        <li class="text-justify">à s'exprimer dans un langage correct et accessible, en respectant la courtoisie des échanges ; </li>
+        <li class="text-justify">à respecter les conventions d’annotation et de révision préconisées par l’équipe responsable de la plate-forme dans le tutoriel ; </li>
+        <li class="text-justify">à respecter les principes fondamentaux de cette expérimentation d’annotation : précision, exactitude, intégrité, respect de la vie privée et gratuité ; </li>
+        <li class="text-justify">à donner son accord pour que le ministère de la Culture jouisse, à titre gracieux, de tous les droits de publication, diffusion publique et de reproduction du travail accompli, et principalement que le résultat de la contribution soit publié sur le site internet IconoLab ; </li>
+        <li class="text-justify">à donner son accord pour que les musées responsables des fonds bénéficient, à titre gracieux, de tous les droits d’exploitation et de diffusion publique des données saisies  (notamment de les détenir, de les archiver, de les agréger avec des données provenant d’autres sources), et notamment que le résultat de la contribution soit publié, sur la plate-forme IconoLab, sur les sites Internet des musées et sur Joconde, catalogue collectif des collections des musées de France, librement et gratuitement, sans limite de temps ; </li>
+        <li class="text-justify">pour toute annotation, à indiquer le niveau de pertinence et de fiabilité des mots-clés choisis.
+      </ul>
+      </p><br>
+      <p class="text-justify">
+        L’équipe responsable de la plate-forme est susceptible de supprimer ou modérer une contribution sans préavis, si les règles mentionnées dans la charte ne sont pas respectées.
+        Utilisation des données issues de la contribution
+        Les informations recueillies font l’objet d’un traitement informatique destiné au fonctionnement de la plateforme contributive. Le service des musées de France et les musées participants sont les seuls destinataires de ces données.
+      </p><br>
+
+      <h4>Données personnelles</h4>
+      <p class="text-justify">
+        Comme l’indiquent les mentions légales, aucune donnée à caractère personnel n’est collectée sur ce site internet. <br>
+
+        <h5>Affichage de l’identité et de l’adresse électronique : </h5>
+        l’affichage de l’identité du contributeur pourra apparaître selon les noms et prénoms ou pseudonyme renseignés lors de son inscription à la plate-forme IconoLab. Seule la partie précédant le signe @ de l’adresse électronique sera affichée afin d’éviter toute utilisation par un tiers. Les messages qui pourraient être envoyés aux contributeurs seront envoyés via un dispositif garantissant le non-piratage des courriels.
+
+      </p>
+    </div>
+  </div>
+{% endblock %}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab_mcc/templates/iconolab_mcc/misc/credits.html	Wed May 23 12:42:37 2018 +0200
@@ -0,0 +1,37 @@
+{% extends 'iconolab_base.html' %}
+
+{% load staticfiles %}
+
+{% load thumbnail %}
+
+{% load iconolab_tags %}
+
+{% block content %}
+  <div class="row">
+    <div class="alert alert-warning">
+      <b>Avertissement</b> : Le contenu de cette page est temporaire et sera amené à être modifié dans les versions ultérieures de la plateforme.
+    </div>
+    <div class="col-md-12">
+      <h4>Crédits</h4>
+      <p>
+      <b>Coordination de l’expérimentation</b><br>
+      Carine Prunet et Laurent Manoeuvre,<br>
+      <i>Service des Musées de France, Direction générale des patrimoines, Ministère de la Culture et de la Communication</i><br>
+      <br>
+      <b>Supervision technique</b><br>
+      Marie-Véronique Leroi, <i>Département des programmes numériques, Ministère de la Culture et de la Communication</i><br>
+      <br>
+      <b>Conseil scientifique</b><br>
+      Bertrand Sajus, <i>Département des programmes numériques, Ministère de la Culture et de la Communication</i><br>
+      <br>
+      <b>Conception et développement</b><br>
+      Harris Baptiste, Nicolas Durand, Yves-Marie Haussonne<br>
+      <i>Institut de Recherche et d’Innovation</i><br>
+      <br>
+      <b>Musées et communautés participantes</b><br>
+      Eléonore Buffler, <i>Musée de Saint-Dié-des-Vosges</i><br>
+      Hélène Guillaut, Florence Viguier-Dutheil, <i>Musée Ingres de Montauban</i><br>
+      </p>
+    </div>
+  </div>
+{% endblock %}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab_mcc/templates/iconolab_mcc/misc/legalmentions.html	Wed May 23 12:42:37 2018 +0200
@@ -0,0 +1,110 @@
+{% extends 'iconolab_base.html' %}
+
+{% load staticfiles %}
+
+{% load thumbnail %}
+
+{% load iconolab_tags %}
+
+{% block content %}
+  <div class="row">
+    <div class="col-md-12">
+      <div class="alert alert-warning">
+        <b>Avertissement</b> : Le contenu de cette page est temporaire et sera amené à être modifié dans les versions ultérieures de la plateforme.
+      </div>
+      <h4>Mentions légales IconoLab</h4>
+      <dl class="legals-dl text-justify">
+        <dt>1. Éditeur</dt>
+        <dd>« IconoLab » est une publication du ministère de la Culture et de la Communication.</dd><br>
+        <dt>2. Hébergement</dt>
+        <dd>« IconoLab » est hébergé par l’Institut de Recherche et d’Innovation.</dd><br>
+        <dt>3. Direction de la publication</dt>
+        <dd>Le projet « IconoLab » est dirigé par le Bureau de la Diffusion Numérique des collections en collaboration avec le Département de l'Innovation Numérique et le service des musées de France de la direction générale du patrimoine et le secrétariat général.<br>
+        <br>
+        Directeur de la publication : Laurent Manœuvre, chef du Bureau de la diffusion numérique des collections et de l'unité de documentation</dd><br>
+        <dt>4. Adresse</dt>
+        <dd>
+          Ministère de la Culture et de la Communication<br>
+          Direction générale des patrimoines<br>
+          Service des musées de France<br>
+          6 rue des Pyramides<br>
+          75041 Paris cedex<br>
+        </dd><br>
+        <dt>CONDITIONS GENERALES D’UTILISATION</dt>
+        <dd>
+          « IconoLab » est le fruit d’une expérimentation menée par le ministère de la Culture et de la Communication. Dans le cadre du schéma directeur informatique du Ministère de la Culture et de la Communication (2013-2016), il s’agit de développer une plateforme expérimentale d’enrichissement collaboratif de corpus.
+          <br>
+          Toute personne qui accède à « IconoLab », à l’une des offres éditoriales ou service associés accepte et s’engage à respecter, sans restriction, ni réserve, les présentes conditions générales d’utilisation en vigueur.
+        </dd><br>
+        <dt>Article 1. Définitions</dt>
+        <dd>
+          « IconoLab » : désigne le site accessible à l’adresse suivante http://iconolab.iri-research.org/
+          <br>
+          « Utilisateur » : désigne toute personne physique accédant à « IconoLab » et/ou utilisant une des offres éditoriales ou services associés au présent site ;
+          <br>
+          « Partenaire(s) » : désigne tout partenaire éditorial et/ou de visibilité du site.
+          <br>
+          « Contenus » : désigne l’ensemble des données et plus généralement des informations diffusées sur « IconoLab » ;
+          <br>
+          « Services » : désigne l’une ou l’ensemble des fonctionnalités fournie sur le site et accessible en ligne à partir de « IconoLab » ;
+        </dd><br>
+        <dt>Article 2. Objet</dt>
+        <dd>
+          Les présentes Conditions Générales d’Utilisation ont pour objet de définir les modalités d’accès et d’utilisation du site par l’Utilisateur et de mise à disposition des Contenus, des Offres Éditoriales et Services par « IconoLab ».
+        </dd><br>
+        <dt>Article 3. Accès</dt>
+        <dd>
+          Tout Utilisateur accède librement et gratuitement au site, aux Services et aux offres éditoriales associées.
+        </dd><br>
+        <dt>Article 4. Données à caractère personnel</dt>
+        <dd><br>
+          Aucune donnée à caractère personnel n’est collectée sur ce site internet.
+        </dd><br>
+        <dt>Article 5. Propriété intellectuelle</dt>
+        <dd>
+          Les textes et images utilisés sur le site « IconoLab » proviennent de la base Joconde (catalogue collectif des collections des musées de France) : http://www.culture.gouv.fr/documentation/joconde/fr/pres.htm. La base Joconde regroupe près de 500 000 notices d’objets.
+          <br>
+          Les notices et les images diffusées au sein de Joconde, catalogue collectif des collections des musées de France, émanent des musées participants et ont été retraitées avant mise en ligne par le bureau de la diffusion numérique des collections. Certains contenus sont couverts par des droits d’auteur et font l’objet de règles de réutilisation strictes. Tous les autres éléments présents sur « IconoLab » et notamment les illustrations relatives aux artistes, mots-clés, pays, régions, villes, sujets représentés, catégories et époques ainsi que tous les textes disponibles en plusieurs langues et relatifs à ces mêmes concepts proviennent de l'encyclopédie en ligne Wikipédia (http://fr.wikipedia.org) à travers une extraction automatisée disponible en ligne sur le site internet dbpedia.fr, sont librement réutilisables selon les conditions de la licence libre Creative Commons BY-SA 3.0 ou sont entrées dans le domaine public. (http://creativecommons.org/publicdomain/zero/1.0/deed.fr)
+        </dd><br>
+        <dt>Article 5-2. Code source</dt>
+        <dd>
+          Le code source du projet est publié sous la licence CeCILL-C sur le repository Mercurial suivant: https://www.iri.centrepompidou.fr/dev/hg/iconolab/
+        </dd><br>
+        <dt>Article 6. Liens hypertextes</dt>
+        <dd>
+          6.1 - Liens hypertextes profonds vers http://iconolab.iri-research.org/. La création de liens hypertextes en direction de « IconoLab » est libre à la condition qu’elle ne porte pas atteinte aux intérêts matériels ou moraux du ministère de la Culture et de la Communication et qu’elle ne créé pas de confusion sur la source des Services et/ou Contenus.
+        </dd><br>
+        <dt>Article 7. Responsabilités</dt>
+        <dd>
+          7.1 - Garanties et Responsabilité. « IconoLab » s’efforce d’assurer au mieux que les informations accessibles par l’intermédiaire du site soient exactes et mises à jour. Cependant, « IconoLab » ne garantit en aucune manière que ces informations soient exactes, complètes et à jour. « IconoLab » n’assure aucune garantie, expresse ou tacite, concernant tout ou partie du site. « IconoLab » décline également toute responsabilité concernant l’accès et le contenu des sites liés au site.
+          <br><br>
+          En aucun cas, « IconoLab » ne peut être tenu pour responsable d’un quelconque dommage direct ou indirect, quelle qu’en soit la cause, origine, nature et conséquence, découlant de la consultation ou de l’utilisation du site. Notamment, « IconoLab » décline toute responsabilité en cas d’interruption ou d’inaccessibilité du site, de survenance de bogues, de tout dommage résultant d’actes frauduleux de tiers à partir du site.
+          <br><br>
+          « IconoLab » ne maîtrise pas les risques liés au fonctionnement d’Internet et attire votre attention sur l’existence d’éventuels risques en terme de confidentialité des données transitant via ce réseau.
+          <br><br>
+          7.2 - Les éditeurs et les auteurs du site « IconoLab » ne sauraient être tenus responsables des erreurs ou omissions dans les informations diffusées ou des problèmes techniques rencontrés sur le site et sur tous les autres sites vers lesquels nous établissons des liens, ou de toute interprétation des informations publiées sur ces sites, ainsi que des conséquences de leur utilisation.
+          <br><br>
+          Ce site internet constitue une expérimentation et certaines informations issues directement de l'encyclopédie Wikipédia peuvent être incomplètes ou inexistantes, notamment pour certaines langues moins documentées. Nous vous invitons à contribuer en ligne à l'encyclopédie Wikipédia (lien : http://fr.wikipedia.org/wiki/Aide:Premiers_pas) pour améliorer le fonctionnement et la pertinence du site « IconoLab ».
+          <br><br>
+          7.3 – Responsabilité de l’Utilisateur. L’Utilisateur est seul responsable de l’utilisation des fonctionnalités offertes par le site ainsi que de tout dommage subi par son ordinateur ou de toute perte de données consécutive à la consultation et l’utilisation de « IconoLab », des Offres Éditoriales et/ou des Services qui y sont associés.
+          <br><br>
+          7.4 – Responsabilité technique. « IconoLab » ne pourra en aucun cas être tenu pour responsable de problèmes liés aux systèmes d’informations notamment la fiabilité de la transmission des données, la sécurité des transmissions, le temps d’accès, la présence de virus informatique sur le site, sans que cette énumération soit limitative.
+        </dd><br>
+        <dt>8. Accessibilité</dt>
+        <dd>
+          Ce site internet est conforme aux spécifications du W3C relatives au standard HTML5. Un effort particulier a été porté sur l’accessibilité du site « IconoLab » aux personnes en situation de handicap.  Les consignes de conception accessibles présentées dans le Référentiel Général d'Accessibilité pour les Administrations (RGAA) ont été suivies dans la mesure du possible, certaines fonctionnalités expérimentales présentées sur « IconoLab » pouvant fonctionner de manière dégradée sur certains navigateurs adaptés.
+        </dd><br>
+        <dt>9. Données illicites</dt>
+          <dd>
+          Conformément à la loi pour la confiance dans l’économie numérique du 21 juin 2004, le site « IconoLab » permet à tout individu ou visiteur de signaler tout contenu susceptible de revêtir les caractères des infractions visées aux cinquième et huitième alinéas de l’article 24 de la loi du 29 juillet 1881 sur la liberté de presse et aux articles 227-23 et 227-24 du Code pénal.
+          <br>
+          Pour nous signaler un tel contenu, nous vous invitons à nous contacter en envoyant un message à contact en précisant le lien vers le contenu que vous estimez illicite.
+        </dd><br>
+        <dt>10. Loi Applicable</dt>
+        <dd>
+          Les présentes Conditions Générales d’Utilisation sont soumises au droit français.
+        </dd><br>
+      </dl>
+    </div>
+  </div>
+{% endblock %}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab_mcc/templates/partials/footer.html	Wed May 23 12:42:37 2018 +0200
@@ -0,0 +1,26 @@
+{% load staticfiles %}
+{% load iconolab_tags %}
+
+<div class="container">
+<hr style="margin-top: 5px;">
+  <div class="pull-left footer-info">
+    <h4><small>Version {% version %}</small></h4>
+  </div>
+  <div class="pull-right partners-icons">
+    <a href="http://www.iri.centrepompidou.fr"><img src="{% static 'iconolab/img/logo_IRI_footer.png' %}"></a>
+    &nbsp;&nbsp;
+    <a href="http://www.culturecommunication.gouv.fr/"><img src="{% static 'iconolab_mcc/img/logo_mcc_footer.png' %}"></a>
+  </div>
+  <div class="pull-right footer-link">
+    <h4><small><a href="{% url 'iconolab_mcc_legals' %}">Mentions légales</a></small></h4>
+  </div>
+  <div class="pull-right footer-link">
+    <h4><small><a href="{% url 'iconolab_mcc_credits' %}">Crédits</a></small></h4>
+  </div>
+  <div class="pull-right footer-link">
+    <h4><small><a href="{% url 'iconolab_mcc_charter' %}">Charte de contribution</a></small></h4>
+  </div>
+  <div class="pull-right footer-link">
+    <h4><small><a href="{% url 'iconolab_glossary' %}">Glossaire</a></small></h4>
+  </div>
+</div>
--- a/src/iconolab_mcc/urls.py	Wed May 16 00:13:16 2018 +0200
+++ b/src/iconolab_mcc/urls.py	Wed May 23 12:42:37 2018 +0200
@@ -19,13 +19,21 @@
 from django.contrib import admin
 from django.contrib.staticfiles.urls import staticfiles_urlpatterns
 from django.urls import include, path, re_path, reverse_lazy
+from iconolab_mcc import views
 
 import iconolab.urls
 
 urlpatterns = [
-    path(r'', include(iconolab.urls)),
+    
+    path('', include(iconolab.urls)),
     re_path(r'^$', django_views.generic.RedirectView.as_view(url=reverse_lazy("home"))),
     path('admin/', admin.site.urls),
+
+    path('credits/', views.misc.CreditsView.as_view(), name="iconolab_mcc_credits"),
+    path('legalmentions/', views.misc.LegalMentionsView.as_view(), name="iconolab_mcc_legals"),
+    path('contributioncharter/', views.misc.ContributionCharterView.as_view(), name="iconolab_mcc_charter"),
+    
+    
 ]
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab_mcc/views/__init__.py	Wed May 23 12:42:37 2018 +0200
@@ -0,0 +1,1 @@
+from . import misc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/iconolab_mcc/views/misc.py	Wed May 23 12:42:37 2018 +0200
@@ -0,0 +1,10 @@
+from django.views.generic import TemplateView
+
+class CreditsView(TemplateView):
+    template_name='iconolab_mcc/misc/credits.html'
+
+class LegalMentionsView(TemplateView):
+    template_name='iconolab_mcc/misc/legalmentions.html'
+
+class ContributionCharterView(TemplateView):
+    template_name='iconolab_mcc/misc/charter.html'