Merge with b122b996e203afa5a047d90bca1604abba658c8a
authorrougeronj
Mon, 09 Mar 2015 11:05:44 +0100
changeset 508 96ddbedf93cb
parent 507 81acd8021764 (current diff)
parent 506 b122b996e203 (diff)
child 509 791b817bc6b1
Merge with b122b996e203afa5a047d90bca1604abba658c8a
virtualenv/res/src/django-registration-0.8.tar.gz
virtualenv/res/src/redland-1.0.11.tar.gz
virtualenv/res/src/six-1.8.0.tar.gz
virtualenv/res/src/wikitools-1.1.1.tar.bz2
--- a/.hgignore	Mon Mar 09 11:03:57 2015 +0100
+++ b/.hgignore	Mon Mar 09 11:05:44 2015 +0100
@@ -6,6 +6,7 @@
 syntax: regexp
 ^web/.htaccess$
 ^web/static/site$
+^web/static/media
 \.DS_Store
 ^virtualenv/web/project-boot\.py$
 ^web/index/.*$
@@ -19,4 +20,4 @@
 ^src/hdabo/config\.py$
 ^web/static/media/thumbnails/renkan/renkan_default_icon\.png\.100x100_q85\.png$
 ^src/hdalab/config\.py$
-^sbin/sync/config\.py$
\ No newline at end of file
+^sbin/sync/config\.py$
--- a/.hgtags	Mon Mar 09 11:03:57 2015 +0100
+++ b/.hgtags	Mon Mar 09 11:05:44 2015 +0100
@@ -101,3 +101,12 @@
 8f70ba2106a9a1f17b72310e481d7ae12a16f483 V03.00-alpha.11
 51cd6fa9dfe313f5fec1f7de1958317d3519dd9e V03.00-alpha.11
 4629c62c0d0aefa6549aa8dd0a9e4cb99665df5a V03.00-alpha.12
+08243f159907f5a1cdd984d191d1dc9c5f454c0a V03.00-rc.01
+08243f159907f5a1cdd984d191d1dc9c5f454c0a V03.00-rc.01
+79d69bde5203b35c810c782fead2e39d1f5ec16d V03.00-rc.01
+79d69bde5203b35c810c782fead2e39d1f5ec16d V03.00-rc.01
+73604caea804324b2eae800101dd22bc5a85c03e V03.00-rc.01
+73604caea804324b2eae800101dd22bc5a85c03e V03.00-rc.01
+6c6ba670b985deba09f84672be84b8e5aff8f306 V03.00-rc.01
+6c6ba670b985deba09f84672be84b8e5aff8f306 V03.00-rc.01
+c86417bff0bb71875d2160fbf653c8b0da55fe5e V03.00-rc.01
--- a/.settings/org.eclipse.core.resources.prefs	Mon Mar 09 11:03:57 2015 +0100
+++ b/.settings/org.eclipse.core.resources.prefs	Mon Mar 09 11:05:44 2015 +0100
@@ -32,10 +32,12 @@
 encoding//src/hdabo/views.py=utf-8
 encoding//src/hdabo/wp_utils.py=utf-8
 encoding//src/hdalab/__init__.py=utf-8
+encoding//src/hdalab/celery.py=utf-8
 encoding//src/hdalab/config.py=utf-8
 encoding//src/hdalab/fields.py=utf-8
 encoding//src/hdalab/forms.py=utf-8
 encoding//src/hdalab/manage.py=utf-8
+encoding//src/hdalab/management/commands/calculate_preview.py=utf-8
 encoding//src/hdalab/management/commands/export_tags_csv.py=utf-8
 encoding//src/hdalab/management/commands/export_wpcategory_csv.py=utf-8
 encoding//src/hdalab/management/commands/fill_tag_years.py=utf-8
@@ -66,6 +68,8 @@
 encoding//src/hdalab/models/renkan.py=utf-8
 encoding//src/hdalab/services.py=utf-8
 encoding//src/hdalab/settings.py=utf-8
+encoding//src/hdalab/signals.py=utf-8
+encoding//src/hdalab/tasks.py=utf-8
 encoding//src/hdalab/urls.py=utf-8
 encoding//src/hdalab/utils.py=utf-8
 encoding//src/hdalab/views/ajax.py=utf-8
--- a/src/hdalab/__init__.py	Mon Mar 09 11:03:57 2015 +0100
+++ b/src/hdalab/__init__.py	Mon Mar 09 11:05:44 2015 +0100
@@ -1,5 +1,7 @@
 # -*- coding: utf-8 -*-
-VERSION = (3, 0, 0, "alpha", 12)
+from __future__ import absolute_import
+
+VERSION = (3, 0, 0, "rc", 1)
 
 
 def get_version():
@@ -13,5 +15,12 @@
             version = '%s-%s.%s' % (version, VERSION[3], VERSION[4])
     return version
 
+__version__ = get_version()
 
-__version__ = get_version()
+try:
+    from .celery import app as celery_app
+except:
+    pass
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/celery.py	Mon Mar 09 11:05:44 2015 +0100
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+'''
+Created on Mar 7, 2015
+
+@author: ymh
+'''
+from __future__ import absolute_import
+
+import os
+
+from django.conf import settings
+
+from celery import Celery
+
+# set the default Django settings module for the 'celery' program.
+os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'hdalab.settings')
+
+app = Celery('hdalab')
+
+# Using a string here means the worker will not have to
+# pickle the object when using Windows.
+app.config_from_object('django.conf:settings')
+app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
--- a/src/hdalab/config.py.tmpl	Mon Mar 09 11:03:57 2015 +0100
+++ b/src/hdalab/config.py.tmpl	Mon Mar 09 11:05:44 2015 +0100
@@ -123,3 +123,11 @@
 }
 
 DEFAULT_FROM_EMAIL = "do-not-reply@iri-research.org"
+
+RENKAN_PREVIEW_PHANTOMJS_PATH = 'phantomjs'
+
+BROKER_URL = 'sqla+sqlite:///'+os.path.abspath(os.path.join(BASE_DIR,"../../run/celerydb.sqlite"))
+
+#CELERY_EMAIL_BACKEND
+
+ENVELOPE_EMAIL_RECIPIENTS= ['histoiredesarts@culture.gouv.fr']
Binary file src/hdalab/locale/de/LC_MESSAGES/django.mo has changed
--- a/src/hdalab/locale/de/LC_MESSAGES/django.po	Mon Mar 09 11:03:57 2015 +0100
+++ b/src/hdalab/locale/de/LC_MESSAGES/django.po	Mon Mar 09 11:05:44 2015 +0100
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-03-06 07:38-0600\n"
+"POT-Creation-Date: 2015-03-08 20:09-0500\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -41,24 +41,24 @@
 msgid "Japanese"
 msgstr "Japanisch"
 
-#: models/renkan.py:37
+#: models/renkan.py:32
 msgid "edition_state"
 msgstr ""
 
-#: models/renkan.py:38
+#: models/renkan.py:33
 msgid "moderated_state"
 msgstr ""
 
-#: models/renkan.py:39
+#: models/renkan.py:34
 msgid "published_state"
 msgstr ""
 
-#: models/renkan.py:40
+#: models/renkan.py:35
 msgid "rejected_state"
 msgstr ""
 
 #: templates/a_propos.html:5 templates/base.html:43 templates/base.html.py:75
-#: templates/base.html:96
+#: templates/base.html:97
 msgid "A Propos"
 msgstr ""
 
@@ -66,15 +66,15 @@
 msgid "Accueil"
 msgstr ""
 
-#: templates/base.html:39 templates/base.html.py:91 templates/index.html:44
+#: templates/base.html:39 templates/base.html.py:92 templates/index.html:44
 msgid "Recherche"
 msgstr "Einen Tag suchen"
 
-#: templates/base.html:40 templates/base.html.py:92
+#: templates/base.html:40 templates/base.html.py:93
 msgid "Domaines Artistiques"
 msgstr "Künstlerische Disziplinen"
 
-#: templates/base.html:41 templates/base.html.py:93
+#: templates/base.html:41 templates/base.html.py:94
 msgid "Thésaurus"
 msgstr ""
 
@@ -96,15 +96,20 @@
 msgid "Mentions légales"
 msgstr ""
 
-#: templates/base.html:90
+#: templates/base.html:78 templates/envelope/contact.html:6
+#: templates/envelope/contact.html.py:16
+msgid "Contact"
+msgstr ""
+
+#: templates/base.html:91
 msgid "Rubriques"
 msgstr ""
 
-#: templates/base.html:95
+#: templates/base.html:96
 msgid "Renkan repères"
 msgstr ""
 
-#: templates/base.html:102
+#: templates/base.html:103
 msgid "Liens"
 msgstr ""
 
@@ -483,26 +488,26 @@
 msgid "Ressources"
 msgstr ""
 
-#: templates/renkan_edit.html:191
+#: templates/renkan_edit.html:192
 msgid "Change organisation"
 msgstr ""
 
-#: templates/renkan_edit.html:192
+#: templates/renkan_edit.html:193
 msgid "(Indisponible si modification du RENKAN)"
 msgstr ""
 
-#: templates/renkan_edit.html:195 templates/renkan_edit.html.py:199
-#: templates/renkan_edit.html:203
-msgid "View graph in column"
-msgstr ""
-
 #: templates/renkan_edit.html:196 templates/renkan_edit.html.py:200
 #: templates/renkan_edit.html:204
-msgid "View graph in line"
+msgid "View graph in column"
 msgstr ""
 
 #: templates/renkan_edit.html:197 templates/renkan_edit.html.py:201
 #: templates/renkan_edit.html:205
+msgid "View graph in line"
+msgstr ""
+
+#: templates/renkan_edit.html:198 templates/renkan_edit.html.py:202
+#: templates/renkan_edit.html:206
 msgid "View graph in circle"
 msgstr ""
 
@@ -578,6 +583,19 @@
 msgid "reject renkan"
 msgstr ""
 
+#: templates/envelope/contact.html:19
+msgid ""
+"\n"
+"        <p>Vous souhaitez poser une question sur Histoire des arts' Lab ?</"
+"p>\n"
+"        <p>Remplissez le formulaire suivant :</p>\n"
+"        "
+msgstr ""
+
+#: templates/envelope/contact.html:29
+msgid "Send!"
+msgstr ""
+
 #: templates/registration/activate.html:5
 msgid "Registration - Activated"
 msgstr ""
Binary file src/hdalab/locale/en/LC_MESSAGES/django.mo has changed
--- a/src/hdalab/locale/en/LC_MESSAGES/django.po	Mon Mar 09 11:03:57 2015 +0100
+++ b/src/hdalab/locale/en/LC_MESSAGES/django.po	Mon Mar 09 11:05:44 2015 +0100
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-03-06 07:38-0600\n"
+"POT-Creation-Date: 2015-03-08 20:09-0500\n"
 "PO-Revision-Date: 2012-03-09 02:10+0200\n"
 "Last-Translator: Yves-Marie Haussonne <ymh.work@gmail.com>\n"
 "Language-Team: IRI\n"
@@ -41,24 +41,24 @@
 msgid "Japanese"
 msgstr "Japanese"
 
-#: models/renkan.py:37
+#: models/renkan.py:32
 msgid "edition_state"
 msgstr "edition"
 
-#: models/renkan.py:38
+#: models/renkan.py:33
 msgid "moderated_state"
 msgstr "moderated"
 
-#: models/renkan.py:39
+#: models/renkan.py:34
 msgid "published_state"
 msgstr "published"
 
-#: models/renkan.py:40
+#: models/renkan.py:35
 msgid "rejected_state"
 msgstr "rejected"
 
 #: templates/a_propos.html:5 templates/base.html:43 templates/base.html.py:75
-#: templates/base.html:96
+#: templates/base.html:97
 msgid "A Propos"
 msgstr "About"
 
@@ -66,15 +66,15 @@
 msgid "Accueil"
 msgstr "Home"
 
