--- a/src/hdalab/views/profile.py Tue Aug 26 18:11:26 2014 +0200
+++ b/src/hdalab/views/profile.py Wed Aug 27 13:11:28 2014 +0200
@@ -5,7 +5,6 @@
@author: tc
'''
-
from datetime import datetime
from django.conf import settings
from django.contrib.auth import REDIRECT_FIELD_NAME, login as auth_login
@@ -25,6 +24,7 @@
from django.views.decorators.debug import sensitive_post_parameters
from django.views.generic import TemplateView, View
from hdabo.models import Tag, Datasheet, TaggedSheet, Folder
+from hdalab.models.dataviz import DbpediaFields, DbpediaFieldsTranslation
from hdalab.models.renkan import HdalabRenkan
from hdalab.views.ajax import filter_generic
from renkanmanager.models import Renkan
@@ -35,7 +35,6 @@
import uuid
-
import logging
logger = logging.getLogger(__name__)
@@ -117,6 +116,8 @@
return HttpResponse(rk.content, content_type="application/json")
shape = request.GET.get("shape", "")
+ no_translate_langs = [ 'fr' ]
+ lang = request.GET.get('lang',request.LANGUAGE_CODE)
# Start dict for renkan json
now = datetime.now().strftime("%Y-%m-%d %H:%M")
@@ -149,7 +150,7 @@
notice_id = request.GET.get("notice", "")
if notice_id!="":
notice = get_object_or_404(Datasheet, hda_id=notice_id)
- # We get the ORDERED tags if we display one sheet (case valid = 0 and 1)
+ # We get the ORDERED tags if we display one sheet
ordered_tags = TaggedSheet.objects.filter(datasheet=notice).select_related("tag", "tag__dbpedia_fields", "tag__category").order_by('order')[:15]
# Prepare Node placer :
np = LineNodePlacer()
@@ -170,6 +171,13 @@
#"created_by": "roster_user-84fe909f-ba37-48e6-a25f-9d2f129a95b7"
})
+ # Get translated labels
+ dbpediafields = dict([(df.tag_id, df) for df in DbpediaFields.objects.filter(tag__in = [ot.tag for ot in ordered_tags])])
+ translations = {}
+ if lang not in no_translate_langs:
+ transqs = DbpediaFieldsTranslation.objects.filter(master__in = dbpediafields.values(), language_code = lang)
+ translations = dict([(trans.master_id,trans.label) for trans in transqs])
+
for ot in ordered_tags:
t = ot.tag
img_url = t.dbpedia_fields.thumbnail if hasattr(t, 'dbpedia_fields') and t.dbpedia_fields and t.dbpedia_fields.thumbnail else None
@@ -178,7 +186,7 @@
content["nodes"].append({
"id": unicode(uuid.uuid1()),
- "title": t.label + ((" (" + t.category.label + ")") if t.category else ""),
+ "title": translations.get(dbpediafields[t.id].id, t.label),
"description": t.dbpedia_uri,
"uri": t.dbpedia_uri,
"position": np.get_place("tags"),
@@ -212,6 +220,12 @@
n_tags = [t.pk for t in n_tags]
all_tags = Tag.objects.filter( pk__in=n_tags ).select_related("dbpedia_fields", "category")
+ # Get translated labels
+ translations = {}
+ if lang not in no_translate_langs:
+ transqs = DbpediaFieldsTranslation.objects.filter(master__in = [t.dbpedia_fields if hasattr(t, 'dbpedia_fields') and t.dbpedia_fields else None for t in all_tags], language_code = lang)
+ translations = dict([(trans.master_id,trans.label) for trans in transqs])
+
# Prepare Node placer :
np = LineNodePlacer()
if shape=="circle":
@@ -240,7 +254,7 @@
img_url = cat_dict[t.category.label]
content["nodes"].append({
"id": tag_uuid_dict[t.pk],
- "title": t.label + ((" (" + t.category.label + ")") if t.category else ""),
+ "title": translations.get(t.dbpedia_fields.id, t.label) if hasattr(t, 'dbpedia_fields') and t.dbpedia_fields else t.label,
"description": t.dbpedia_uri,
"uri": t.dbpedia_uri,
"position": np.get_place("tags"),
@@ -281,7 +295,7 @@
# Get datasheets from ajax filter search
- filter_output = filter_generic(request.GET.get('lang',request.LANGUAGE_CODE), None, ",".join(label_list), ",".join(country_list), content_count=10)
+ filter_output = filter_generic(lang, None, ",".join(label_list), ",".join(country_list), content_count=10)
filter_output = json.loads(filter_output)
#logger.debug("COUCOU")
#logger.debug(json.dumps(filter_output, indent=2))
@@ -336,7 +350,7 @@
content["nodes"].append({
"id": unicode(uuid.uuid1()),
- "title": t.label + ((" (" + t.category.label + ")") if t.category else ""),
+ "title": filter_output["tagtranslations"][t.label],
"description": t.dbpedia_uri,
"uri": t.dbpedia_uri,
"position": np.get_place("tags"),
@@ -364,7 +378,7 @@
for t in related_tags:
content["nodes"].append({
"id": t["id"],
- "title": t["label"],
+ "title": filter_output["tagtranslations"][t["label"]],
"description": "",
"uri": "",
"position": np.get_place("related"),