--- a/src/jocondelab/__init__.py Tue Jan 28 13:51:16 2014 +0100
+++ b/src/jocondelab/__init__.py Tue Jan 28 16:56:59 2014 +0100
@@ -1,4 +1,4 @@
-VERSION = (0, 59, 0, "final", 0)
+VERSION = (0, 60, 0, "final", 0)
def get_version():
Binary file src/jocondelab/locale/en/LC_MESSAGES/django.mo has changed
--- a/src/jocondelab/locale/en/LC_MESSAGES/django.po Tue Jan 28 13:51:16 2014 +0100
+++ b/src/jocondelab/locale/en/LC_MESSAGES/django.po Tue Jan 28 16:56:59 2014 +0100
@@ -793,7 +793,7 @@
#: templates/jocondelab/front_notice.html:44
#: templates/jocondelab/partial/notice_list.html:14
msgid "Artiste(s) :"
-msgstr "Artit(s):"
+msgstr "Artist(s):"
#: templates/jocondelab/front_notice.html:50
msgid "École :"
Binary file src/jocondelab/locale/fr/LC_MESSAGES/django.mo has changed
--- a/src/jocondelab/locale/fr/LC_MESSAGES/django.po Tue Jan 28 13:51:16 2014 +0100
+++ b/src/jocondelab/locale/fr/LC_MESSAGES/django.po Tue Jan 28 16:56:59 2014 +0100
@@ -583,6 +583,160 @@
" </div>\n"
" "
msgstr ""
+"\n"
+" <div class=\"credits-chapo\">\n"
+" <p>Le site JocondeLab est une publication du ministère de la Culture "
+"et de la Communication.</p>\n"
+" </div>\n"
+" \n"
+" <div class=\"credits-section\">\n"
+" <h2>Équipe responsable du site Joconde</h2>\n"
+" <h3>Direction générale des patrimoines – Service des musées de "
+"France - Sous-direction des collections - Bureau de la diffusion numérique "
+"des collections</h3>\n"
+" <ul>\n"
+" <li>\n"
+" <span class=\"person-role\">Chef de bureau :</span>\n"
+" <span class=\"person-name\">Laurent MANŒUVRE</span>\n"
+" </li>\n"
+" <li>\n"
+" <span class=\"person-role\">Adjointe au chef du bureau :"
+"</span>\n"
+" <span class=\"person-name\">Carine PRUNET</span>\n"
+" </li>\n"
+" <li>\n"
+" <span class=\"person-role\">Responsable de la base Joconde "
+"pour les beaux-arts et arts décoratifs :</span>\n"
+" <span class=\"person-name\">Jeannette IVAIN</span>\n"
+" </li>\n"
+" </ul>\n"
+" </div>\n"
+" \n"
+" <div class=\"credits-section\">\n"
+" <h2>Pilotage du projet</h2>\n"
+" <h3>Délégation générale à la langue française et aux langues de "
+"France – Mission des langues et du numérique</h3>\n"
+" <ul>\n"
+" <li>\n"
+" <span class=\"person-role\">Chef de la mission :</"
+"span>\n"
+" <span class=\"person-name\">Thibault GROUAS</span>\n"
+" </li>\n"
+" <li>\n"
+" <span class=\"person-role\">Chef de projet maîtrise "
+"d'ouvrage :</span>\n"
+" <span class=\"person-name\">Brigitte TRAN</span>\n"
+" </li>\n"
+" </ul>\n"
+" <h3>Secrétariat général - Sous-direction des systèmes d'information</"
+"h3>\n"
+" <ul>\n"
+" <li>\n"
+" <span class=\"person-role\">Sous-directeur :</span>\n"
+" <span class=\"person-name\">Jean-Séverin LAIR</span>\n"
+" </li>\n"
+" <li>\n"
+" <span class=\"person-role\">Chef du bureau des projets et "
+"études :</span>\n"
+" <span class=\"person-name\">Joseph TOSCANO</span>\n"
+" </li>\n"
+" <li>\n"
+" <span class=\"person-role\">Chef de projet maîtrise "
+"d’œuvre :</span>\n"
+" <span class=\"person-name\">Driss TSILA</span>\n"
+" </li>\n"
+" </ul>\n"
+" </div>\n"
+" \n"
+" <div class=\"credits-section\">\n"
+" <h2>Expertise</h2>\n"
+" <h3>Département des programmes numériques</h3>\n"
+" <ul>\n"
+" <li>\n"
+" <span class=\"person-role\">Expert :</span>\n"
+" <span class=\"person-name\">Bertrand SAJUS</span>\n"
+" </li>\n"
+" </ul>\n"
+" </div>\n"
+" \n"
+" <div class=\"credits-section\">\n"
+" <h2>Conception et réalisation du site</h2>\n"
+" <h3>Institut de recherche et d'innovation</h3>\n"
+" <p><a href=\"http://www.iri.centrepompidou.fr/\">www.iri."
+"centrepompidou.fr</a></p>\n"
+" <ul>\n"
+" <li>\n"
+" <span class=\"person-role\">Directeur exécutif :</"
+"span>\n"
+" <span class=\"person-name\">Vincent PUIG</span>\n"
+" </li>\n"
+" <li>\n"
+" <span class=\"person-role\">Directeur technique :</"
+"span>\n"
+" <span class=\"person-name\">Yves-Marie HAUSSONNE</span>\n"
+" </li>\n"
+" <li>\n"
+" <span class=\"person-role\">Développeur et concepteur des "
+"interfaces :</span>\n"
+" <span class=\"person-name\">Raphaël VELT</span>\n"
+" </li>\n"
+" <li>\n"
+" <span class=\"person-role\">Développeur :</span>\n"
+" <span class=\"person-name\">Thibaut CAVALIE</span>\n"
+" </li>\n"
+" </ul>\n"
+" </div>\n"
+" \n"
+" <div class=\"credits-section\">\n"
+" <h2>Traduction de l'interface</h2>\n"
+" <ul><li>Nous remercions particulièrement tous les traducteurs de "
+"l'interface de JocondeLab qui nous ont permis de vous proposer ce site "
+"internet en 14 langues : Quentin Samier, Clara Vecchio, Paola Luna, Claire "
+"Extramiana, Perrine Balbaud, Gaïd Evenou, 谢寒 XIE Han, Catherine Bubnova, "
+"Raül David Martínez, Michel Bottin, Cécile Gonçalves, Erwan Evenou, Eri "
+"OGASAWARA, Annie Etcheverry (Euskaltzaindia), Yahya Cheikh, Dimitri Weil, "
+"Thibault Grouas, Michel Alessio, Stéphanie Guyard</li></ul>\n"
+" </div>\n"
+" \n"
+" <div class=\"credits-section\">\n"
+" <h2>Partenariat</h2>\n"
+" <h3>Gobelins l’École de l'image</h3>\n"
+" <p><a href=\"http://www.gobelins.fr/\">www.gobelins.fr</a></p>\n"
+" <ul>\n"
+" <li>\n"
+" <span class=\"person-role\">Responsable de la Coopérative de "
+"Projets :</span>\n"
+" <span class=\"person-name\">Arnaud LACAZE-MASMONTEIL</span>\n"
+" </li>\n"
+" <li>\n"
+" <span class=\"person-role\">Coordinateur pédagogique de la "
+"formation Concepteur réalisateur multimédia 1 :</span>\n"
+" <span class=\"person-name\">Thierry AUDOUX</span>\n"
+" </li>\n"
+" <li>\n"
+" <span class=\"person-role\">Intervenant conception "
+"graphique :</span>\n"
+" <span class=\"person-name\">Julien DEMEUZOIS</span>\n"
+" </li>\n"
+" <li>\n"
+" <span class=\"person-role\">Intervenant développement :"
+"</span>\n"
+" <span class=\"person-name\">Jonathan BLANCHET </span>\n"
+" </li>\n"
+" <li>\n"
+" <span class=\"person-role\">Étudiants CRMA1 :</span>\n"
+" <span class=\"person-name\">promotion 2013</span>\n"
+" </li>\n"
+" </ul>\n"
+" </div>\n"
+" \n"
+" <div class=\"credits-footer\">\n"
+" <p>Merci aux contributeurs Wikipédia et aux équipes qui ont développé DBpedia.org et DBpedia.fr</p>\n"
+" <p> </p>\n"
+" <p>Le site JocondeLab est présenté dans une version bêta.</p>\n"
+" <p>© Ministère de la Culture et de la Communication – 2013</p>\n"
+" </div>\n"
+" "
#: templates/jocondelab/front_describe.html:12
msgid "Décrivez le sujet de cette œuvre"
--- a/src/jocondelab/views/ajax.py Tue Jan 28 13:51:16 2014 +0100
+++ b/src/jocondelab/views/ajax.py Tue Jan 28 16:56:59 2014 +0100
@@ -126,8 +126,12 @@
def render_contribution(self, contribution, request):
lang = request.LANGUAGE_CODE[:2]
+ try:
+ label = contribution.term.dbpedia_fields.get(language_code=lang).label
+ except:
+ return HttpResponseBadRequest("Label not available")
termdict = {
- "label": contribution.term.dbpedia_fields.get(language_code=lang).label,
+ "label": label,
"dbpedia_uri": contribution.term.dbpedia_uri,
"contribution_id": contribution.id,
"li_style": "positive" if contribution.contribution_count > 0 else "null",
--- a/src/jocondelab/views/front_office.py Tue Jan 28 13:51:16 2014 +0100
+++ b/src/jocondelab/views/front_office.py Tue Jan 28 16:56:59 2014 +0100
@@ -129,12 +129,12 @@
else:
if dbpedia_uris:
queryobj = {'dbpedia_uri': dbpedia_uri}
- fs = list(DbpediaFields.objects.filter(dbpedia_uri__in=dbpedia_uris, language_code=lang))
+ fs = list(DbpediaFields.objects.filter(dbpedia_uri__in=dbpedia_uris, language_code=lang).exclude(label__isnull=True))
searchterms = set([fields.label for fields in fs])
elif queryterms:
searchterms = queryterms
queryobj = {'q': querystr}
- fs = list(DbpediaFields.objects.filter(label__in=queryterms, language_code=lang))
+ fs = list(DbpediaFields.objects.filter(label__in=queryterms, language_code=lang).exclude(label__isnull=True))
# If fs is empty, qs has to be empty
if len(fs)==0:
qs = qs.none()
@@ -178,8 +178,7 @@
else:
paginator = JocondeFrontPaginator(qs.values_list('id', flat=True).order_by('id').distinct(), npp, count_qs)
context["page_count"] = paginator.num_pages
- logger.debug("PAGE COUNT = ")
- logger.debug(context["page_count"])
+
ids = paginator.page(min(int(page),paginator.num_pages))
if paginator.count:
count_log = math.log10(paginator.count)
@@ -191,8 +190,7 @@
context["count"] = paginator.count - (paginator.count % 10**(int(count_log)-1) )
else:
context["count"] = paginator.count
- logger.debug("COUNT = ")
- logger.debug(context["count"])
+
# Now that we have the list of ids
ns = Notice.objects.filter(pk__in=ids).extra(select={'relative_url': '"core_noticeimage"."relative_url"'}).filter(image=True).filter(images__main=True).order_by('id')
# We check if we are in the last page of the "real" notices and not the +/- number of notices.