-#: templates/base.html:39 templates/base.html.py:91 templates/index.html:44
+#: templates/base.html:39 templates/base.html.py:92 templates/index.html:44
 msgid "Recherche"
 msgstr "Tag search"
 
-#: templates/base.html:40 templates/base.html.py:92
+#: templates/base.html:40 templates/base.html.py:93
 msgid "Domaines Artistiques"
 msgstr "Artistic discipline"
 
-#: templates/base.html:41 templates/base.html.py:93
+#: templates/base.html:41 templates/base.html.py:94
 msgid "Thésaurus"
 msgstr "Thesaurus"
 
@@ -96,15 +96,20 @@
 msgid "Mentions légales"
 msgstr "Legal Notices"
 
-#: templates/base.html:90
+#: templates/base.html:78 templates/envelope/contact.html:6
+#: templates/envelope/contact.html.py:16
+msgid "Contact"
+msgstr "Contact"
+
+#: templates/base.html:91
 msgid "Rubriques"
 msgstr "Topics"
 
-#: templates/base.html:95
+#: templates/base.html:96
 msgid "Renkan repères"
 msgstr "Landmark Renkan"
 
-#: templates/base.html:102
+#: templates/base.html:103
 msgid "Liens"
 msgstr "Links"
 
@@ -508,26 +513,26 @@
 msgid "Ressources"
 msgstr "Resources"
 
-#: templates/renkan_edit.html:191
+#: templates/renkan_edit.html:192
 msgid "Change organisation"
 msgstr "Change organisation"
 
-#: templates/renkan_edit.html:192
+#: templates/renkan_edit.html:193
 msgid "(Indisponible si modification du RENKAN)"
 msgstr "(Not allowed if renkan has been modified)"
 
-#: templates/renkan_edit.html:195 templates/renkan_edit.html.py:199
-#: templates/renkan_edit.html:203
+#: templates/renkan_edit.html:196 templates/renkan_edit.html.py:200
+#: templates/renkan_edit.html:204
 msgid "View graph in column"
 msgstr "View graph in column"
 
-#: templates/renkan_edit.html:196 templates/renkan_edit.html.py:200
-#: templates/renkan_edit.html:204
+#: templates/renkan_edit.html:197 templates/renkan_edit.html.py:201
+#: templates/renkan_edit.html:205
 msgid "View graph in line"
 msgstr "View graph in line"
 
-#: templates/renkan_edit.html:197 templates/renkan_edit.html.py:201
-#: templates/renkan_edit.html:205
+#: templates/renkan_edit.html:198 templates/renkan_edit.html.py:202
+#: templates/renkan_edit.html:206
 msgid "View graph in circle"
 msgstr "View graph in circle"
 
@@ -603,6 +608,25 @@
 msgid "reject renkan"
 msgstr "reject Renkan"
 
+#: templates/envelope/contact.html:19
+msgid ""
+"\n"
+"        <p>Vous souhaitez poser une question sur Histoire des arts' Lab ?</"
+"p>\n"
+"        <p>Remplissez le formulaire suivant :</p>\n"
+"        "
+msgstr ""
+"\n"
+"        <p>You wish to ask something about Histoire des arts' Lab ?</"
+"p>\n"
+"        <p>Fill the following form:</p>\n"
+"        "
+
+
+#: templates/envelope/contact.html:29
+msgid "Send!"
+msgstr "Send!"
+
 #: templates/registration/activate.html:5
 msgid "Registration - Activated"
 msgstr "Registration - Activated"
@@ -772,9 +796,6 @@
 #~ msgid "Reset password at %(site_name)s"
 #~ msgstr "Reset password at %(site_name)s"
 
-#~ msgid "Contact"
-#~ msgstr "Contact"
-
 #~ msgid "Pays"
 #~ msgstr "Countries"
 
Binary file src/hdalab/locale/es/LC_MESSAGES/django.mo has changed
--- a/src/hdalab/locale/es/LC_MESSAGES/django.po	Mon Mar 09 11:03:57 2015 +0100
+++ b/src/hdalab/locale/es/LC_MESSAGES/django.po	Mon Mar 09 11:05:44 2015 +0100
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-03-06 07:38-0600\n"
+"POT-Creation-Date: 2015-03-08 20:09-0500\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -41,24 +41,24 @@
 msgid "Japanese"
 msgstr "Japonés"
 
-#: models/renkan.py:37
+#: models/renkan.py:32
 msgid "edition_state"
 msgstr "estado_edición"
 
-#: models/renkan.py:38
+#: models/renkan.py:33
 msgid "moderated_state"
 msgstr "estado_moderado"
 
-#: models/renkan.py:39
+#: models/renkan.py:34
 msgid "published_state"
 msgstr "estado_publicado"
 
-#: models/renkan.py:40
+#: models/renkan.py:35
 msgid "rejected_state"
 msgstr "estado_rechazado"
 
 #: templates/a_propos.html:5 templates/base.html:43 templates/base.html.py:75
-#: templates/base.html:96
+#: templates/base.html:97
 msgid "A Propos"
 msgstr "Acerca de Nosotros"
 
@@ -66,17 +66,17 @@
 msgid "Accueil"
 msgstr ""
 
-#: templates/base.html:39 templates/base.html.py:91 templates/index.html:44
+#: templates/base.html:39 templates/base.html.py:92 templates/index.html:44
 #, fuzzy
 msgid "Recherche"
 msgstr "Búsqueda por ramas"
 
-#: templates/base.html:40 templates/base.html.py:92
+#: templates/base.html:40 templates/base.html.py:93
 #, fuzzy
 msgid "Domaines Artistiques"
 msgstr "Disciplinas artísticas"
 
-#: templates/base.html:41 templates/base.html.py:93
+#: templates/base.html:41 templates/base.html.py:94
 msgid "Thésaurus"
 msgstr ""
 
@@ -100,15 +100,20 @@
 msgid "Mentions légales"
 msgstr "Aviso Legal"
 
-#: templates/base.html:90
+#: templates/base.html:78 templates/envelope/contact.html:6
+#: templates/envelope/contact.html.py:16
+msgid "Contact"
+msgstr "Contactos"
+
+#: templates/base.html:91
 msgid "Rubriques"
 msgstr ""
 
-#: templates/base.html:95
+#: templates/base.html:96
 msgid "Renkan repères"
 msgstr ""
 
-#: templates/base.html:102
+#: templates/base.html:103
 msgid "Liens"
 msgstr ""
 
@@ -505,26 +510,26 @@
 msgid "Ressources"
 msgstr "Recursos"
 
-#: templates/renkan_edit.html:191
+#: templates/renkan_edit.html:192
 msgid "Change organisation"
 msgstr "Cambiar la organización"
 
-#: templates/renkan_edit.html:192
+#: templates/renkan_edit.html:193
 msgid "(Indisponible si modification du RENKAN)"
 msgstr "(Indisponible despues de modificar el RENKAN)"
 
-#: templates/renkan_edit.html:195 templates/renkan_edit.html.py:199
-#: templates/renkan_edit.html:203
+#: templates/renkan_edit.html:196 templates/renkan_edit.html.py:200
+#: templates/renkan_edit.html:204
 msgid "View graph in column"
 msgstr "Vista del gráfico en columnas"
 
-#: templates/renkan_edit.html:196 templates/renkan_edit.html.py:200
-#: templates/renkan_edit.html:204
+#: templates/renkan_edit.html:197 templates/renkan_edit.html.py:201
+#: templates/renkan_edit.html:205
 msgid "View graph in line"
 msgstr "Vista del gráfico en lineas"
 
-#: templates/renkan_edit.html:197 templates/renkan_edit.html.py:201
-#: templates/renkan_edit.html:205
+#: templates/renkan_edit.html:198 templates/renkan_edit.html.py:202
+#: templates/renkan_edit.html:206
 msgid "View graph in circle"
 msgstr "Vista del gráfico en círculo"
 
@@ -601,6 +606,19 @@
 msgid "reject renkan"
 msgstr "Gestionar mis Renkan"
 
+#: templates/envelope/contact.html:19
+msgid ""
+"\n"
+"        <p>Vous souhaitez poser une question sur Histoire des arts' Lab ?</"
+"p>\n"
+"        <p>Remplissez le formulaire suivant :</p>\n"
+"        "
+msgstr ""
+
+#: templates/envelope/contact.html:29
+msgid "Send!"
+msgstr ""
+
 #: templates/registration/activate.html:5
 msgid "Registration - Activated"
 msgstr "Inscriptición - Activada"
@@ -766,6 +784,3 @@
 
 #~ msgid "Reset password at %(site_name)s"
 #~ msgstr "Reiniciar la contraseña de %(site_name)s"
-
-#~ msgid "Contact"
-#~ msgstr "Contactos"
Binary file src/hdalab/locale/fr/LC_MESSAGES/django.mo has changed
--- a/src/hdalab/locale/fr/LC_MESSAGES/django.po	Mon Mar 09 11:03:57 2015 +0100
+++ b/src/hdalab/locale/fr/LC_MESSAGES/django.po	Mon Mar 09 11:05:44 2015 +0100
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-03-06 07:38-0600\n"
+"POT-Creation-Date: 2015-03-08 20:09-0500\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -41,26 +41,24 @@
 msgid "Japanese"
 msgstr "Japonais"
 
-#: models/renkan.py:37
+#: models/renkan.py:32
 msgid "edition_state"
 msgstr "édition"
 
-#: models/renkan.py:38
+#: models/renkan.py:33
 msgid "moderated_state"
 msgstr "modéré"
 
-#: models/renkan.py:39
+#: models/renkan.py:34
 msgid "published_state"
 msgstr "publié"
 
-#: models/renkan.py:40
+#: models/renkan.py:35
 msgid "rejected_state"
 msgstr "rejeté"
 
-#: templates/a_propos.html:5
-#: templates/base.html:43
-#: templates/base.html.py:75
-#: templates/base.html:96
+#: templates/a_propos.html:5 templates/base.html:43 templates/base.html.py:75
+#: templates/base.html:97
 msgid "A Propos"
 msgstr "À Propos"
 
@@ -68,29 +66,23 @@
 msgid "Accueil"
 msgstr ""
 
-#: templates/base.html:39
-#: templates/base.html.py:91
-#: templates/index.html:44
+#: templates/base.html:39 templates/base.html.py:92 templates/index.html:44
 msgid "Recherche"
 msgstr "Recherche"
 
-#: templates/base.html:40
-#: templates/base.html.py:92
+#: templates/base.html:40 templates/base.html.py:93
 msgid "Domaines Artistiques"
 msgstr "Disciplines artistiques"
 
-#: templates/base.html:41
-#: templates/base.html.py:93
+#: templates/base.html:41 templates/base.html.py:94
 msgid "Thésaurus"
 msgstr ""
 
-#: templates/base.html:50
-#: templates/ajax_identification/ajax_login_ok.html:4
+#: templates/base.html:50 templates/ajax_identification/ajax_login_ok.html:4
 msgid "Log out"
 msgstr "Déconnexion"
 
-#: templates/base.html:52
-#: templates/registration/activate.html:16
+#: templates/base.html:52 templates/registration/activate.html:16
 #: templates/registration/activation_complete.html:16
 #: templates/registration/password_reset_complete.html:15
 msgid "Log in"
@@ -104,20 +96,24 @@
 msgid "Mentions légales"
 msgstr "Mentions légales"
 
-#: templates/base.html:90
+#: templates/base.html:78 templates/envelope/contact.html:6
+#: templates/envelope/contact.html.py:16
+msgid "Contact"
+msgstr ""
+
+#: templates/base.html:91
 msgid "Rubriques"
 msgstr "Rubriques"
 
-#: templates/base.html:95
+#: templates/base.html:96
 msgid "Renkan repères"
 msgstr "Renkan repères"
 
-#: templates/base.html:102
+#: templates/base.html:103
 msgid "Liens"
 msgstr "Liens"
 
-#: templates/categories.html:5
-#: templates/thesaurus.html:33
+#: templates/categories.html:5 templates/thesaurus.html:33
 msgid "Recherche par arbre"
 msgstr "Recherche par arbre"
 
