--- a/src/jocondelab/views/front_office.py Thu Oct 31 12:43:07 2013 +0100
+++ b/src/jocondelab/views/front_office.py Thu Oct 31 16:33:11 2013 +0100
@@ -22,9 +22,9 @@
import logging
logger = logging.getLogger(__name__)
-def get_terms_by_thesaurus(notice, lang):
+def get_terms_by_thesaurus(notices, lang):
termsbythesaurus = {}
- for nt in Term.objects.filter(noticeterm__notice=notice, dbpedia_fields=None).select_related('thesaurus__label').order_by('label').distinct():
+ for nt in Term.objects.filter(noticeterm__notice__in=notices, dbpedia_fields=None).select_related('thesaurus__label').order_by('label').distinct():
term = {
"thesaurus": nt.thesaurus.label,
"dbpedia_uri": nt.dbpedia_uri,
@@ -34,7 +34,7 @@
th = termsbythesaurus.setdefault(term["thesaurus"], { "translated": [], "untranslated": [] })
th["untranslated"].append(term)
# We use "values" because it avoids an other db request for dbpedia_fields.get(language_code = lang).label
- for nt in Term.objects.select_related('thesaurus__label,dbpedia_fields').filter(noticeterm__notice=notice, dbpedia_fields__language_code=lang).order_by('dbpedia_fields__label').distinct().values("thesaurus__label", "dbpedia_uri", "dbpedia_fields__label"):
+ for nt in Term.objects.select_related('thesaurus__label,dbpedia_fields').filter(noticeterm__notice__in=notices, dbpedia_fields__language_code=lang).order_by('dbpedia_fields__label').distinct().values("thesaurus__label", "dbpedia_uri", "dbpedia_fields__label"):
term = {
"thesaurus": nt["thesaurus__label"],
"dbpedia_uri": nt["dbpedia_uri"],
@@ -144,8 +144,9 @@
context["page_count"] = paginator.num_pages
notices = []
+ termsbythesaurus = get_terms_by_thesaurus(ns, lang)
for n in ns:
- termsbythesaurus = get_terms_by_thesaurus(n, lang)
+ #termsbythesaurus = get_terms_by_thesaurus(n, lang)
# select first image with "_p.jpg"
selected_image = None
for i in n.images.all():
@@ -194,7 +195,7 @@
context["images"] = [settings.JOCONDE_IMG_BASE_URL + i.url for i in self.object.images.exclude(relative_url__endswith='v.jpg').order_by('id')]
context["title"] = self.object.titr if self.object.titr else self.object.deno
- context["terms_by_thesaurus"] = get_terms_by_thesaurus(self.object, lang)
+ context["terms_by_thesaurus"] = get_terms_by_thesaurus([self.object], lang)
if self.show_contributions:
cqs = self.object.contribution_set.select_related('term__dbpedia_fields')