add polemic and twitter info
authorymh <ymh.work@gmail.com>
Mon, 24 Jan 2011 10:27:42 +0100
changeset 137 d363fa6232b2
parent 136 b1d77caeec41
child 138 e8e0bcf9b473
add polemic and twitter info
web/ldt/ldt_utils/models.py
web/ldt/ldt_utils/projectserializer.py
web/ldt/ldt_utils/utils.py
--- a/web/ldt/ldt_utils/models.py	Tue Dec 28 14:33:15 2010 +0100
+++ b/web/ldt/ldt_utils/models.py	Mon Jan 24 10:27:42 2011 +0100
@@ -266,7 +266,7 @@
 
     
     def __unicode__(self):
-        return unicode(self.id) + u": " + unicode(self.ldt_id)
+        return unicode(self.id) + u"::" + unicode(self.ldt_id) + u"::" + unicode(self.title)
     
     def get_description(self, doc=None):
         
--- a/web/ldt/ldt_utils/projectserializer.py	Tue Dec 28 14:33:15 2010 +0100
+++ b/web/ldt/ldt_utils/projectserializer.py	Mon Jan 24 10:27:42 2011 +0100
@@ -1,12 +1,14 @@
 from datetime import datetime
 from django.utils.datastructures import SortedDict
 from ldt.ldt_utils.models import Content, Project
+from ldt.ldt_utils.utils import reduce_text_node
 import logging
 import lxml.etree
 import uuid
 
 DATE_FORMATS = ["%d/%m/%Y","%Y-%m-%d"]
 
+
 """
 Serialize a project object to a cinelab compatible array
 """
@@ -146,13 +148,9 @@
                 element_media = content.iri_id
                 element_color = element_node.attrib[u"color"]
                 
-                element_title = ""
-                for txtRes in element_node.xpath("title/text()", smart_strings=False): 
-                    element_title += txtRes
-        
-                element_description = ""
-                for txtRes in element_node.xpath("abstract/text()", smart_strings=False): 
-                    element_description += txtRes
+                element_title = reduce_text_node(element_node,"title/text()")        
+                element_description = reduce_text_node(element_node, "abstract/text()")                
+                element_twitter = reduce_text_node(element_node, "meta/twitter/text()")
                 
                 element_audio_src = ""
                 element_audio_href = ""
@@ -216,6 +214,7 @@
                             "mimetype": "audio/mp3",
                             "href": element_audio_href
                         },
+                        "polemics" :[pol_elem.text for pol_elem in element_node.xpath("meta/polemics/polemic")],
                     },
                     "tags": element_tags,
                     "meta": {
@@ -223,10 +222,13 @@
                         "dc:creator": decoupage_creator,
                         "dc:contributor": decoupage_contributor,
                         "dc:created": decoupage_created,
-                        "dc:modified": decoupage_modified
+                        "dc:modified": decoupage_modified,
                     }
                 }
                 
+                if element_twitter:
+                    new_annotation['meta']['twitter'] = element_twitter
+                
                 self.annotations_dict[element_id] = new_annotation
                 self.annotations_by_annotation_types[decoupage_id].append(new_annotation)
         
--- a/web/ldt/ldt_utils/utils.py	Tue Dec 28 14:33:15 2010 +0100
+++ b/web/ldt/ldt_utils/utils.py	Mon Jan 24 10:27:42 2011 +0100
@@ -17,6 +17,9 @@
     'f':False
 }
 
+def reduce_text_node(element_node, xpath_str):
+    return reduce(lambda t, s: t+s, element_node.xpath(xpath_str, smart_strings=False), "")
+
 def boolean_convert(bool):
     if bool is None:
         return False