@@ -137,8 +133,7 @@
 msgid "Credits"
 msgstr "Crédits"
 
-#: templates/facettes.html:5
-#: templates/facettes.html.py:46
+#: templates/facettes.html:5 templates/facettes.html.py:46
 msgid "Recherche par facettes"
 msgstr "Recherche par facettes"
 
@@ -204,7 +199,8 @@
 "collections de ressources du portails histoire des arts avec d’autres sites "
 "Web.<br><br>Vous pouvez déplacer chaque noeud en cliquant dessus et en "
 "déplacant votre curseur."
-msgstr "Cet outil (RENKAN) vous permet de representer, spatialiser et organiser des "
+msgstr ""
+"Cet outil (RENKAN) vous permet de representer, spatialiser et organiser des "
 "collections de ressources du portails histoire des arts avec d’autres sites "
 "Web.<br><br>Vous pouvez déplacer chaque noeud en cliquant dessus et en "
 "déplacant votre curseur."
@@ -225,13 +221,13 @@
 msgid "Tag"
 msgstr "Tag"
 
-#: templates/help_popup.html:22
-#: templates/help_popup.html.py:40
+#: templates/help_popup.html:22 templates/help_popup.html.py:40
 msgid ""
 "En cliquant sur chaque noeud ou lien vous pouvez les déplacer,  éditer,  "
 "supprimer, agrandir, rétraicir, modifier en utilisant le menu circulaire "
 "comme ci dessous."
-msgstr "En cliquant sur chaque noeud ou lien vous pouvez les déplacer,  éditer,  "
+msgstr ""
+"En cliquant sur chaque noeud ou lien vous pouvez les déplacer,  éditer,  "
 "supprimer, agrandir, rétraicir, modifier en utilisant le menu circulaire "
 "comme ci dessous."
 
@@ -247,14 +243,16 @@
 msgid ""
 "Une fois ce didacticiel fermer vous pouvez ajouter des ressources en faisant "
 "“drag and drop” a partir de n’importe qu’elle fenetre de navigation web."
-msgstr "Une fois ce didacticiel fermer vous pouvez ajouter des ressources en faisant "
+msgstr ""
+"Une fois ce didacticiel fermer vous pouvez ajouter des ressources en faisant "
 "“drag and drop” a partir de n’importe qu’elle fenetre de navigation web."
 
 #: templates/help_popup.html:32
 msgid ""
 "En cliquant sur l’icone à gauche  vous pouvez ouvrir le panel de recherche "
 "pour retrouver des ressources du site HDA ou Wikipédia."
-msgstr "En cliquant sur l’icone à gauche  vous pouvez ouvrir le panel de recherche "
+msgstr ""
+"En cliquant sur l’icone à gauche  vous pouvez ouvrir le panel de recherche "
 "pour retrouver des ressources du site HDA ou Wikipédia."
 
 #: templates/help_popup.html:35
@@ -267,7 +265,8 @@
 "la mise en page avant impression.<br><br>Le Lorem Ipsum est le faux texte "
 "standard de l'imprimerie depuis les années 1500, quand un peintre anonyme "
 "assembla ensemble des morceaux de texte pour réaliser un livre de texte."
-msgstr "Le Lorem Ipsum est simplement du faux texte employé dans la composition et "
+msgstr ""
+"Le Lorem Ipsum est simplement du faux texte employé dans la composition et "
 "la mise en page avant impression.<br><br>Le Lorem Ipsum est le faux texte "
 "standard de l'imprimerie depuis les années 1500, quand un peintre anonyme "
 "assembla ensemble des morceaux de texte pour réaliser un livre de texte."
@@ -280,7 +279,8 @@
 msgid ""
 "Ensuite vous pouvez enregistrer en ciquant sur l’icone representant une "
 "disquette."
-msgstr "Ensuite vous pouvez enregistrer en ciquant sur l’icone representant une "
+msgstr ""
+"Ensuite vous pouvez enregistrer en ciquant sur l’icone representant une "
 "disquette."
 
 #: templates/index.html:47
@@ -288,7 +288,8 @@
 "Intuitive, la recherche d’Histoire des arts ‘Lab propose plusieurs points "
 "d’entrée : pays, périodes historiques, disciplines artistiques et mots-clés. "
 "À la fois critères "
-msgstr "Intuitive, la recherche d’Histoire des arts ‘Lab propose plusieurs points "
+msgstr ""
+"Intuitive, la recherche d’Histoire des arts ‘Lab propose plusieurs points "
 "d’entrée : pays, périodes historiques, disciplines artistiques et mots-clés. "
 "À la fois critères "
 
@@ -296,7 +297,8 @@
 msgid ""
 "de recherche et modes de visualisation des résultats, ces différentes "
 "facettes se mettent à jour au fur et à mesure de vos recherches."
-msgstr "de recherche et modes de visualisation des résultats, ces différentes "
+msgstr ""
+"de recherche et modes de visualisation des résultats, ces différentes "
 "facettes se mettent à jour au fur et à mesure de vos recherches."
 
 #: templates/index.html:59
@@ -313,7 +315,8 @@
 msgid ""
 "Construisez votre carte de connaissances à partir des ressources Histoires "
 "des arts et Wikipedia."
-msgstr "Construisez votre carte de connaissances à partir des ressources Histoires "
+msgstr ""
+"Construisez votre carte de connaissances à partir des ressources Histoires "
 "des arts et Wikipedia."
 
 #: templates/index.html:91
@@ -324,7 +327,8 @@
 msgid ""
 "Naviguez autrement à travers les 5000 ressources du Portail Histoire des "
 "arts :"
-msgstr "Naviguez autrement à travers les 5000 ressources du Portail Histoire des "
+msgstr ""
+"Naviguez autrement à travers les 5000 ressources du Portail Histoire des "
 "arts :"
 
 #: templates/index.html:95
@@ -383,68 +387,55 @@
 msgid "Nouveau Renkan"
 msgstr "Nouveau Renkan"
 
-#: templates/profile_home.html:55
-#: templates/profile_home.html.py:124
-#: templates/renkan_list.html:32
-#: templates/renkan_list.html.py:84
+#: templates/profile_home.html:55 templates/profile_home.html.py:124
+#: templates/renkan_list.html:32 templates/renkan_list.html.py:84
 #: templates/editorial/manage_renkans.html:38
 #: templates/editorial/manage_renkans.html:100
 msgid "Previous"
 msgstr "Précédent"
 
-#: templates/profile_home.html:56
-#: templates/profile_home.html.py:125
-#: templates/renkan_list.html:33
-#: templates/renkan_list.html.py:85
+#: templates/profile_home.html:56 templates/profile_home.html.py:125
+#: templates/renkan_list.html:33 templates/renkan_list.html.py:85
 #: templates/editorial/manage_renkans.html:39
 #: templates/editorial/manage_renkans.html:101
 msgid "Next"
 msgstr "Suivant"
 
-#: templates/profile_home.html:57
-#: templates/renkan_list.html:34
+#: templates/profile_home.html:57 templates/renkan_list.html:34
 #: templates/editorial/manage_renkans.html:40
 msgid "Filter"
 msgstr "Filtrer"
 
-#: templates/profile_home.html:57
-#: templates/renkan_list.html:34
+#: templates/profile_home.html:57 templates/renkan_list.html:34
 #: templates/editorial/manage_renkans.html:40
 msgid "Advanced search"
 msgstr "Recherche avancée"
 
-#: templates/profile_home.html:59
-#: templates/profile_home.html.py:77
-#: templates/renkan_list.html:36
-#: templates/renkan_list.html.py:48
+#: templates/profile_home.html:59 templates/profile_home.html.py:77
+#: templates/renkan_list.html:36 templates/renkan_list.html.py:48
 #: templates/editorial/manage_renkans.html:42
 #: templates/editorial/manage_renkans.html:60
 msgid "Title"
 msgstr "Titre"
 
-#: templates/profile_home.html:60
-#: templates/profile_home.html.py:81
-#: templates/renkan_list.html:37
-#: templates/renkan_list.html.py:56
+#: templates/profile_home.html:60 templates/profile_home.html.py:81
+#: templates/renkan_list.html:37 templates/renkan_list.html.py:56
 #: templates/editorial/manage_renkans.html:43
 #: templates/editorial/manage_renkans.html:66
 msgid "Modification date"
 msgstr "Date de modification"
 
-#: templates/profile_home.html:60
-#: templates/renkan_list.html:37
+#: templates/profile_home.html:60 templates/renkan_list.html:37
 #: templates/editorial/manage_renkans.html:43
 msgid "begin"
 msgstr "début"
 
-#: templates/profile_home.html:61
-#: templates/renkan_list.html:38
+#: templates/profile_home.html:61 templates/renkan_list.html:38
 #: templates/editorial/manage_renkans.html:44
 msgid "end"
 msgstr "fin"
 
-#: templates/profile_home.html:62
-#: templates/profile_home.html.py:84
+#: templates/profile_home.html:62 templates/profile_home.html.py:84
 #: templates/editorial/manage_renkans.html:46
 #: templates/editorial/manage_renkans.html:69
 msgid "State"
@@ -454,51 +445,42 @@
 msgid "Edition"
 msgstr "Édition"
 
-#: templates/profile_home.html:66
-#: templates/editorial/manage_renkans.html:49
+#: templates/profile_home.html:66 templates/editorial/manage_renkans.html:49
 msgid "Moderated"
 msgstr "Modéré"
 
-#: templates/profile_home.html:67
-#: templates/editorial/manage_renkans.html:50
+#: templates/profile_home.html:67 templates/editorial/manage_renkans.html:50
 msgid "Published"
 msgstr "Publié"
 
-#: templates/profile_home.html:68
-#: templates/editorial/manage_renkans.html:51
+#: templates/profile_home.html:68 templates/editorial/manage_renkans.html:51
 msgid "Rejected"
 msgstr "Rejeté"
 
-#: templates/profile_home.html:71
-#: templates/renkan_list.html:41
+#: templates/profile_home.html:71 templates/renkan_list.html:41
 #: templates/editorial/manage_renkans.html:54
 msgid "Favorite"
 msgstr "Favoris"
 
-#: templates/profile_home.html:72
-#: templates/renkan_list.html:43
+#: templates/profile_home.html:72 templates/renkan_list.html:43
 #: templates/editorial/manage_renkans.html:55
 msgid "Search"
 msgstr "Rechercher"
 
-#: templates/profile_home.html:79
-#: templates/renkan_list.html:51
+#: templates/profile_home.html:79 templates/renkan_list.html:51
 #: templates/editorial/manage_renkans.html:62
 msgid "Fav."
 msgstr "Fav."
 
-#: templates/profile_home.html:83
-#: templates/editorial/manage_renkans.html:68
+#: templates/profile_home.html:83 templates/editorial/manage_renkans.html:68
 msgid "Preview"
 msgstr "Prévisualisation"
 
-#: templates/profile_home.html:86
-#: templates/editorial/manage_renkans.html:71
+#: templates/profile_home.html:86 templates/editorial/manage_renkans.html:71
 msgid "Actions"
 msgstr "Actions"
 
-#: templates/profile_home.html:105
-#: templates/renkan_list.html:76
+#: templates/profile_home.html:105 templates/renkan_list.html:76
 msgid "Are you sure you want to copy this renkan ?"
 msgstr "Êtes-vous certain(e) de vouloir copier ce Renkan ?"
 
@@ -509,11 +491,11 @@
 #: templates/profile_home.html:110
 msgid ""
 "Are you sure you want to delete this renkan ? You cannot undo this action."
-msgstr "Êtes-vous certain(e) de vouloir effacer ce Renkan ? Vous ne pourrez pas "
+msgstr ""
+"Êtes-vous certain(e) de vouloir effacer ce Renkan ? Vous ne pourrez pas "
 "annuler cette action."
 
-#: templates/profile_home.html:115
-#: templates/editorial/manage_renkans.html:90
+#: templates/profile_home.html:115 templates/editorial/manage_renkans.html:90
 msgid "publish renkan"
 msgstr "publier renkan"
 
