Merge with upstream
authorhamidouk
Wed, 18 Jan 2012 16:42:52 +0100
changeset 418 b5a19e9329e0
parent 417 324f5fab9eca (current diff)
parent 416 b512f69a474a (diff)
child 419 dc8a7dc00a21
Merge with upstream
--- a/src/ldt/ldt/ldt_utils/segmentserializer.py	Wed Jan 18 16:42:28 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/segmentserializer.py	Wed Jan 18 16:42:52 2012 +0100
@@ -1,9 +1,12 @@
 from django.conf import settings
 from django.utils.datastructures import SortedDict
+from ldt.ldt_utils.models import Project
+import lxml.etree
 import uuid
 
 DATE_FORMATS = ["%d/%m/%Y", "%Y-%m-%d"]
 
+import pdb
 class SegmentSerializer(object):
     """
     Serialize a set of annotations to a cinelab compatible array
@@ -19,6 +22,20 @@
         self.medias = None
         self.annotations = None
         
+        self.xml_docs = {}
+        
+    def __get_cutting_title(self, project_id, content_id, ensemble_id, cutting_id):
+        
+        if not self.xml_docs.has_key(project_id):
+            project = Project.objects.get(ldt_id=project_id)
+            doc = lxml.etree.fromstring(project.ldt)
+            self.xml_docs[project_id] = doc
+        else:
+            doc = self.xml_docs[project_id]
+              
+        cutting = doc.xpath('/iri/annotations/content[@id=\'%s\']/ensemble[@id=\'%s\']/decoupage[@id=\'%s\']/title' % (content_id, ensemble_id, cutting_id))[0]
+        
+        return cutting.text       
     
     def __parse_views(self):
         
@@ -31,18 +48,24 @@
         }
         
         self.annotation_types = []
-        annotation_types = [seg.cutting_id for seg in self.segments]
+
+        annotation_types = []        
+        for seg in self.segments:
+            title = self.__get_cutting_title(seg.project_id, seg.iri_id, seg.ensemble_id, seg.cutting_id)
+            annotation_types.append({'id': seg.cutting_id, 'title': title})
+        
         for a in annotation_types:
-            view['annotation_types'].append(a)
+            view['annotation_types'].append(a['id'])
             self.annotation_types.append({
                     "dc:contributor": "undefined",
                     "dc:creator": "undefined",
-                    "dc:title": "cutting %s" % a,
-                    "id": "%s" % a,
+                    "dc:title": a['title'],
+                    "id": a['id'],
                     "dc:created": "",
                     "dc:description": "",
                     "dc:modified": ""
                 })
+            
         
         self.views = [view]
         
--- a/src/ldt/ldt/ldt_utils/stat.py	Wed Jan 18 16:42:28 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/stat.py	Wed Jan 18 16:42:52 2012 +0100
@@ -121,7 +121,7 @@
     content.last_annotated = datetime.datetime.now()
     content.save()    
 
-import uuid
+
 def add_annotation_to_stat(content, project, begin, end):
     contribution_project = AnnotationStat.objects.get(project=project, content=content)
     
@@ -130,21 +130,7 @@
     else:
         contribution_project.nb_annotation += 1
     content.nb_annotation += 1
-    
-#    print "before segment creation"
-#    s = Segment(project_obj=project,
-#                content=content,
-#                project_id=project.ldt_id,
-#                iri_id=content.iri_id,
-#                ensemble_id='%s' % unicode(uuid.uuid1()),
-#                cutting_id='t',    
-#                element_id='a',
-#                duration=end-begin,
-#                start_ts=begin)
-#    s.save()
-#    print s.id
-#    print "segment created"
-    
+        
     if contribution_project.stat:
         
         number_division = settings.DIVISIONS_FOR_STAT_ANNOTATION