web/ldt/ldt_utils/projectserializer.py
changeset 27 f81da251d0aa
parent 26 d5b6908e4da5
--- a/web/ldt/ldt_utils/projectserializer.py	Thu Jun 10 20:49:13 2010 +0200
+++ b/web/ldt/ldt_utils/projectserializer.py	Fri Jun 11 00:17:30 2010 +0200
@@ -47,7 +47,6 @@
             }
         }
         
-        self.lists.append(new_list)
         
         for decoupage_node in ensemble_node.childNodes:
             if decoupage_node.nodeType != xml.dom.Node.ELEMENT_NODE or decoupage_node.tagName != "decoupage" :
@@ -159,6 +158,9 @@
                         self.tags[tag_id] = new_tag
                     element_tags.append({"id-ref":tag_id})
 
+                if not element_tags:
+                    element_tags = None
+                    
                 new_annotation = {
                     "begin": element_begin,
                     "end": int(element_begin) + int(element_duration),
@@ -175,6 +177,7 @@
                             "href": element_audio_href
                         },
                     },
+                    "tags": element_tags,
                     "meta": {
                         "id-ref": decoupage_id,
                         "dc:creator": decoupage_creator,
@@ -186,8 +189,11 @@
                 
                 self.annotations.append(new_annotation)
         
+        if not list_items:
+            new_list["items"] = None
+        self.lists.append(new_list)
 
-    
+
     def __parse_ldt(self):
         
         doc = xml.dom.minidom.parseString(self.project.ldt.encode("utf-8"))
@@ -300,11 +306,32 @@
              'main_media': {"id-ref":project_main_media}
             }
         
+        if not self.medias:
+            self.medias = None
+                        
+        if not self.annotation_types:
+            self.annotation_types = None
+        
+        if len(self.tags) == 0:
+            tags = None
+        else:
+            tags = self.tags.values()
+            
+        if not self.lists:
+            self.lists = None
+            
+        if not self.views:
+            self.views = None
+            
+        if not self.annotations:
+            self.annotations = None
+        
         res['medias'] =  self.medias
         res['annotation-types'] = self.annotation_types
         res['annotations'] = self.annotations
         res['lists'] = self.lists
-        res['tags'] = self.tags.values()
+        res['tags'] = tags
         res['views'] = self.views # ignored for the moment
         
-        return res
\ No newline at end of file
+        return res
+