@@ -521,8 +503,7 @@
 msgid "Are you sure you want to ask to publish this renkan ?"
 msgstr "Êtes-vous certain(e) de vouloir demander la publication de ce Renkan ?"
 
-#: templates/profile_home.html:116
-#: templates/editorial/manage_renkans.html:91
+#: templates/profile_home.html:116 templates/editorial/manage_renkans.html:91
 msgid "unpublish renkan"
 msgstr "dépublier renkan"
 
@@ -534,45 +515,39 @@
 msgid "Ressources"
 msgstr "Ressources"
 
-#: templates/renkan_edit.html:191
+#: templates/renkan_edit.html:192
 msgid "Change organisation"
 msgstr "Changer de disposition"
 
-#: templates/renkan_edit.html:192
+#: templates/renkan_edit.html:193
 msgid "(Indisponible si modification du RENKAN)"
 msgstr "(Indisponible si le RENKAN est modifié)"
 
-#: templates/renkan_edit.html:195
-#: templates/renkan_edit.html.py:199
-#: templates/renkan_edit.html:203
+#: templates/renkan_edit.html:196 templates/renkan_edit.html.py:200
+#: templates/renkan_edit.html:204
 msgid "View graph in column"
 msgstr "Voir le graphe en colonne"
 
-#: templates/renkan_edit.html:196
-#: templates/renkan_edit.html.py:200
-#: templates/renkan_edit.html:204
+#: templates/renkan_edit.html:197 templates/renkan_edit.html.py:201
+#: templates/renkan_edit.html:205
 msgid "View graph in line"
 msgstr "Voir le graphe en ligne"
 
-#: templates/renkan_edit.html:197
-#: templates/renkan_edit.html.py:201
-#: templates/renkan_edit.html:205
+#: templates/renkan_edit.html:198 templates/renkan_edit.html.py:202
+#: templates/renkan_edit.html:206
 msgid "View graph in circle"
 msgstr "Voir le graphe en cercle"
 
-#: templates/renkan_list.html:6
-#: templates/renkan_list.html.py:29
+#: templates/renkan_list.html:6 templates/renkan_list.html.py:29
 msgid "Public Renkans list"
 msgstr "Liste des renkans publics"
 
-#: templates/renkan_list.html:39
-#: templates/editorial/manage_renkans.html:45
+#: templates/renkan_list.html:39 templates/editorial/manage_renkans.html:45
 #: templates/registration/login.html:24
 msgid "Username"
 msgstr "Nom d'utilisateur"
 
-#: templates/renkan_list.html:54
-#: templates/editorial/manage_renkans.html:64
+#: templates/renkan_list.html:54 templates/editorial/manage_renkans.html:64
 msgid "User"
 msgstr "Utilisateur"
 
@@ -584,7 +559,8 @@
 #: templates/registration/login.html:18
 #: templates/registration/password_reset_form.html:18
 msgid "Sorry, that's not a valid username or password."
-msgstr "Désolé, le nom de l'utilisateur ou le mot de passe ne sont pas valides."
+msgstr ""
+"Désolé, le nom de l'utilisateur ou le mot de passe ne sont pas valides."
 
 #: templates/ajax_identification/ajax_login.html:15
 #: templates/registration/registration_form.html:24
@@ -601,8 +577,7 @@
 msgstr "Annuler"
 
 #: templates/ajax_identification/ajax_login.html:23
-#: templates/registration/login.html:5
-#: templates/registration/login.html:32
+#: templates/registration/login.html:5 templates/registration/login.html:32
 msgid "Login"
 msgstr "Connexion"
 
@@ -636,6 +611,25 @@
 msgid "reject renkan"
 msgstr "rejeter Renkan"
 
+#: templates/envelope/contact.html:19
+msgid ""
+"\n"
+"        <p>Vous souhaitez poser une question sur Histoire des arts' Lab ?</"
+"p>\n"
+"        <p>Remplissez le formulaire suivant :</p>\n"
+"        "
+msgstr ""
+"\n"
+"        <p>Vous souhaitez poser une question sur Histoire des arts' Lab ?</"
+"p>\n"
+"        <p>Remplissez le formulaire suivant :</p>\n"
+"        "
+
+
+#: templates/envelope/contact.html:29
+msgid "Send!"
+msgstr "Envoyer !"
+
 #: templates/registration/activate.html:5
 msgid "Registration - Activated"
 msgstr "Enregistrement - Activé"
@@ -667,7 +661,8 @@
 "\n"
 "You have created an account at %(sitename)s with the user name "
 "%(username)s.\n"
-msgstr "\n"
+msgstr ""
+"\n"
 "Vous avez créé un compte sur le site %(sitename)s avec le nom d'utilisateur "
 "%(username)s.\n"
 
@@ -755,7 +750,8 @@
 
 #: templates/registration/password_reset_done.html:14
 msgid "Email with password reset instructions has been sent."
-msgstr "L'email avec les instructions pour réinitialiser le mot de passe a été "
+msgstr ""
+"L'email avec les instructions pour réinitialiser le mot de passe a été "
 "envoyé."
 
 #: templates/registration/password_reset_form.html:5
@@ -798,8 +794,6 @@
 msgid "Plus de Ressources"
 msgstr "Plus de Ressources"
 
-#: views/profile.py:448
-#: views/profile.py:527
+#: views/profile.py:448 views/profile.py:527
 msgid "Period"
 msgstr "Période"
-
Binary file src/hdalab/locale/it/LC_MESSAGES/django.mo has changed
--- a/src/hdalab/locale/it/LC_MESSAGES/django.po	Mon Mar 09 11:03:57 2015 +0100
+++ b/src/hdalab/locale/it/LC_MESSAGES/django.po	Mon Mar 09 11:05:44 2015 +0100
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-03-06 07:38-0600\n"
+"POT-Creation-Date: 2015-03-08 20:09-0500\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -41,24 +41,24 @@
 msgid "Japanese"
 msgstr "Giapponese"
 
-#: models/renkan.py:37
+#: models/renkan.py:32
 msgid "edition_state"
 msgstr ""
 
-#: models/renkan.py:38
+#: models/renkan.py:33
 msgid "moderated_state"
 msgstr ""
 
-#: models/renkan.py:39
+#: models/renkan.py:34
 msgid "published_state"
 msgstr ""
 
-#: models/renkan.py:40
+#: models/renkan.py:35
 msgid "rejected_state"
 msgstr ""
 
 #: templates/a_propos.html:5 templates/base.html:43 templates/base.html.py:75
-#: templates/base.html:96
+#: templates/base.html:97
 msgid "A Propos"
 msgstr ""
 
@@ -66,17 +66,17 @@
 msgid "Accueil"
 msgstr ""
 
-#: templates/base.html:39 templates/base.html.py:91 templates/index.html:44
+#: templates/base.html:39 templates/base.html.py:92 templates/index.html:44
 #, fuzzy
 msgid "Recherche"
 msgstr "Cercare un tag"
 
-#: templates/base.html:40 templates/base.html.py:92
+#: templates/base.html:40 templates/base.html.py:93
 #, fuzzy
 msgid "Domaines Artistiques"
 msgstr "Discipline artistiche"
 
-#: templates/base.html:41 templates/base.html.py:93
+#: templates/base.html:41 templates/base.html.py:94
 msgid "Thésaurus"
 msgstr ""
 
@@ -98,15 +98,20 @@
 msgid "Mentions légales"
 msgstr ""
 
-#: templates/base.html:90
+#: templates/base.html:78 templates/envelope/contact.html:6
+#: templates/envelope/contact.html.py:16
+msgid "Contact"
+msgstr ""
+
+#: templates/base.html:91
 msgid "Rubriques"
 msgstr ""
 
-#: templates/base.html:95
+#: templates/base.html:96
 msgid "Renkan repères"
 msgstr ""
 
-#: templates/base.html:102
+#: templates/base.html:103
 msgid "Liens"
 msgstr ""
 
@@ -489,26 +494,26 @@
 msgid "Ressources"
 msgstr ""
 
-#: templates/renkan_edit.html:191
+#: templates/renkan_edit.html:192
 msgid "Change organisation"
 msgstr ""
 
-#: templates/renkan_edit.html:192
+#: templates/renkan_edit.html:193
 msgid "(Indisponible si modification du RENKAN)"
 msgstr ""
 
-#: templates/renkan_edit.html:195 templates/renkan_edit.html.py:199
-#: templates/renkan_edit.html:203
-msgid "View graph in column"
-msgstr ""
-
 #: templates/renkan_edit.html:196 templates/renkan_edit.html.py:200
 #: templates/renkan_edit.html:204
-msgid "View graph in line"
+msgid "View graph in column"
 msgstr ""
 
 #: templates/renkan_edit.html:197 templates/renkan_edit.html.py:201
 #: templates/renkan_edit.html:205
+msgid "View graph in line"
+msgstr ""
+
+#: templates/renkan_edit.html:198 templates/renkan_edit.html.py:202
+#: templates/renkan_edit.html:206
 msgid "View graph in circle"
 msgstr ""
 
@@ -584,6 +589,19 @@
 msgid "reject renkan"
 msgstr ""
 
+#: templates/envelope/contact.html:19
+msgid ""
+"\n"
+"        <p>Vous souhaitez poser une question sur Histoire des arts' Lab ?</"
+"p>\n"
+"        <p>Remplissez le formulaire suivant :</p>\n"
+"        "
+msgstr ""
+
+#: templates/envelope/contact.html:29
+msgid "Send!"
+msgstr ""
+
 #: templates/registration/activate.html:5
 msgid "Registration - Activated"
 msgstr ""
Binary file src/hdalab/locale/ja/LC_MESSAGES/django.mo has changed
--- a/src/hdalab/locale/ja/LC_MESSAGES/django.po	Mon Mar 09 11:03:57 2015 +0100
+++ b/src/hdalab/locale/ja/LC_MESSAGES/django.po	Mon Mar 09 11:05:44 2015 +0100
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-03-06 07:38-0600\n"
+"POT-Creation-Date: 2015-03-08 20:09-0500\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "Language: \n"
@@ -42,24 +42,24 @@
 msgid "Japanese"
 msgstr "日本語"
 
-#: models/renkan.py:37
+#: models/renkan.py:32
 msgid "edition_state"
 msgstr ""
 
-#: models/renkan.py:38
+#: models/renkan.py:33
 msgid "moderated_state"
 msgstr ""
 
-#: models/renkan.py:39
+#: models/renkan.py:34
 msgid "published_state"
 msgstr ""
 
-#: models/renkan.py:40
+#: models/renkan.py:35
 msgid "rejected_state"
 msgstr ""
 
 #: templates/a_propos.html:5 templates/base.html:43 templates/base.html.py:75
-#: templates/base.html:96
+#: templates/base.html:97
 msgid "A Propos"
 msgstr ""
 
@@ -67,17 +67,17 @@
 msgid "Accueil"
 msgstr ""
 
-#: templates/base.html:39 templates/base.html.py:91 templates/index.html:44
+#: templates/base.html:39 templates/base.html.py:92 templates/index.html:44
 #, fuzzy
 msgid "Recherche"
 msgstr "タグを検索する"
 
-#: templates/base.html:40 templates/base.html.py:92
+#: templates/base.html:40 templates/base.html.py:93
 #, fuzzy
 msgid "Domaines Artistiques"
 msgstr "学術・芸術分野"
 
-#: templates/base.html:41 templates/base.html.py:93
+#: templates/base.html:41 templates/base.html.py:94
 msgid "Thésaurus"
 msgstr ""
 
@@ -99,15 +99,20 @@
 msgid "Mentions légales"
 msgstr ""
 
-#: templates/base.html:90
+#: templates/base.html:78 templates/envelope/contact.html:6
+#: templates/envelope/contact.html.py:16
+msgid "Contact"
+msgstr ""
+
+#: templates/base.html:91
 msgid "Rubriques"
 msgstr ""
 
-#: templates/base.html:95
+#: templates/base.html:96
 msgid "Renkan repères"
 msgstr ""
 
