src/hdalab/views/profile.py
changeset 445 a74ec9e02042
parent 438 e9d8f42cd664
child 458 604b887e70c3
--- a/src/hdalab/views/profile.py	Wed Feb 18 16:22:38 2015 +0100
+++ b/src/hdalab/views/profile.py	Thu Feb 19 02:43:46 2015 +0100
@@ -256,19 +256,23 @@
             translations = {}
             if lang not in no_translate_langs:
                 transqs = DbpediaFieldsTranslation.objects.filter(master__in = [ot.tag.dbpedia_fields if hasattr(ot.tag, 'dbpedia_fields') and ot.tag.dbpedia_fields else None for ot in ordered_tags], language_code = lang)
-                translations = dict([(trans.master_id,trans.label) for trans in transqs])
+                translations = dict([(trans.master_id,trans) 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
                 if img_url is None and t.category is not None:
                     img_url = cat_dict[t.category.label]
-                
+                translation_obj = translations.get(t.dbpedia_fields.id, None) if t.dbpedia_fields else None
+                translation = {
+                    'label': translation_obj.label if translation_obj and translation_obj.label else t.label,
+                    'abstract': translation_obj.abstract if translation_obj and translation_obj.abstract else '',
+                }
                 content["nodes"].append({
                   "id": unicode(uuid.uuid1()),
-                  "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": "",
+                  "title": translation['label'],
+                  "description": translation['abstract'],
+                  "uri": t.wikipedia_url,
                   "position": np.get_place("tags"),
                   "image": img_url,
                   "size": 0,
@@ -319,7 +323,7 @@
             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])
+                translations = dict([(trans.master_id,trans) for trans in transqs])
             
             # Prepare Node placer :
             np = CircleNodePlacer()
@@ -329,6 +333,7 @@
                 np = LineNodePlacer()
                 
             np.init({"datasheet": (1, len(notices)), "tags": (2, len(all_tags))})
+
             
             # Place notices
             for n in notices:
@@ -349,13 +354,19 @@
             # Place tags
             for t in all_tags:
                 img_url = t.dbpedia_fields.thumbnail if hasattr(t, 'dbpedia_fields') and t.dbpedia_fields and t.dbpedia_fields.thumbnail else None
+                translation_obj = translations.get(t.dbpedia_fields.id, None) if t.dbpedia_fields else None
+                translation = {
+                    'label': translation_obj.label if translation_obj and translation_obj.label else t.label,
+                    'abstract': translation_obj.abstract if translation_obj and translation_obj.abstract else '',
+                }
+
                 if img_url is None and t.category is not None:
                     img_url = cat_dict[t.category.label]
                 content["nodes"].append({
                   "id": tag_uuid_dict[t.pk],
-                  "title": translations.get(t.dbpedia_fields.id, t.label) if hasattr(t, 'dbpedia_fields') and t.dbpedia_fields else t.label,
-                  "description": "",
-                  "uri": t.dbpedia_uri,
+                  "title": translation['label'],
+                  "description": translation['abstract'],
+                  "uri": t.wikipedia_url,
                   "position": np.get_place("tags"),
                   "image": img_url,
                   "size": 0,
@@ -409,7 +420,7 @@
 
         content["bins"] = {
           "type": "ResourceList",
-          "title": "Plus de Ressources",
+          "title": _("Plus de Ressources"), #TODO: Translate
           "list": filter_output_to_bin["contents"]
         }
         
@@ -430,7 +441,7 @@
                     for tt in filter_output["tags"]:
                         if tt["label"]==t["label"]:
                             thumbnail_url = tt["thumbnail"]
-                    related_tags.append({"label": t["label"], "thumbnail":thumbnail_url, "id":t["id"], "url":t["url"]})
+                    related_tags.append({"label": t["label"], "thumbnail":thumbnail_url, "id":t["id"], "url":t["url"], 'wkpd_url': t['wkpd_url']})
                     all_labels.append(t["label"])
                 related_tags_dict[c["id"]].append(t["id"])
         
@@ -463,16 +474,29 @@
             len_tags += 1
         np.init({"tags": (1, len_tags), "datasheet": (2, len(filter_output["contents"])), "related": (3, len(related_tags)), "northwest":(3 if shape=="circle" else 1, 1)})
         
+        #get tag abstract and label translations
+        
+        tags_id = [t.id for t in all_tags] + [t['id'] for t in related_tags]
+        translations = {}
+        transqs = DbpediaFieldsTranslation.objects.filter(master__tag__in = tags_id, language_code = lang)
+        translations = dict([(trans.master.tag.id,trans) for trans in transqs])
+
+        
         for t in all_tags:
             img_url = t.dbpedia_fields.thumbnail if hasattr(t, 'dbpedia_fields') and t.dbpedia_fields and t.dbpedia_fields.thumbnail else None
             if img_url is None and t.category is not None:
                 img_url = cat_dict[t.category.label]
+            translation_obj = translations.get(t.id, None)
+            translation = {
+                'label': filter_output["tagtranslations"][t.label] if t.label in filter_output["tagtranslations"] else t.label,
+                'abstract': translation_obj.abstract if translation_obj else ""
+            }
             
             content["nodes"].append({
               "id": unicode(uuid.uuid1()),
-              "title": filter_output["tagtranslations"][t.label] if t.label in filter_output["tagtranslations"] else t.label,
-              "description": t.dbpedia_uri,
-              "uri": t.dbpedia_uri,
+              "title": translation['label'],
+              "description": translation['abstract'],
+              "uri": t.wikipedia_url,
               "position": np.get_place("tags"),
               "image": img_url,
               "size": 0,
@@ -512,11 +536,17 @@
             })
         
         for t in related_tags:
+            translation_obj = translations.get(t['id'], None)
+            translation = {
+                'label': filter_output["tagtranslations"][t["label"]],
+                'abstract': translation_obj.abstract if translation_obj else ""
+            }
+
             content["nodes"].append({
               "id": t["id"],
-              "title": filter_output["tagtranslations"][t["label"]],
-              "description": "",
-              "uri": t["url"],
+              "title": translation['label'],
+              "description": translation['abstract'],
+              "uri": t["wkpd_url"],
               "position": np.get_place("related"),
               "image": t["thumbnail"],
               "size": 0,