--- a/src/ldt/ldt/__init__.py Wed May 28 16:29:18 2014 +0200
+++ b/src/ldt/ldt/__init__.py Wed Jul 23 17:40:08 2014 +0200
@@ -1,6 +1,6 @@
__all__ = ["VERSION", "get_version", "__version__"]
-VERSION = (1, 53, 7, "final", 0)
+VERSION = (1, 53, 8, "final", 0)
def get_version():
--- a/src/ldt/ldt/ldt_utils/projectserializer.py Wed May 28 16:29:18 2014 +0200
+++ b/src/ldt/ldt/ldt_utils/projectserializer.py Wed Jul 23 17:40:08 2014 +0200
@@ -40,6 +40,8 @@
self.display_ensemble_list = []
self.first_cutting = first_cutting
self.only_one_cutting = only_one_cutting
+ # if first_cutting, it means that we limit to the concerned media=
+ self.one_content= None
def __parse_views(self, display_node_list):
@@ -342,12 +344,18 @@
self.__parse_views(self.ldt_doc.xpath(xpath_str))
- #getting all contents at once
- contents_iri_id = list(
- set(self.ldt_doc.xpath("/iri/medias/media/@id")) |
- set(self.ldt_doc.xpath("/iri/annotations/content/@id")) |
- (set(self.ldt_doc.xpath('/iri/annotations/content[ensemble/decoupage/@id=\'%s\']/@id' % self.first_cutting)) if self.first_cutting and self.first_cutting not in self.display_cuttings_list else set())
- )
+ # getting all contents at once
+ # If self.one_content, we remove the other content
+ if self.first_cutting and self.one_content:
+ contents_iri_id = list(
+ set(self.ldt_doc.xpath('/iri/annotations/content[ensemble/decoupage/@id=\'%s\']/@id' % self.first_cutting))
+ )
+ else:
+ contents_iri_id = list(
+ set(self.ldt_doc.xpath("/iri/medias/media/@id")) |
+ set(self.ldt_doc.xpath("/iri/annotations/content/@id")) |
+ (set(self.ldt_doc.xpath('/iri/annotations/content[ensemble/decoupage/@id=\'%s\']/@id' % self.first_cutting)) if self.first_cutting and self.first_cutting not in self.display_cuttings_list else set())
+ )
contents = dict([ (c.iri_id, c) for c in Content.objects.filter(iri_id__in=contents_iri_id).select_related('media_obj', 'stat_annotation').prefetch_related("authors")])
m_cls = ContentType.objects.get(model='media')
@@ -358,7 +366,7 @@
res = self.ldt_doc.xpath("/iri/medias/media")
for mediaNode in res:
iri_id = mediaNode.attrib[u"id"]
- if self.from_display and iri_id not in self.display_contents_list:
+ if (self.from_display and iri_id not in self.display_contents_list) or iri_id not in contents_iri_id:
continue
content = contents[iri_id]#Content.objects.get(iri_id=iri_id) #@UndefinedVariable
self.__parse_content(content, medias)
@@ -366,7 +374,7 @@
res = self.ldt_doc.xpath("/iri/annotations/content")
for content_node in res:
content_id = content_node.attrib[u"id"]
- if self.from_display and content_id not in self.display_contents_list:
+ if (self.from_display and content_id not in self.display_contents_list) or content_id not in contents_iri_id:
continue
content = contents[content_id]#Content.objects.get(iri_id=content_id) #@UndefinedVariable
for ensemble_node in content_node:
@@ -523,9 +531,11 @@
self.__parse_ensemble(ensemble_node, content)
- def serialize_to_cinelab(self):
+ def serialize_to_cinelab(self, one_content_param):
res = {}
+
+ self.one_content = one_content_param
if not self.parsed:
self.__parse_ldt()
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/embed_player.html Wed May 28 16:29:18 2014 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/embed_player.html Wed Jul 23 17:40:08 2014 +0200
@@ -12,7 +12,7 @@
if (typeof jQuery == "undefined") {
jQuery = IriSP.jQuery;
}
-var metadatas = {metadata: {url: '{{json_url}}'}};
+var metadatas = {metadata: {url: '{{json_url}}?onecontent=1' }};
var metadata_key = "metadata";
IriSP.libFiles.defaultDir = '{% static "ldt/js/" %}';
--- a/src/ldt/ldt/ldt_utils/views/json.py Wed May 28 16:29:18 2014 +0200
+++ b/src/ldt/ldt/ldt_utils/views/json.py Wed Jul 23 17:40:08 2014 +0200
@@ -64,10 +64,15 @@
escape_bool = False
if escape_str:
escape_bool = {'true': True, 'false': False, "0": False, "1": True}.get(escape_str.lower())
+
+ one_content_str = request.REQUEST.get("onecontent")
+ one_content_bool = False
+ if one_content_str:
+ one_content_bool = {'true': True, 'false': False, "0": False, "1": True}.get(one_content_str.lower())
ps = ProjectJsonSerializer(project, serialize_contents, first_cutting=first_cutting)
- project_dict = ps.serialize_to_cinelab()
+ project_dict = ps.serialize_to_cinelab(one_content_bool)
json_str = simplejson.dumps(project_dict, ensure_ascii=False, indent=indent)