-#: templates/base.html:102
+#: templates/base.html:103
 msgid "Liens"
 msgstr ""
 
@@ -490,26 +495,26 @@
 msgid "Ressources"
 msgstr ""
 
-#: templates/renkan_edit.html:191
+#: templates/renkan_edit.html:192
 msgid "Change organisation"
 msgstr ""
 
-#: templates/renkan_edit.html:192
+#: templates/renkan_edit.html:193
 msgid "(Indisponible si modification du RENKAN)"
 msgstr ""
 
-#: templates/renkan_edit.html:195 templates/renkan_edit.html.py:199
-#: templates/renkan_edit.html:203
-msgid "View graph in column"
-msgstr ""
-
 #: templates/renkan_edit.html:196 templates/renkan_edit.html.py:200
 #: templates/renkan_edit.html:204
-msgid "View graph in line"
+msgid "View graph in column"
 msgstr ""
 
 #: templates/renkan_edit.html:197 templates/renkan_edit.html.py:201
 #: templates/renkan_edit.html:205
+msgid "View graph in line"
+msgstr ""
+
+#: templates/renkan_edit.html:198 templates/renkan_edit.html.py:202
+#: templates/renkan_edit.html:206
 msgid "View graph in circle"
 msgstr ""
 
@@ -585,6 +590,19 @@
 msgid "reject renkan"
 msgstr ""
 
+#: templates/envelope/contact.html:19
+msgid ""
+"\n"
+"        <p>Vous souhaitez poser une question sur Histoire des arts' Lab ?</"
+"p>\n"
+"        <p>Remplissez le formulaire suivant :</p>\n"
+"        "
+msgstr ""
+
+#: templates/envelope/contact.html:29
+msgid "Send!"
+msgstr ""
+
 #: templates/registration/activate.html:5
 msgid "Registration - Activated"
 msgstr ""
Binary file src/hdalab/locale/zh-tw/LC_MESSAGES/django.mo has changed
--- a/src/hdalab/locale/zh-tw/LC_MESSAGES/django.po	Mon Mar 09 11:03:57 2015 +0100
+++ b/src/hdalab/locale/zh-tw/LC_MESSAGES/django.po	Mon Mar 09 11:05:44 2015 +0100
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-03-06 07:38-0600\n"
+"POT-Creation-Date: 2015-03-08 20:09-0500\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -42,24 +42,24 @@
 msgid "Japanese"
 msgstr ""
 
-#: models/renkan.py:37
+#: models/renkan.py:32
 msgid "edition_state"
 msgstr ""
 
-#: models/renkan.py:38
+#: models/renkan.py:33
 msgid "moderated_state"
 msgstr ""
 
-#: models/renkan.py:39
+#: models/renkan.py:34
 msgid "published_state"
 msgstr ""
 
-#: models/renkan.py:40
+#: models/renkan.py:35
 msgid "rejected_state"
 msgstr ""
 
 #: templates/a_propos.html:5 templates/base.html:43 templates/base.html.py:75
-#: templates/base.html:96
+#: templates/base.html:97
 msgid "A Propos"
 msgstr ""
 
@@ -67,17 +67,17 @@
 msgid "Accueil"
 msgstr ""
 
-#: templates/base.html:39 templates/base.html.py:91 templates/index.html:44
+#: templates/base.html:39 templates/base.html.py:92 templates/index.html:44
 #, fuzzy
 msgid "Recherche"
 msgstr "Rechercher un tag"
 
-#: templates/base.html:40 templates/base.html.py:92
+#: templates/base.html:40 templates/base.html.py:93
 #, fuzzy
 msgid "Domaines Artistiques"
 msgstr "Disciplines artistiques"
 
-#: templates/base.html:41 templates/base.html.py:93
+#: templates/base.html:41 templates/base.html.py:94
 msgid "Thésaurus"
 msgstr ""
 
@@ -99,15 +99,20 @@
 msgid "Mentions légales"
 msgstr ""
 
-#: templates/base.html:90
+#: templates/base.html:78 templates/envelope/contact.html:6
+#: templates/envelope/contact.html.py:16
+msgid "Contact"
+msgstr ""
+
+#: templates/base.html:91
 msgid "Rubriques"
 msgstr ""
 
-#: templates/base.html:95
+#: templates/base.html:96
 msgid "Renkan repères"
 msgstr ""
 
-#: templates/base.html:102
+#: templates/base.html:103
 msgid "Liens"
 msgstr ""
 
@@ -490,26 +495,26 @@
 msgid "Ressources"
 msgstr ""
 
-#: templates/renkan_edit.html:191
+#: templates/renkan_edit.html:192
 msgid "Change organisation"
 msgstr ""
 
-#: templates/renkan_edit.html:192
+#: templates/renkan_edit.html:193
 msgid "(Indisponible si modification du RENKAN)"
 msgstr ""
 
-#: templates/renkan_edit.html:195 templates/renkan_edit.html.py:199
-#: templates/renkan_edit.html:203
-msgid "View graph in column"
-msgstr ""
-
 #: templates/renkan_edit.html:196 templates/renkan_edit.html.py:200
 #: templates/renkan_edit.html:204
-msgid "View graph in line"
+msgid "View graph in column"
 msgstr ""
 
 #: templates/renkan_edit.html:197 templates/renkan_edit.html.py:201
 #: templates/renkan_edit.html:205
+msgid "View graph in line"
+msgstr ""
+
+#: templates/renkan_edit.html:198 templates/renkan_edit.html.py:202
+#: templates/renkan_edit.html:206
 msgid "View graph in circle"
 msgstr ""
 
@@ -585,6 +590,19 @@
 msgid "reject renkan"
 msgstr ""
 
+#: templates/envelope/contact.html:19
+msgid ""
+"\n"
+"        <p>Vous souhaitez poser une question sur Histoire des arts' Lab ?</"
+"p>\n"
+"        <p>Remplissez le formulaire suivant :</p>\n"
+"        "
+msgstr ""
+
+#: templates/envelope/contact.html:29
+msgid "Send!"
+msgstr ""
+
 #: templates/registration/activate.html:5
 msgid "Registration - Activated"
 msgstr ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/management/commands/calculate_preview.py	Mon Mar 09 11:05:44 2015 +0100
@@ -0,0 +1,59 @@
+# -*- coding: utf-8 -*-
+'''
+Created on Jan 30, 2012
+
+@author: ymh
+'''
+
+import logging
+from optparse import make_option
+
+from django.conf import settings
+from django.core.management.base import NoArgsCommand
+from django.core.management.color import no_style
+
+from hdabo.utils import show_progress
+from hdalab.models.renkan import HdalabRenkan
+from hdalab.services import renkan_capture_preview
+
+
+logger = logging.getLogger(__name__)
+
+class Command(NoArgsCommand):
+    '''
+    calculate renkan preview.
+    '''
+    options = ''
+    help = """calculate renkan preview."""
+    
+    option_list = NoArgsCommand.option_list + (
+        make_option('--all',
+            action='store_true',
+            dest='all',
+            default=False,
+            help='force all tags to be updated, not only those not yet processed'),
+    )
+    
+
+    def handle_noargs(self, **options):
+                
+        self.style = no_style()
+        
+        self.all = options.get('all', False)
+
+        queryset = HdalabRenkan.objects.filter(state=HdalabRenkan.PUBLISHED)
+        
+        if not self.all:
+            queryset = queryset.filter(renkan__image = settings.DEFAULT_RENKAN_ICON)
+
+        count = queryset.count()
+
+        writer = None
+        for i,hdalab_renkan in enumerate(queryset.select_related()):
+            writer = show_progress(i+1, count, hdalab_renkan.renkan.title, 50, writer)
+            if hdalab_renkan.renkan.image and hdalab_renkan.renkan.image != settings.DEFAULT_RENKAN_ICON:
+                hdalab_renkan.renkan.image.delete(False)
+                hdalab_renkan.renkan.image.delete_thumbnails()
+
+            renkan_capture_preview(hdalab_renkan)
+
--- a/src/hdalab/models/__init__.py	Mon Mar 09 11:03:57 2015 +0100
+++ b/src/hdalab/models/__init__.py	Mon Mar 09 11:05:44 2015 +0100
@@ -3,4 +3,6 @@
 from hdalab.models.dataviz import TagYears, Country, GeoInclusion, TagLinks, DbpediaFields, HdaSession, InseeCoords, DatasheetExtras, DbpediaFieldsTranslation
 from hdalab.models.renkan import HdalabRenkan, HdalabRenkanStateTransition
 
-__all__ = ['WpCategory', 'InfoboxParameter', 'TagInfobox', 'TagWpCategory', 'TagYears', 'Country', 'GeoInclusion', 'TagLinks', 'DbpediaFields', 'DbpediaFieldsTranslation', 'HdaSession', 'InseeCoords', 'DatasheetExtras', 'WpCategoryInclusion', 'HdalabRenkan', 'HdalabRenkanStateTransition']
\ No newline at end of file
+__all__ = ['WpCategory', 'InfoboxParameter', 'TagInfobox', 'TagWpCategory', 'TagYears', 'Country', 'GeoInclusion', 'TagLinks', 'DbpediaFields', 'DbpediaFieldsTranslation', 'HdaSession', 'InseeCoords', 'DatasheetExtras', 'WpCategoryInclusion', 'HdalabRenkan', 'HdalabRenkanStateTransition']
+
+import hdalab.signals
\ No newline at end of file
--- a/src/hdalab/models/renkan.py	Mon Mar 09 11:03:57 2015 +0100
+++ b/src/hdalab/models/renkan.py	Mon Mar 09 11:05:44 2015 +0100
@@ -8,12 +8,7 @@
 from renkanmanager.models import Renkan
 
 from django.conf import settings
-from django.core.mail.message import EmailMultiAlternatives
 from django.db import models
-from django.db.models.signals import post_save
-from django.template.base import TemplateDoesNotExist
-from django.template.loader import render_to_string
-from django.utils.html import strip_tags
 from django.utils.translation import ugettext as _
 
 
@@ -50,7 +45,7 @@
 
 class HdalabRenkanStateTransition(models.Model):
 
-    renkan = models.ForeignKey(HdalabRenkan, blank=False, null=False)
+    renkan = models.ForeignKey(HdalabRenkan, blank=False, null=False, related_name='states')
     from_state = models.IntegerField(choices=HdalabRenkan.STATE_CHOICES, default=1, blank=False, null=False)
     to_state = models.IntegerField(choices=HdalabRenkan.STATE_CHOICES, default=1, blank=False, null=False)
     ts = models.DateTimeField(auto_now_add=True, blank=False, null=False)
@@ -59,50 +54,4 @@
     
     class Meta:
         app_label = 'hdalab'
