diff -r d5b6908e4da5 -r f81da251d0aa web/ldt/ldt_utils/projectserializer.py --- 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 +