-
-MAIL_TEMPLATES = {
-    (HdalabRenkan.MODERATED,HdalabRenkan.PUBLISHED): ("mails/published_renkan", "Renkan publié"),
-    (HdalabRenkan.MODERATED,HdalabRenkan.REJECTED): ("mails/rejected_renkan", "Renkan rejeté"),
-    (HdalabRenkan.PUBLISHED, HdalabRenkan.EDITION): ("mails/unpublished_renkan", "Renkan dépublié"),
-}
-
-
-#TODO put into queue
-def send_renkan_moderation_messages(sender, **kwargs):
-    renkan_state = kwargs.get('instance', None)
-    if not renkan_state or (renkan_state.from_state,renkan_state.to_state) not in MAIL_TEMPLATES:
-        return
-
-    template_key = (renkan_state.from_state,renkan_state.to_state)
-    msg_txt = ""
-    msg_html = ""
-    subject = ""
-    try:
-        template_name, subject = MAIL_TEMPLATES[template_key]
-#        template = loader.get_template(template_name)
-        context = {'renkan_state': renkan_state, 'WEB_URL': settings.WEB_URL}
-        msg_html = render_to_string(template_name+".txt", context)
-        msg_txt = render_to_string(template_name+".html", context)
-    except TemplateDoesNotExist:
-        logger.error("Mail template %s for state %s not found", MAIL_TEMPLATES[template_key], HdalabRenkan.STATE_CHOICES_DICT[renkan_state.to_state])
-        return
-    except Exception as e:
-        logger.error("Error rendering template %s for state %s : %r", MAIL_TEMPLATES[template_key], HdalabRenkan.STATE_CHOICES_DICT[renkan_state.to_state], e)
-    
-    if msg_txt and msg_html and renkan_state.renkan and renkan_state.renkan.renkan and renkan_state.renkan.renkan.owner and renkan_state.renkan.renkan.owner.email:
-        logger.debug("Sending following mail to %s : %s", renkan_state.renkan.renkan.owner.email, msg_txt)
-        emsg = EmailMultiAlternatives(subject, strip_tags(msg_txt), settings.DEFAULT_FROM_EMAIL, [renkan_state.renkan.renkan.owner.email])
-        emsg.attach_alternative(msg_html, "text/html")
-        emsg.send(fail_silently=True)
-
-
-def queue_renkan_rendering(sender, **kwargs):
-    pass
-    #check state
-    #queue renkan for endering
-    
-    
-RENKAN_MODERATION_UUID = "e2f84503-609b-4efa-819d-908e2efe7b1b"
-RENKAN_RENDERING_UUID = "b8830748-be2b-479a-8aef-c8d952437b2f"
-
-post_save.connect(send_renkan_moderation_messages, sender=HdalabRenkanStateTransition, dispatch_uid=RENKAN_MODERATION_UUID)
+        ordering = ["-ts"]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/scripts/capture-phantomjs.js	Mon Mar 09 11:05:44 2015 +0100
@@ -0,0 +1,56 @@
+//from https://github.com/makinacorpus/django-screamshot
+
+var page = require('webpage').create(),
+    system = require('system');
+
+/** 
+ * arguments:
+ * [1] => URL
+ * [2] => output. Use /dev/stdout if you want to capture.
+ * [3] => size
+ */
+
+var address = system.args[1],
+    output  = system.args[2];
+
+config = {}
+system.args.forEach(function(arg, i) {
+    if (i > 2) {
+        namev = arg.split('=');
+        config[namev[0].replace('--', '')] = namev[1];
+    }
+});
+
+var method = config.method || 'get',
+     width = config.width || 1400,
+    height = config.height || 1,
+      wait = config.wait || 200;
+
+/**
+ * please note: the default height is intentionaly left as 1.
+ * the thing is, if you skip the height, phantomjs falls back
+ * to some default viewport. and that's not what we want. we
+ * want to set the width, and let the height auto-calculate.
+ */
+page.viewportSize = {width: width, height: height}
+
+format = config.format || 'png';
+
+if (format == 'pdf') {
+    page.paperSize = {
+        format: 'A4',
+        orientation: config.orientation || 'portrait',
+        margin: config.margin || '0cm'
+    }
+}
+
+page.settings.resourceTimeout = 10000;
+
+page.open(address, function(status){
+    if (status == 'success') {
+        setTimeout(function(){
+            page.render(output, {format: format});
+            phantom.exit();
+        }, wait);
+    }
+});
--- a/src/hdalab/services.py	Mon Mar 09 11:03:57 2015 +0100
+++ b/src/hdalab/services.py	Mon Mar 09 11:05:44 2015 +0100
@@ -5,12 +5,20 @@
 @author: ymh
 '''
 import logging
+import os
 
+from django.conf import settings
+from django.core.urlresolvers import reverse
 from django.db import transaction
 
 from hdalab.models.renkan import HdalabRenkanStateTransition
 
 
+from subprocess import check_call
+
+
+
+
 logger = logging.getLogger(__name__)
 
 @transaction.atomic
@@ -22,3 +30,42 @@
         hda_renkan.state = state
         hda_renkan.save()
         
+
+def renkan_capture_preview(hdalab_renkan):
+    #get last state date or last modification date
+    #states are ordered by ts
+    folder_date = hdalab_renkan.renkan.modification_date
+    states = hdalab_renkan.states
+    state = None
+    if states.count() > 0:
+        state = states.all()[0]
+    if state:
+        folder_date =  state.ts
+
+    rel_export_path_dir = "thumbnails/renkan/%04d/%02d/%02d" % (folder_date.year, folder_date.month, folder_date.day)
+    export_path_dir = os.path.join(settings.MEDIA_ROOT,rel_export_path_dir)
+    export_filename = "%s.png" % hdalab_renkan.renkan.rk_id
+    
+    export_path = os.path.join(export_path_dir, export_filename)
+    rel_export_path = os.path.join(rel_export_path_dir, export_filename)
+    
+    if not os.path.exists(export_path_dir):
+        os.makedirs(export_path_dir)
+        
+    preview_dim = getattr(settings, 'RENKAN_PREVIEW_DIM', (500,500))
+    preview_wait = getattr(settings, 'RENKAN_PREVIEW_WAIT', 5000)
+
+    preview_args = [
+        getattr(settings,'RENKAN_PREVIEW_PHANTOMJS_PATH','phantomjs'),
+        os.path.join(os.path.dirname(os.path.abspath(__file__)),'scripts/capture-phantomjs.js'),
+        "%s%shdalab%s?rk_id=%s" % (settings.WEB_URL, settings.BASE_URL, reverse('renkan_full'),hdalab_renkan.renkan.rk_id),
+        export_path,
+        "--width=%d" % preview_dim[0],
+        "--height=%d" % preview_dim[1],
+        "--wait=%d" % preview_wait
+    ]
+    check_call(preview_args)
+    
+    hdalab_renkan.renkan.image = rel_export_path
+    hdalab_renkan.renkan.save()
+
--- a/src/hdalab/settings.py	Mon Mar 09 11:03:57 2015 +0100
+++ b/src/hdalab/settings.py	Mon Mar 09 11:05:44 2015 +0100
@@ -149,7 +149,10 @@
     'django.contrib.staticfiles',
     'django.contrib.admin',
     'django_extensions',
+    'djcelery_email',
     'registration',
+    'honeypot',
+    'envelope',
     'haystack',
     'easy_thumbnails',
     'renkanmanager',
@@ -177,6 +180,16 @@
 
 LOCALE_PATHS = ()
 
+RENKAN_PREVIEW_DIM = (500,500)
+RENKAN_PREVIEW_WAIT = 5000
+
+CELERY_TASK_SERIALIZER = 'json'
+CELERY_ACCEPT_CONTENT = ['json', 'msgpack', 'yaml']
+
+EMAIL_BACKEND = 'djcelery_email.backends.CeleryEmailBackend'
+
+HONEYPOT_FIELD_NAME='phone'
+ENVELOPE_SUBJECT_INTRO='[hdalab contact]'
 
 from hdalab.config import * #@UnusedWildImport
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/signals.py	Mon Mar 09 11:05:44 2015 +0100
@@ -0,0 +1,88 @@
+# -*- coding: utf-8 -*-
+'''
+Created on Mar 8, 2015
+
+@author: ymh
+'''
+import logging
+
+from django.conf import settings
+from django.core.mail.message import EmailMultiAlternatives
+from django.db.models.signals import post_save, pre_delete
+from django.template.base import TemplateDoesNotExist
+from django.template.loader import render_to_string
+from django.utils.html import strip_tags
+
+from hdalab.models.renkan import HdalabRenkan, HdalabRenkanStateTransition
+from renkanmanager.models import Renkan
+
+
+logger = logging.getLogger(__name__)
+
+MAIL_TEMPLATES = {
+    (HdalabRenkan.MODERATED,HdalabRenkan.PUBLISHED): ("mails/published_renkan", "Renkan publié"),
+    (HdalabRenkan.MODERATED,HdalabRenkan.REJECTED): ("mails/rejected_renkan", "Renkan rejeté"),
+    (HdalabRenkan.PUBLISHED, HdalabRenkan.EDITION): ("mails/unpublished_renkan", "Renkan dépublié"),
+}
+
+
+#TODO put into queue
+def send_renkan_moderation_messages(sender, **kwargs):
+    renkan_state = kwargs.get('instance', None)
+    if not renkan_state or (renkan_state.from_state,renkan_state.to_state) not in MAIL_TEMPLATES:
+        return
+
+    template_key = (renkan_state.from_state,renkan_state.to_state)
+    msg_txt = ""
+    msg_html = ""
+    subject = ""
+    try:
+        template_name, subject = MAIL_TEMPLATES[template_key]
+#        template = loader.get_template(template_name)
+        context = {'renkan_state': renkan_state, 'WEB_URL': settings.WEB_URL}
+        msg_html = render_to_string(template_name+".txt", context)
+        msg_txt = render_to_string(template_name+".html", context)
+    except TemplateDoesNotExist:
+        logger.error("Mail template %s for state %s not found", MAIL_TEMPLATES[template_key], HdalabRenkan.STATE_CHOICES_DICT[renkan_state.to_state])
+        return
+    except Exception as e:
+        logger.error("Error rendering template %s for state %s : %r", MAIL_TEMPLATES[template_key], HdalabRenkan.STATE_CHOICES_DICT[renkan_state.to_state], e)
+    
+    if msg_txt and msg_html and renkan_state.renkan and renkan_state.renkan.renkan and renkan_state.renkan.renkan.owner and renkan_state.renkan.renkan.owner.email:
+        logger.debug("Sending following mail to %s : %s", renkan_state.renkan.renkan.owner.email, msg_txt)
+        emsg = EmailMultiAlternatives(subject, strip_tags(msg_txt), settings.DEFAULT_FROM_EMAIL, [renkan_state.renkan.renkan.owner.email])
+        emsg.attach_alternative(msg_html, "text/html")
+        emsg.send(fail_silently=True)
+
+
+def queue_renkan_rendering(sender, **kwargs):
+    renkan_state = kwargs.get('instance', None)
+    if not renkan_state:
+        return
+    
+    if renkan_state.from_state == HdalabRenkan.PUBLISHED and renkan_state.renkan.renkan.image != settings.DEFAULT_RENKAN_ICON:
+        if renkan_state.renkan.renkan.image:
+            renkan_state.renkan.renkan.image.delete(False)
+            renkan_state.renkan.renkan.image.delete_thumbnails()
+        renkan_state.renkan.renkan.image = settings.DEFAULT_RENKAN_ICON
+        renkan_state.renkan.renkan.save()
+    elif renkan_state.to_state == HdalabRenkan.PUBLISHED:
+        from hdalab.tasks import capture_preview
+        capture_preview.delay(renkan_state.renkan.renkan.rk_id)  # @UndefinedVariable
+
+def renkan_delete_image(sender, **kwargs):
+    renkan = kwargs.get('instance', None)
+    if not renkan or not renkan.image or renkan.image == settings.DEFAULT_RENKAN_ICON:
+        return
+    renkan.image.delete(False)
+    renkan.image.delete_thumbnails()
+
+    
+RENKAN_MODERATION_UUID = "e2f84503-609b-4efa-819d-908e2efe7b1b"
+RENKAN_RENDERING_UUID = "b8830748-be2b-479a-8aef-c8d952437b2f"
+RENKAN_DELETE_UUID = "09c23ca2-4d59-4c29-b94a-2c2672d5a89b"
+
+post_save.connect(send_renkan_moderation_messages, sender=HdalabRenkanStateTransition, dispatch_uid=RENKAN_MODERATION_UUID)
+post_save.connect(queue_renkan_rendering, sender=HdalabRenkanStateTransition, dispatch_uid=RENKAN_RENDERING_UUID)
+pre_delete.connect(renkan_delete_image, sender=Renkan, dispatch_uid=RENKAN_DELETE_UUID)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/static/hdalab/css/contact.css	Mon Mar 09 11:05:44 2015 +0100
@@ -0,0 +1,88 @@
+@CHARSET "UTF-8";
+
+#contact-description {
+  margin-bottom: 20px;
+}
+
+#contact-div {
+  width: 500px;
+  padding: 10px;
+  background-color: rgb(230, 230, 230);
+  border-radius: 2px;
+  margin: auto;
+}
+
+#contact-div p {
+  color: #4f5451;
+  font-size: 14px;
+  font-size: 1.4rem;
+  margin: 10px 30px;
+  clear: right;
+}
+#contact-div label{
+  font-size: 14px;
+  font-size: 1.4rem;
+  line-height: 3.4; 
+  display: block;
+}
+#contact-div .error input, #contact-div .error select {
+    border: 2px red solid;
+}
+
+#contact-div input[type="text"],
+#contact-div input[type="email"],
+#contact-div textarea {
+  border:0;
+  box-sizing: border-box;
+  color: #4f5451;
+  font-size: 12px;
+  font-size: 1.2rem;
+  font-weight: 300;
+  width: 100%;
+  border-radius: 2px;
+}
+
+#contact-div input[type="text"],
+#contact-div input[type="email"] {
+  height: 50px;
+  padding: 0 20px;
+}
+
+#contact-div textarea {
+  height: 200px;
+  padding: 5px 5px;
+}
+
+
+#contact-div input[type="text"]:focus,
+#contact-div input[type="email"]:focus,
+#contact-div textarea:focus {
+    background-color: rgba(255, 255, 255, 1);
+    border:1px solid #7cb0bd;
+}
+#contact-div input[type="submit"] {
+  content: " ";
+  height: 30px;
+  border: 0;
+  color: #fff;
+  font-size: 14px;
+  font-size: 1.4rem;
+  font-weight: 300;
+  background-color: #7cb0bd;
+  border-radius: 2px;
+  transition: background-color 0.3s ease;
+  cursor:pointer;
+  margin: 10px 0;
+/*   float: right; */
+}
+#contact-div input[type="submit"]:hover {
+  background-color: #4f5451;
+}
+
+#contact-div .btn-submit {
+    text-align: right;
+}
+
+#contact-div fieldset {
+  border: none;
+}
--- a/src/hdalab/static/hdalab/css/footer.css	Mon Mar 09 11:03:57 2015 +0100
+++ b/src/hdalab/static/hdalab/css/footer.css	Mon Mar 09 11:05:44 2015 +0100
@@ -7,7 +7,7 @@
   background-color: #7cb0bd;
 }
 #footer .nav .row {
-	width: 311px;
+	width: 400px;
 }
 #footer .nav ul {
   float: left;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/static/hdalab/css/full_renkan.css	Mon Mar 09 11:05:44 2015 +0100
@@ -0,0 +1,7 @@
+.rnk-full-wrapper, .rnk-full-container{
+    width: 100%;
+}
+.rnk-full-container{
+    height: 100%;
+    width: 100%;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/tasks.py	Mon Mar 09 11:05:44 2015 +0100
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+'''
+Created on Mar 7, 2015
+
+@author: ymh
+'''
+from __future__ import absolute_import
+
+from celery import shared_task
+
+from hdalab.models.renkan import HdalabRenkan
+from hdalab.services import renkan_capture_preview
+
+
+@shared_task
+def capture_preview(rk_id):
+    
+    hdalab_renkan = HdalabRenkan.objects.filter(renkan__rk_id=rk_id).select_related().get()
+    
+    renkan_capture_preview(hdalab_renkan)
\ No newline at end of file
--- a/src/hdalab/templates/base.html	Mon Mar 09 11:03:57 2015 +0100
+++ b/src/hdalab/templates/base.html	Mon Mar 09 11:05:44 2015 +0100
@@ -75,6 +75,7 @@
                         <li><a href="{% url 'a_propos'%}">{% trans 'A Propos' %}</a></li>
                         <li><a href="{% url 'credits'%}">{% trans 'Crédits' %}</a></li>
                         <li><a href="{% url 'mentions_legales'%}">{% trans 'Mentions légales' %}</a></li>
+                        <li><a href="{% url 'envelope-contact'%}">{% trans 'Contact' %}</a></li>
                     </ul>
                 </div>
             </div>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/templates/envelope/contact.html	Mon Mar 09 11:05:44 2015 +0100
@@ -0,0 +1,32 @@
+{% extends "base.html" %}
+{% load static %}
+{% load i18n %}
+{% load envelope_tags %}
+
+{% block title %}{% trans "Contact" %}{% endblock %}
+
+{% block css_import %}
+{{block.super}}
+        <link rel="stylesheet" type="text/css" href="{% static 'hdalab/css/contact.css' %}" />
+{% endblock %}
+
+
+{% block main_content %}
+    <div class="all-title">
+        <h1><strong>{% trans "Contact" %}</strong></h1>
+    </div>
+    <div id="contact-description" class="description">
+        {% blocktrans %}
+        <p>Vous souhaitez poser une question sur Histoire des arts' Lab ?</p>
+        <p>Remplissez le formulaire suivant :</p>
+        {% endblocktrans %}
+    </div>
+    <div id="contact-div">
+    <form action="{% url 'envelope-contact' %}" method="post">
+    {% csrf_token %}
+    {% antispam_fields %}
+    {{ form.as_p }}
+    <p><input type="submit" value="{% trans "Send!" %}" /></p>
+    </form>
+    </div>
+{% endblock %}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/templates/envelope/email_body.html	Mon Mar 09 11:05:44 2015 +0100
@@ -0,0 +1,107 @@
+{% load i18n %}<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1">
+  <title>Message du formulaire de contact hdalab</title>
+  <!-- Designed by https://github.com/kaytcat -->
+  <!-- Robot header image designed by Freepik.com -->
+  <style type="text/css" media="only screen and (max-width: 480px)">
+    /* Mobile styles */
+    @media only screen and (max-width: 480px) {
+      table[class="w320"] {
+        width: 320px;
+      }
+      td[class="mobile-block"] {
+        width: 100%;
+        display: block;
+      }
+    }
+  </style>
+</head>
+<body style="-webkit-font-smoothing:antialiased; width:100%; height:100%; color:#37302d; font-size:16px; padding:0; margin:0; display:block; background:#ffffff; -webkit-text-size-adjust:none" bgcolor="#ffffff" width="100%" height="100%">
+<table align="center" cellpadding="0" cellspacing="0" height="100%" style="border-collapse:collapse; width:100%" width="100%">
+  <tr>
+    <td align="center" valign="top" bgcolor="#ffffff" width="100%" style="font-family:Helvetica, Arial, sans-serif; font-weight:400; text-align:center">
+      <center>
+        <table style="border-collapse:collapse; margin:0 auto" cellpadding="0" cellspacing="0" width="600">
+          <tr>
+            <td align="center" valign="top" style="font-family:Helvetica, Arial, sans-serif; font-weight:400; text-align:center">
+                <table style="border-collapse:collapse; width:100%; margin:0 auto" cellpadding="0" cellspacing="0" width="100%">
+                  <tr>
+                    <td style="font-family:Helvetica, Arial, sans-serif; font-weight:400; font-size:30px; text-align:center" align="center">
+                      <br>
+                        Message du formulaire de contact hdalab
+                      <br>
+                      <br>
+                    </td>
+                  </tr>
+                </table>
+                <table style="border-collapse:collapse; width:100%; margin:0 auto" cellpadding="0" cellspacing="0" bgcolor="#4dbfbf" width="100%">
+                  <tr>
+                    <td style="font-family:Helvetica, Arial, sans-serif; font-weight:400; text-align:center" align="center">
+                    <br>
+                      <img src="https://www.filepicker.io/api/file/TjmeNWS5Q2SFmtJlUGLf" width="224" height="240" alt="robot picture">
+                    </td>
+                  </tr>
+                  <tr>
+                    <td style="font-family:Helvetica, Arial, sans-serif; font-weight:400; text-align:center; color:#ffffff; font-size:36px" align="center">
+                        {{ subject }}
+                    </td>
+                  </tr>
+                  <tr>
+                    <td style="font-family:Helvetica, Arial, sans-serif; font-weight:400; text-align:center" align="center">
+                      <center>
+                        <table style="border-collapse:collapse; margin:0 auto" cellpadding="0" cellspacing="0" width="60%">
+                          <tr>
+                            <td style="font-family:Helvetica, Arial, sans-serif; font-weight:400; text-align:center; color:#187272" align="center">
+                            <br>
+                            {{ message }}
+                            <br>
+                            <br>
+                            </td>
+                          </tr>
+                        </table>
+                      </center>
+                    </td>
+                  </tr>
+                </table>
+                <table style="border-collapse:collapse; width:100%; margin:0 auto" cellpadding="0" cellspacing="0" bgcolor="#f5774e" width="100%">
+                  <tr>
+                    <td style="font-family:Helvetica, Arial, sans-serif; font-weight:400; text-align:center; background-color:#f5774e" bgcolor="#f5774e" align="center">
+                    <center>
+                      <table style="border-collapse:collapse; width:80%; margin:0 auto" cellspacing="0" cellpadding="0" width="80%">
+                        <tr>
+                          <td style="font-family:Helvetica, Arial, sans-serif; font-weight:400; text-align:left; color:#933f24" align="left">
+                          <br>
+                          <br>
+                          Envoyeur: {{ sender }}
+                          </td>
+                          <td style="font-family:Helvetica, Arial, sans-serif; font-weight:400; text-align:right; vertical-align:top; color:#933f24" align="right">
+                          <br>
+                          <br>
+                          {{ email }}
+                          </td>
+                        </tr>
+                      </table>
+                      <table style="border-collapse:collapse; width:80%; margin:0 auto" cellspacing="0" cellpadding="0" width="80%">
+                        <tr>
+                          <td style="font-family:Helvetica, Arial, sans-serif; font-weight:400; color:#933f24; text-align:left; border-bottom:1px solid #933f24" align="left">
+                          <br>
+                          <br>
+                          </td>
+                        </tr>
+                      </table>
+                    </center>
+                    </td>
+                  </tr>
+                </table>
+            </td>
+          </tr>
+        </table>
+    </center>
+    </td>
+  </tr>
+</table>
+</body>
+</html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/templates/envelope/email_body.txt	Mon Mar 09 11:05:44 2015 +0100
@@ -0,0 +1,7 @@
+{% load i18n %}
+Message du formulaire de contact hdalab
+Envoyeur : {{ sender }} ({{ email }})
+Vici le message
+================================================================================
+{{ message }}
+================================================================================
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/hdalab/templates/renkan_view_full.html	Mon Mar 09 11:05:44 2015 +0100
@@ -0,0 +1,56 @@
+{% load static %}
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{{LANGUAGE_CODE}}" lang="{{LANGUAGE_CODE}}">
+    <head>
+        <meta charset="utf-8" />
+        <meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
+        <meta http-equiv="content-language" content="{{LANGUAGE_CODE}}" />
+        <link rel="SHORTCUT ICON" href="{% static 'hdalab/img/favicon.ico' %}" />
+        <title>HdA Lab renkan view &gt; {{datasheet.title}}</title>
+        <link rel="stylesheet" type="text/css" href="{% static 'hdalab/css/common.css' %}" />
+        <link rel="stylesheet" type="text/css" href="{% static 'hdalab/css/additionnal_renkan.css' %}" />
+        <link rel="stylesheet" type="text/css" href="{% static 'hdalab/css/full_renkan.css' %}" />
+        <link rel="stylesheet" type="text/css" href="{% static 'renkanmanager/lib/renkan/css/renkan.css' %}" />
+        <script src="{% static 'hdalab/lib/jquery.min.js' %}"></script>
+        <script src="{% static 'renkanmanager/lib/jquery-mousewheel/jquery.mousewheel.js' %}"></script>
+        <script src="{% static 'renkanmanager/lib/underscore/underscore.js' %}"></script>
+        <script src="{% static 'renkanmanager/lib/backbone/backbone.js' %}"></script>
+        <script src="{% static 'renkanmanager/lib/backbone-relational/backbone-relational.js' %}"></script>
+        <script src="{% static 'renkanmanager/lib/paper/paper-full.js' %}"></script>
+        <script type="text/javascript">
+            var require = {
+                baseUrl: "{% static 'renkanmanager/lib/' %}"
+            };
+        </script>
+        <script src="{% static 'renkanmanager/lib/requirejs/require.js' %}"></script>
+        <script src="{% static 'renkanmanager/lib/renkan/js/renkan.js' %}"></script>
+        <script type="text/javascript">
+        
+            function startRenkan(){
+                var _renkan = new Rkns.Renkan({
+                    static_url : "{% static 'renkanmanager/lib/renkan/' %}",
+                    editor_mode: false,
+                    show_bins: false,
+                    show_export_button: false,
+                    show_top_bar: false,
+                    show_minimap: false,
+                    language: "fr"
+                });
+                Rkns.jsonIO(_renkan, {
+                    url: "{% url 'renkan_get_put' %}" + window.location.search
+                });
+            };
+        </script>
+    </head>
+    <body>
+      <main>
+        <div class="rnk-full-wrapper">
+          <div class="rnk-full-container">
+            <div id="renkan"></div>
+          </div>
+        </div>
+      </main>
+    </body>
+</html>
\ No newline at end of file
--- a/src/hdalab/urls.py	Mon Mar 09 11:03:57 2015 +0100
+++ b/src/hdalab/urls.py	Mon Mar 09 11:05:44 2015 +0100
@@ -40,6 +40,7 @@
     url(r'^renkan/edit/$', RenkanEdit.as_view(), name='renkan_edit'),
     url(r'^renkan/getput/$', HdalabRenkanGetPut.as_view(), name='renkan_get_put'),
     url(r'^renkan/view/$', TemplateView.as_view(template_name="renkan_view.html"), name='renkan_view'),
+    url(r'^renkan/full/$', TemplateView.as_view(template_name="renkan_view_full.html"), name='renkan_full'),
     url(r'^renkan/copy/(?P<rk_id>.+)$', login_required(HdalabRenkanCopy.as_view()), name='renkan_copy'),
     url(r'^renkan/delete/(?P<rk_id>.+)$', login_required(HdalabRenkanDelete.as_view()), name='renkan_delete'),
     url(r'^renkan/moderate/(?P<rk_id>.+)$', login_required(HdalabRenkanModerate.as_view()), name='renkan_moderate'),
@@ -56,9 +57,10 @@
     url(r'^edito/folder/(?P<folder_pk>[\w-]+)$', staff_member_required(HdalabAddOrUpdateFolder.as_view()), name='hdalab_add_or_update_folder'),
     url(r'^edito/deletefolder/(?P<folder_pk>[\w-]+)$', staff_member_required(HdalabDeleteFolder.as_view()), name='hdalab_delete_folder'),
     
-    url(r'^hdabo/a_propos/$', TemplateView.as_view(template_name="a_propos.html"), name='a_propos'),
-    url(r'^hdabo/credits/$', TemplateView.as_view(template_name="credits.html"), name='credits'),
-    url(r'^hdabo/mentions_legales/$', TemplateView.as_view(template_name="mentions_legales.html"), name='mentions_legales')
+    url(r'^hdalab/a_propos/$', TemplateView.as_view(template_name="a_propos.html"), name='a_propos'),
+    url(r'^hdalab/credits/$', TemplateView.as_view(template_name="credits.html"), name='credits'),
+    url(r'^hdalab/mentions_legales/$', TemplateView.as_view(template_name="mentions_legales.html"), name='mentions_legales'),
+    url(r'^hdalab/contact/', include('envelope.urls')),
 
 )
 
--- a/src/hdalab/utils.py	Mon Mar 09 11:03:57 2015 +0100
+++ b/src/hdalab/utils.py	Mon Mar 09 11:05:44 2015 +0100
@@ -4,12 +4,14 @@
 
 @author: ymh and tc
 '''
+import hashlib
+import logging
+import re
+
 from django.core.cache import cache
 from django.utils.encoding import smart_str
-import hashlib
-import re
 
-import logging
+
 logger = logging.getLogger(__name__)
 
 
@@ -29,4 +31,7 @@
     while n > 0:
         digits.insert(0, n % b)
         n  = n // b
-    return digits
\ No newline at end of file
+    return digits
+
+    
+    
\ No newline at end of file
--- a/virtualenv/res/lib/lib_create_env.py	Mon Mar 09 11:03:57 2015 +0100
+++ b/virtualenv/res/lib/lib_create_env.py	Mon Mar 09 11:05:44 2015 +0100
@@ -37,7 +37,7 @@
     'PYPARSING' : { 'setup': 'pyparsing', 'url': 'https://pypi.python.org/packages/source/p/pyparsing/pyparsing-2.0.3.tar.gz', 'local' : 'pyparsing-2.0.3.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
     'PIL' : { 'setup': 'pil', 'url': 'http://effbot.org/downloads/Imaging-1.1.7.tar.gz', 'local' : 'Imaging-1.1.7.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
     'EASYTHUMBNAIL' : { 'setup': 'easy-thumbnail', 'url': 'https://github.com/SmileyChris/easy-thumbnails/archive/2.2.tar.gz', 'local' : 'easy-thumbnails-2.2.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
-    'SIX' : { 'setup': 'six', 'url': 'https://pypi.python.org/packages/source/s/six/six-1.8.0.tar.gz', 'local' : 'six-1.8.0.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
+    'SIX' : { 'setup': 'six', 'url': 'https://pypi.python.org/packages/source/s/six/six-1.9.0.tar.gz', 'local' : 'six-1.9.0.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
     'SIMPLEJSON' : { 'setup': 'simplejson', 'url': 'https://github.com/simplejson/simplejson/archive/v3.6.5.tar.gz', 'local' : 'simplejson-3.6.5.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
     'HTML5LIB' : { 'setup': 'html5lib', 'url': 'https://github.com/html5lib/html5lib-python/archive/0.999.tar.gz', 'local' : 'html5lib-0.999.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
     'URLLIB3': { 'setup': 'urllib3', 'url':'https://github.com/shazow/urllib3/archive/1.9.1.tar.gz', 'local':"urllib3-1.9.1.tar.gz", 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
@@ -50,6 +50,15 @@
     'REDLAND_BINDINGS': { 'setup': 'redland_bindings', 'url':'redland-bindings-1.0.17.1.tar.gz', 'local':"redland-bindings-1.0.17.1.tar.gz", 'install': {'method': 'install_redland_bindings', 'option_str': None, 'dict_extra_env': None}},
     'UNIDECODE': { 'setup': 'unidecode', 'url':'https://pypi.python.org/packages/source/U/Unidecode/Unidecode-0.04.17.tar.gz', 'local':"Unidecode-0.04.17.tar.gz", 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
     'PYTZ': { 'setup': 'pytz', 'url':'https://pypi.python.org/packages/source/p/pytz/pytz-2014.10.tar.bz2', 'local':"pytz-2014.10.tar.bz2", 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
+    'KOMBU': { 'setup': 'kombu', 'url':'https://github.com/celery/kombu/archive/v3.0.24.tar.gz', 'local':"kombu-3.0.24.tar.gz", 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
+    'AMQP': { 'setup': 'amqp', 'url':'https://github.com/celery/py-amqp/archive/v1.4.6.tar.gz', 'local':"py-amqp-1.4.6.tar.gz", 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
+    'ANYJSON': { 'setup': 'anyjson', 'url':'https://bitbucket.org/runeh/anyjson/get/0.3.3.tar.gz', 'local':"anyjson-0.3.3.tar.gz", 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
+    'BILLIARD': { 'setup': 'billiard', 'url':'https://github.com/celery/billiard/archive/v3.3.0.19.tar.gz', 'local':"billiard-3.3.0.19.tar.gz", 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
+    'CELERY': { 'setup': 'celery', 'url':'https://github.com/celery/celery/archive/v3.1.17.tar.gz', 'local':"celery-3.1.17.tar.gz", 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
+    'APPCONF': { 'setup': 'django-appconf', 'url':'https://github.com/jezdez/django-appconf/archive/v1.0.1.tar.gz', 'local':"django-appconf-1.0.1.tar.gz", 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
+    'CELERY-EMAIL': { 'setup': 'django-celery-email', 'url':'https://github.com/pmclanahan/django-celery-email/archive/1.1.0.tar.gz', 'local':"django-celery-email-1.1.0.tar.gz", 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
+    'DJANGO-ENVELOPE': { 'setup': 'django-envelope', 'url':'https://github.com/zsiciarz/django-envelope/archive/1.0.0.tar.gz', 'local':'django-envelope-1.0.0.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
+    'DJANGO-HONEYPOT': { 'setup': 'django-honeypot', 'url':'https://github.com/sunlightlabs/django-honeypot/archive/0.3.0.tar.gz', 'local':'django-honeypot-0.3.0.tar.gz', 'install': {'method': 'pip', 'option_str': None, 'dict_extra_env': None}},
 }
 
 
Binary file virtualenv/res/src/SQLAlchemy-0.9.8.tar.gz has changed
Binary file virtualenv/res/src/amqp-1.4.6.tar.gz has changed
Binary file virtualenv/res/src/anyjson-0.3.3.tar.gz has changed
Binary file virtualenv/res/src/billiard-3.3.0.19.tar.gz has changed
Binary file virtualenv/res/src/celery-3.1.17.tar.gz has changed
Binary file virtualenv/res/src/django-appconf-1.0.1.tar.gz has changed
Binary file virtualenv/res/src/django-celery-email-1.1.0.tar.gz has changed
Binary file virtualenv/res/src/django-envelope-1.0.0.tar.gz has changed
Binary file virtualenv/res/src/django-honeypot-0.3.0.tar.gz has changed
Binary file virtualenv/res/src/django-registration-0.8.tar.gz has changed
Binary file virtualenv/res/src/kombu-3.0.24.tar.gz has changed
Binary file virtualenv/res/src/redland-1.0.11.tar.gz has changed
Binary file virtualenv/res/src/six-1.8.0.tar.gz has changed
Binary file virtualenv/res/src/six-1.9.0.tar.gz has changed
Binary file virtualenv/res/src/wikitools-1.1.1.tar.bz2 has changed
--- a/virtualenv/web/res/requirements.txt	Mon Mar 09 11:03:57 2015 +0100
+++ b/virtualenv/web/res/requirements.txt	Mon Mar 09 11:05:44 2015 +0100
@@ -1,31 +1,41 @@
+#-e git+git://github.com/IRI-Research/rdflib.git@96c30f98bbb628e13aaa32c9c392584b0fbf8788#egg=rdflib
 #STATIC_DEPS=true LIBXML2_VERSION=2.9.2 LIBXSLT_VERSION=1.1.28 LIBICONV_VERSION=1.14 pip install --no-index -r requirements.txt
 -f ../../res/src
 Django==1.6.10
 Pillow==2.6.1
 PyYAML==3.11
 SPARQLWrapper==1.6.4
+SQLAlchemy==0.9.8
 South==1.0.1
+Unidecode==0.04.17
 Whoosh==2.5.7
-easy-thumbnails==2.2
+amqp==1.4.6
+anyjson==0.3.3
+billiard==3.3.0.19
+celery==3.1.17
+django-appconf==1.0.1
+django-celery-email==1.1.0
+django-envelope==1.0
 django-extensions==1.4.4
 django-haystack==2.2.0
+django-honeypot==0.4.0
 django-registration==1.1
+easy-thumbnails==2.2
+elasticsearch==1.2.0
+html5lib==0.999
 httplib2==0.9
-html5lib==0.999
 isodate==0.5.1
+kombu==3.0.24
 lxml==3.4.0
 psycopg2==2.5.4
 pycrypto==2.6.1
-elasticsearch==1.2.0
 pyparsing==2.0.3
+pytz==2014.10
+rdflib==4.2.0-dev
 requests==2.4.3
 simplejson==3.6.5
-six==1.8.0
-rdflib==4.2-dev
-#-e git+git://github.com/IRI-Research/rdflib.git@96c30f98bbb628e13aaa32c9c392584b0fbf8788#egg=rdflib
+six==1.9.0
 urllib3==1.9.1
 wikitools==1.2
 wsgiref==0.1.2
-Unidecode==0.04.17
-pytz==2014.10