--- a/.settings/org.eclipse.core.resources.prefs Mon Dec 10 15:19:57 2012 +0100
+++ b/.settings/org.eclipse.core.resources.prefs Thu Dec 20 15:12:51 2012 +0100
@@ -32,6 +32,7 @@
encoding//src/ldt/ldt/ldt_utils/migrations/0023_auto__add_field_segment_audio_src__add_field_segment_audio_href.py=utf-8
encoding//src/ldt/ldt/ldt_utils/migrations/0024_auto__chg_field_tag_name.py=utf-8
encoding//src/ldt/ldt/ldt_utils/migrations/0025_chg_site_domain.py=utf-8
+encoding//src/ldt/ldt/ldt_utils/migrations/0026_set_relative_ldtproject.py=utf-8
encoding//src/ldt/ldt/ldt_utils/views/json.py=utf-8
encoding//src/ldt/ldt/management/utils.py=utf-8
encoding//src/ldt/ldt/test/test_runner.py=utf-8
--- a/src/ldt/ldt/ldt_utils/models.py Mon Dec 10 15:19:57 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/models.py Thu Dec 20 15:12:51 2012 +0100
@@ -311,6 +311,10 @@
if not url_utils.is_absolute(res_url):
res_url = unicode(web_url) + res_url
return res_url
+
+ def relative_iri_url(self): #this function is called when we create a project
+ res_url = u"ldt/" + unicode(self.iriurl)
+ return res_url
def iri_file_path(self):
return os.path.join(os.path.join(os.path.join(settings.MEDIA_ROOT, "ldt"), self.iri_id), os.path.basename(self.iriurl))
--- a/src/ldt/ldt/ldt_utils/tests/ldt_tests.py Mon Dec 10 15:19:57 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/tests/ldt_tests.py Thu Dec 20 15:12:51 2012 +0100
@@ -16,6 +16,7 @@
import unittest
import uuid
import logging
+import base64
class UtilsTest(TestCase):
@@ -77,8 +78,12 @@
self.cont4.iri_id = "id4"
self.cont4.save()
+ search=''
+ field='all'
+ query = base64.urlsafe_b64encode(search.encode('utf8'))
+
self.project.contents.add(self.cont3, self.cont4)
- ldoc = self.LU.generate_init([], 'ldt.ldt_utils.views.search_ldt')
+ ldoc = self.LU.generate_init([field, query], 'ldt.ldt_utils.views.lignesdetemps.search_ldt', 'ldt.ldt_utils.views.lignesdetemps.search_segments')
self.assertEqual(ldoc.xpath("/iri/files/init")[0].tag, "init")
self.assertEqual(ldoc.xpath("/iri/files/library")[0].tag, "library")
@@ -97,7 +102,7 @@
ldt = lxml.etree.fromstring(self.project.ldt_encoded)
self.assertEqual(ldt.xpath("/iri")[0].tag, "iri")
self.assertEqual(ldt.xpath("/iri/project")[0].get("title"), self.project.title)
- self.assertEqual(ldt.xpath("/iri/medias/media")[0].get("src"), self.cont5.iri_url())
+ self.assertEqual(ldt.xpath("/iri/medias/media")[0].get("src"), self.cont5.relative_iri_url())
self.assertEqual(ldt.xpath("/iri/medias/media")[1].get("id"), self.cont6.iri_id)
def test_copy_ldt(self):
@@ -160,4 +165,7 @@
self.assertEqual(ann.get("author"), "jdoe")
self.assertEqual(title, "title")
self.assertEqual(abstract, "text")
+
+""" def test_save_fake_project(self):
+ projecttest = Project.objects.get()"""
\ No newline at end of file
--- a/src/ldt/ldt/ldt_utils/tests/project_tests.py Mon Dec 10 15:19:57 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/tests/project_tests.py Thu Dec 20 15:12:51 2012 +0100
@@ -11,12 +11,14 @@
from ldt.ldt_utils.models import User, Project, Content, Media
from ldt.ldt_utils.utils import LdtUtils, LdtAnnotation, create_ldt, create_empty_iri, copy_ldt
from ldt.test.client import Client
+from django.core.management import call_command
import lxml.etree
import tempfile
import unittest
import uuid
import logging
+
class ProjectTest(TestCase):
fixtures = ['base_data.json', 'user_data.json']
@@ -26,13 +28,28 @@
User.objects.create_superuser('blop', 'blop@blop.com', 'blop')
client = self.client.login(username='blop', password='blop')
-
self.user = User()
self.user.username = 'blop'
+ self.LU = LdtUtils()
+ self.project = Project(title="titleproj1", owner=self.user)
+ self.project.ldt = '<iri ldtversion="1.0.3" xmlns:dc="http://dublincore.org/documents/dcmi-namespace/"><project id="af3b99e4-b695-11df-bfde-00145ea4a2be" user="admin" title="CA:reponse a TC" abstract=""/> <medias> <media extra="" id="laurentcantet_entrelesmurs" pict="" src="http://amateur.iri.centrepompidou.fr//atelier/static/media/ldt/laurentcantet_entrelesmurs/laurentcantet_entrelesmurs.iri" video="rtmp://media.iri.centrepompidou.fr/ddc_player/video/regardssignes/"/> </medias> <annotations> <content id="laurentcantet_entrelesmurs"> <ensemble id="ens_perso" idProject="fe0d5d4c-2201-11df-8a24-00145ea4a2be" title="Decoupages personnels" author="perso" abstract=""> <decoupage id="c_EFC3FFE7-0204-A086-EBEC-D2A03A0E56CB" author="perso"> <title>CA: prof et admin</title> <abstract/> <elements> <element id="s_442AAB3A-42DA-F9BF-75E7-D2A0663FD5FF" begin="985690" dur="373222" author="" date="2010/09/02" color="16711680" src=""> <title/> <abstract/> <audio source=""/> <tags/> </element> <element id="s_0050F043-3AD2-0A7C-6699-D2A03A1EBA02" begin="5052858" dur="124407" author="" date="2010/09/02" color="10053375" src=""> <title>conseil de classe</title> <abstract>Reprise de la figure precedente</abstract> <audio source="undefined"/> <tags/> </element> </elements> </decoupage> <decoupage id="c_EEEF5C29-86E1-4AAE-E068-04EB5B00E492" author="perso"> <title>TC: prof et admin</title> <abstract/> <elements> <element id="s_880D9D4B-8BC0-BA43-5ECA-04EBA9FC9E59" begin="2426894" dur="141478" author="" date="2010/02/25" color="10053375" src=""> <title>Conseil de classe</title> <abstract/> <audio source=""/> <tags> <tag>Argumentation</tag> </tags> </element> <element id="s_D568A57C-7110-DED2-3165-04EC54387060" begin="5052858" dur="124407" author="" date="2010/02/25" color="10053375" src=""> <title>conseil de classe</title> <abstract>Reprise de la figure precedente</abstract> <audio source="undefined"/> <tags/> </element> </elements> </decoupage> </ensemble> </content> </annotations> <displays> <display id="0" title="Init view" idsel="laurentcantet_entrelesmurs" tc="2426424" zoom="0" scroll="0" infoBAB=""> <audio source=""/> <content id="laurentcantet_entrelesmurs"> <decoupage idens="en_2" id="de_PPP" tagsSelect=""/> <decoupage idens="laurentcantet_entrelesmurs" id="c_14A2E638-1936-97DC-E303-2DBA6A82A8B3" tagsSelect=""/> <decoupage idens="ens_perso" id="c_EEEF5C29-86E1-4AAE-E068-04EB5B00E492" tagsSelect=""/> <decoupage idens="ens_perso" id="c_EFC3FFE7-0204-A086-EBEC-D2A03A0E56CB" tagsSelect=""/> </content> </display> </displays> <edits> <editing id="0" tags=""> <title>Bout a bout 1</title> <abstract/> <edit id="edit1" tags=""> <eList/> <caption/> <audio/> <mList/> </edit> <edit id="edit2" tags=""> <eList/> <caption/> <audio/> <mList/> </edit> </editing> </edits> </iri>'
+ self.project.id = "11321"
+ self.project.ldt_id = str(uuid.uuid1())
+ self.project.description = "proj1description"
+ self.project.save()
- def test_create_project(self):
+ def test_create_project(self):
+ self.cont1 = Content(iriurl="cont1_id/iriurl1", duration=123)
+ self.cont1.iri_id = "cont1_id"
+ self.cont1.save()
+
+ self.cont2 = Content(iriurl="cont2_id/iriurl2", duration=100)
+ self.cont2.iri_id = "cont2_id"
+ self.cont2.save()
+
self.project2 = Project(title="titleproj2", owner=self.user)
- self.project2.ldt = '<iri ldtversion="1.0.3" xmlns:dc="http://dublincore.org/documents/dcmi-namespace/"><project id="af3b99e4-b695-11df-bfde-00145ea4a212" user="admin" title="CA:reponse a TC" abstract=""/> <medias> <media extra="" id="laurentcantet_entrelesmurs" pict="" src="http://amateur.iri.centrepompidou.fr//atelier/static/media/ldt/laurentcantet_entrelesmurs/laurentcantet_entrelesmurs.iri" video="rtmp://media.iri.centrepompidou.fr/ddc_player/video/regardssignes/"/> </medias> <annotations> <content id="laurentcantet_entrelesmurs"> <ensemble id="ens_perso" idProject="fe0d5d4c-2201-11df-8a24-00145ea4a2be" title="Decoupages personnels" author="perso" abstract=""> <decoupage id="c_EFC3FFE7-0204-A086-EBEC-D2A03A0E56CB" author="perso"> <title>CA: prof et admin</title> <abstract/> <elements> <element id="s_442AAB3A-42DA-F9BF-75E7-D2A0663FD5FF" begin="985690" dur="373222" author="" date="2010/09/02" color="16711680" src=""> <title/> <abstract/> <audio source=""/> <tags/> </element> <element id="s_0050F043-3AD2-0A7C-6699-D2A03A1EBA02" begin="5052858" dur="124407" author="" date="2010/09/02" color="10053375" src=""> <title>conseil de classe</title> <abstract>Reprise de la figure precedente</abstract> <audio source="undefined"/> <tags/> </element> </elements> </decoupage> <decoupage id="c_EEEF5C29-86E1-4AAE-E068-04EB5B00E492" author="perso"> <title>TC: prof et admin</title> <abstract/> <elements> <element id="s_880D9D4B-8BC0-BA43-5ECA-04EBA9FC9E59" begin="2426894" dur="141478" author="" date="2010/02/25" color="10053375" src=""> <title>Conseil de classe</title> <abstract/> <audio source=""/> <tags> <tag>Argumentation</tag> </tags> </element> <element id="s_D568A57C-7110-DED2-3165-04EC54387060" begin="5052858" dur="124407" author="" date="2010/02/25" color="10053375" src=""> <title>conseil de classe</title> <abstract>Reprise de la figure precedente</abstract> <audio source="undefined"/> <tags/> </element> </elements> </decoupage> </ensemble> </content> </annotations> <displays> <display id="0" title="Init view" idsel="laurentcantet_entrelesmurs" tc="2426424" zoom="0" scroll="0" infoBAB=""> <audio source=""/> <content id="laurentcantet_entrelesmurs"> <decoupage idens="en_2" id="de_PPP" tagsSelect=""/> <decoupage idens="laurentcantet_entrelesmurs" id="c_14A2E638-1936-97DC-E303-2DBA6A82A8B3" tagsSelect=""/> <decoupage idens="ens_perso" id="c_EEEF5C29-86E1-4AAE-E068-04EB5B00E492" tagsSelect=""/> <decoupage idens="ens_perso" id="c_EFC3FFE7-0204-A086-EBEC-D2A03A0E56CB" tagsSelect=""/> </content> </display> </displays> <edits> <editing id="0" tags=""> <title>Bout a bout 1</title> <abstract/> <edit id="edit1" tags=""> <eList/> <caption/> <audio/> <mList/> </edit> <edit id="edit2" tags=""> <eList/> <caption/> <audio/> <mList/> </edit> </editing> </edits> </iri>'
+
+ self.project2.ldt = self.LU.generate_ldt(Content.objects.all())
self.project2.ldt_id = str(uuid.uuid1())
self.project2.description = "proj2description"
self.project2.save()
@@ -41,8 +58,12 @@
#test deletion of project without annotation
def test_del_project_v1(self):
+ self.cont3 = Content(iriurl="cont3_id/iriurl3", duration=100)
+ self.cont3.iri_id = "cont3_id"
+ self.cont3.save()
+
self.project3 = Project(title="titleproj3", owner=self.user)
- self.project3.ldt = '<iri ldtversion="1.0.3" xmlns:dc="http://dublincore.org/documents/dcmi-namespace/"><project id="af3b99e4-b695-11df-bfde-00145ea4a333" user="admin" title="CA:reponse a TC" abstract=""/> <medias> <media extra="" id="laurentcantet_entrelesmurs" pict="" src="http://amateur.iri.centrepompidou.fr//atelier/static/media/ldt/laurentcantet_entrelesmurs/laurentcantet_entrelesmurs.iri" video="rtmp://media.iri.centrepompidou.fr/ddc_player/video/regardssignes/"/> </medias> <annotations> <content id="laurentcantet_entrelesmurs"> <ensemble id="ens_perso" idProject="fe0d5d4c-2201-11df-8a24-00145ea4a2be" title="Decoupages personnels" author="perso" abstract=""> <decoupage id="c_EFC3FFE7-0204-A086-EBEC-D2A03A0E56CB" author="perso"> <title>CA: prof et admin</title> <abstract/> <elements> <element id="s_442AAB3A-42DA-F9BF-75E7-D2A0663FD5FF" begin="985690" dur="373222" author="" date="2010/09/02" color="16711680" src=""> <title/> <abstract/> <audio source=""/> <tags/> </element> <element id="s_0050F043-3AD2-0A7C-6699-D2A03A1EBA02" begin="5052858" dur="124407" author="" date="2010/09/02" color="10053375" src=""> <title>conseil de classe</title> <abstract>Reprise de la figure precedente</abstract> <audio source="undefined"/> <tags/> </element> </elements> </decoupage> <decoupage id="c_EEEF5C29-86E1-4AAE-E068-04EB5B00E492" author="perso"> <title>TC: prof et admin</title> <abstract/> <elements> <element id="s_880D9D4B-8BC0-BA43-5ECA-04EBA9FC9E59" begin="2426894" dur="141478" author="" date="2010/02/25" color="10053375" src=""> <title>Conseil de classe</title> <abstract/> <audio source=""/> <tags> <tag>Argumentation</tag> </tags> </element> <element id="s_D568A57C-7110-DED2-3165-04EC54387060" begin="5052858" dur="124407" author="" date="2010/02/25" color="10053375" src=""> <title>conseil de classe</title> <abstract>Reprise de la figure precedente</abstract> <audio source="undefined"/> <tags/> </element> </elements> </decoupage> </ensemble> </content> </annotations> <displays> <display id="0" title="Init view" idsel="laurentcantet_entrelesmurs" tc="2426424" zoom="0" scroll="0" infoBAB=""> <audio source=""/> <content id="laurentcantet_entrelesmurs"> <decoupage idens="en_2" id="de_PPP" tagsSelect=""/> <decoupage idens="laurentcantet_entrelesmurs" id="c_14A2E638-1936-97DC-E303-2DBA6A82A8B3" tagsSelect=""/> <decoupage idens="ens_perso" id="c_EEEF5C29-86E1-4AAE-E068-04EB5B00E492" tagsSelect=""/> <decoupage idens="ens_perso" id="c_EFC3FFE7-0204-A086-EBEC-D2A03A0E56CB" tagsSelect=""/> </content> </display> </displays> <edits> <editing id="0" tags=""> <title>Bout a bout 1</title> <abstract/> <edit id="edit1" tags=""> <eList/> <caption/> <audio/> <mList/> </edit> <edit id="edit2" tags=""> <eList/> <caption/> <audio/> <mList/> </edit> </editing> </edits> </iri>'
+ self.project3.ldt = self.LU.generate_ldt(Content.objects.all())
self.project3.id = "333"
self.project3.ldt_id = str(uuid.uuid1())
self.project3.description = "proj3description"
@@ -55,9 +76,12 @@
#test deletion of project with annotations
def test_del_project_v2(self):
+ self.cont4 = Content(iriurl="cont4_id/iriurl4", duration=100)
+ self.cont4.iri_id = "cont4_id"
+ self.cont4.save()
- self.project4 = Project(title="titleproj3", owner=self.user)
- self.project4.ldt = '<iri ldtversion="1.0.3" xmlns:dc="http://dublincore.org/documents/dcmi-namespace/"><project id="af3b99e4-b695-11df-bfde-00145ea4a333" user="admin" title="CA:reponse a TC" abstract=""/> <medias> <media extra="" id="laurentcantet_entrelesmurs" pict="" src="http://amateur.iri.centrepompidou.fr//atelier/static/media/ldt/laurentcantet_entrelesmurs/laurentcantet_entrelesmurs.iri" video="rtmp://media.iri.centrepompidou.fr/ddc_player/video/regardssignes/"/> </medias> <annotations> <content id="laurentcantet_entrelesmurs"> <ensemble id="ens_perso" idProject="fe0d5d4c-2201-11df-8a24-00145ea4a2be" title="Decoupages personnels" author="perso" abstract=""> <decoupage id="c_EFC3FFE7-0204-A086-EBEC-D2A03A0E56CB" author="perso"> <title>CA: prof et admin</title> <abstract/> <elements> <element id="s_442AAB3A-42DA-F9BF-75E7-D2A0663FD5FF" begin="985690" dur="373222" author="" date="2010/09/02" color="16711680" src=""> <title/> <abstract/> <audio source=""/> <tags/> </element> <element id="s_0050F043-3AD2-0A7C-6699-D2A03A1EBA02" begin="5052858" dur="124407" author="" date="2010/09/02" color="10053375" src=""> <title>conseil de classe</title> <abstract>Reprise de la figure precedente</abstract> <audio source="undefined"/> <tags/> </element> </elements> </decoupage> <decoupage id="c_EEEF5C29-86E1-4AAE-E068-04EB5B00E492" author="perso"> <title>TC: prof et admin</title> <abstract/> <elements> <element id="s_880D9D4B-8BC0-BA43-5ECA-04EBA9FC9E59" begin="2426894" dur="141478" author="" date="2010/02/25" color="10053375" src=""> <title>Conseil de classe</title> <abstract/> <audio source=""/> <tags> <tag>Argumentation</tag> </tags> </element> <element id="s_D568A57C-7110-DED2-3165-04EC54387060" begin="5052858" dur="124407" author="" date="2010/02/25" color="10053375" src=""> <title>conseil de classe</title> <abstract>Reprise de la figure precedente</abstract> <audio source="undefined"/> <tags/> </element> </elements> </decoupage> </ensemble> </content> </annotations> <displays> <display id="0" title="Init view" idsel="laurentcantet_entrelesmurs" tc="2426424" zoom="0" scroll="0" infoBAB=""> <audio source=""/> <content id="laurentcantet_entrelesmurs"> <decoupage idens="en_2" id="de_PPP" tagsSelect=""/> <decoupage idens="laurentcantet_entrelesmurs" id="c_14A2E638-1936-97DC-E303-2DBA6A82A8B3" tagsSelect=""/> <decoupage idens="ens_perso" id="c_EEEF5C29-86E1-4AAE-E068-04EB5B00E492" tagsSelect=""/> <decoupage idens="ens_perso" id="c_EFC3FFE7-0204-A086-EBEC-D2A03A0E56CB" tagsSelect=""/> </content> </display> </displays> <edits> <editing id="0" tags=""> <title>Bout a bout 1</title> <abstract/> <edit id="edit1" tags=""> <eList/> <caption/> <audio/> <mList/> </edit> <edit id="edit2" tags=""> <eList/> <caption/> <audio/> <mList/> </edit> </editing> </edits> </iri>'
+ self.project4 = Project(title="titleproj4", owner=self.user)
+ self.project4.ldt=self.LU.generate_ldt(Content.objects.all())
self.project4.id = "444"
self.project4.ldt_id = str(uuid.uuid1())
self.project4.description = "proj4description"
@@ -74,4 +98,77 @@
self.project4.delete()
with self.assertRaises(Project.DoesNotExist):
- Project.objects.get(ldt_id=self.project4.ldt_id)
\ No newline at end of file
+ Project.objects.get(ldt_id=self.project4.ldt_id)
+
+ def test_clean_database_project(self) :
+ self.cont5 = Content(iriurl="cont5_id/iriurl5", duration=123)
+ self.cont5.iri_id = "cont5_id"
+ self.cont5.save()
+
+ self.cont6 = Content(iriurl="cont6_id/iriurl6", duration=100)
+ self.cont6.iri_id = "cont6_id"
+ self.cont6.save()
+
+ self.cont7 = Content(iriurl="cont7_id/iriurl7", duration=100)
+ self.cont7.iri_id = "cont7_id"
+ self.cont7.save()
+
+ self.project.contents.add(self.cont5, self.cont6)
+
+ doc = self.LU.generate_ldt(Content.objects.all())
+
+ #project5 : valid project
+ self.project5 = Project(title="titleproj5", owner=self.user)
+ ldt = lxml.etree.tostring(doc, pretty_print = False)
+ self.project5.ldt = ldt
+ self.project5.id = "555"
+ self.project5.ldt_id = str(uuid.uuid1())
+ self.project5.description = "proj5description"
+ self.project5.save()
+
+ #project6 : project with empty ldt
+ self.project6 = Project(title="titleproj5", owner=self.user)
+ self.project6.id = "666"
+ self.project6.ldt_id = str(uuid.uuid1())
+ self.project6.description = "proj6description"
+ self.project6.save()
+
+ #project7 : project with a non-existing media
+
+ self.project7 = Project(title="titleproj7", owner=self.user)
+ self.project7.id = "777"
+ self.project7.ldt_id = str(uuid.uuid1())
+ self.project7.ldt = '<iri><project id="a18ec3de-49c1-11e2-8e5d-00161798aedb" title="" user="IRI Web" abstract=""/><medias><media id="non_existing_media" src="ldt/non_existing_media/non_existing_media_iri_url" video="%(stream_url)s" pict="" extra=""/></medias><annotations/><displays><display id="0" title="generated" idsel="cont5_id" tc="0"><content id="cont5_id"/><content id="cont6_id"/><content id="cont7_id"/></display></displays><edits/></iri>'
+ self.project7.description = "proj7description"
+ self.project7.save()
+
+ #project8 : project with multiple medias some valid and some that don't exist
+ self.project8 = Project(title="titleproj8", owner=self.user)
+ self.project8.id = "888"
+ self.project8.ldt_id = str(uuid.uuid1())
+ self.project8.ldt = '<iri><project id="a18ec3de-49c1-11e2-8e5d-00161798aedb" title="" user="IRI Web" abstract=""/><medias><media id="cont5_id" src="ldt/cont5_id/iriurl5" video="%(stream_url)s" pict="" extra=""/><media id="non_existing_media" src="ldt/non_existing_media/non_existing_media_iri_url" video="%(stream_url)s" pict="" extra=""/><media id="cont6_id" src="ldt/cont6_id/iriurl6" video="%(stream_url)s" pict="" extra=""/><media id="cont7_id" src="ldt/cont7_id/iriurl7" video="%(stream_url)s" pict="" extra=""/></medias><annotations/><displays><display id="0" title="generated" idsel="cont5_id" tc="0"><content id="cont5_id"/><content id="cont6_id"/><content id="cont7_id"/></display></displays><edits/></iri>'
+ self.project8.description = "proj8description"
+ self.project8.save()
+
+ #project9 : project without any media
+ self.project9 = Project(title="titleproj9", owner=self.user)
+ self.project9.id = "999"
+ self.project9.ldt_id = str(uuid.uuid1())
+ self.project9.ldt = '<iri><project id="a18ec3de-49c1-11e2-8e5d-00161798aedb" title="" user="IRI Web" abstract=""/><medias></medias><annotations/><displays><display id="0" title="generated" idsel="cont5_id" tc="0"><content id="cont5_id"/><content id="cont6_id"/><content id="cont7_id"/></display></displays><edits/></iri>'
+ self.project9.description = "proj9description"
+ self.project9.save()
+
+ call_command('set_projectldtiri')
+
+ with self.assertRaises(Project.DoesNotExist):
+ Project.objects.get(ldt_id=self.project6.ldt_id)
+
+ with self.assertRaises(Project.DoesNotExist):
+ Project.objects.get(ldt_id=self.project7.ldt_id)
+
+ with self.assertRaises(Project.DoesNotExist):
+ Project.objects.get(ldt_id=self.project9.ldt_id)
+
+ self.assertEqual(ldt, self.project5.ldt)
+
+
\ No newline at end of file
--- a/src/ldt/ldt/ldt_utils/utils.py Mon Dec 10 15:19:57 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/utils.py Thu Dec 20 15:12:51 2012 +0100
@@ -8,7 +8,6 @@
import uuid
from ldt.utils.url import request_with_auth
from ldt.utils.url import absurl_norequest
-import logging
__BOOLEAN_DICT = {
'false':False,
@@ -58,7 +57,7 @@
videopath = unicode(content.videopath)
media = lxml.etree.SubElement(medias, "media")
media.set(u"id", content.iri_id)
- media.set(u"src", content.iri_url(web_url))
+ media.set(u"src", content.relative_iri_url())
media.set(u"video", videopath)
media.set(u"pict", u"")
media.set(u"extra", u"")
@@ -322,7 +321,7 @@
idsel = content.iri_id
elementMedia = lxml.etree.SubElement(elementMedias, 'media')
elementMedia.set('id', content.iri_id)
- elementMedia.set('src', content.iri_url())
+ elementMedia.set('src', content.relative_iri_url())
if content.videopath != None :
elementMedia.set('video', content.videopath)
--- a/src/ldt/ldt/ldt_utils/views/lignesdetemps.py Mon Dec 10 15:19:57 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/views/lignesdetemps.py Thu Dec 20 15:12:51 2012 +0100
@@ -12,12 +12,13 @@
from ldt.ldt_utils.searchutils import search_generate_ldt
from ldt.utils.url import absstatic, absurl
from ldt.utils.web_url_management import get_web_url
+from ldt.utils.projectldt_parser import absolute_src_xml, relative_src_xml
import base64
import django.core.urlresolvers
import lxml.etree
from django.contrib.sites.models import Site
from django.template import Context, Template
-
+
def search_index_get(request, field, query):
language_code = request.LANGUAGE_CODE[:2]
@@ -43,6 +44,7 @@
resp = HttpResponse(mimetype="text/xml")
doc, _ = search_generate_ldt(request, field, query)
+ doc = absolute_src_xml(doc)
doc.write(resp, pretty_print=True)
return resp
@@ -100,7 +102,6 @@
ldtgen = LdtUtils()
doc = ldtgen.generate_init([project_id, content_id, ensemble_id, cutting_id, segment_id], 'ldt.ldt_utils.views.lignesdetemps.ldt_segment', 'ldt.ldt_utils.views.lignesdetemps.highlight_segment')
-
return HttpResponse(lxml.etree.tostring(lxml.etree.ElementTree(doc), pretty_print=True), mimetype="text/xml;charset=utf-8")
def highlight_segment(request, project_id, content_id, ensemble_id, cutting_id, segment_id):
@@ -130,6 +131,7 @@
if project_id and project_id != "_" :
project = Project.safe_objects.get(ldt_id=project_id) #@UndefinedVariable
ldtdoc = lxml.etree.fromstring(project.ldt_encoded)
+ ldtdoc = absolute_src_xml(ldtdoc)
ldtdoc = set_forbidden_stream(ldtdoc, request.user)
displays_node = ldtdoc.find("displays")
if not displays_node:
@@ -175,6 +177,7 @@
}
doc = ldtgen.generate_ldt(content_list, "segment : ", author=username, startSegment=start_segment)
+ doc = absolute_src_xml(doc)
doc = set_forbidden_stream(doc, request.user)
doc.write(resp, pretty_print=('DEBUG' in dir(settings) and settings.DEBUG))
@@ -243,6 +246,7 @@
doc = lxml.etree.fromstring(project.ldt_encoded)
doc = set_forbidden_stream(doc, request.user)
+ doc = absolute_src_xml(doc)
resp.write(lxml.etree.tostring(doc, pretty_print=True, xml_declaration=True, encoding="utf-8"))
return resp
@@ -254,8 +258,10 @@
ldt = request.POST['ldt']
id = request.POST['id']
ldtproject = Project.safe_objects.select_related().get(ldt_id=id) #@UndefinedVariable
-
+ ldtxml=lxml.etree.fromstring(ldt)
#save xml ldt
+ ldt, modif, no_more_media = relative_src_xml(ldtxml)
+ ldt = lxml.etree.tostring(ldt, pretty_print=True)
ldtproject.ldt = ldt
doc = lxml.etree.fromstring(ldtproject.ldt_encoded)
@@ -340,6 +346,7 @@
ldtgen = LdtUtils()
doc = ldtgen.generate_ldt(contentList, title=contentList[0].title, startSegment=startSegment)
doc = set_forbidden_stream(doc, request.user)
+ doc = absolute_src_xml(doc)
doc.write(resp, pretty_print=True)
return resp
--- a/src/ldt/ldt/static/ldt/css/ldtform.css Mon Dec 10 15:19:57 2012 +0100
+++ b/src/ldt/ldt/static/ldt/css/ldtform.css Thu Dec 20 15:12:51 2012 +0100
@@ -4,7 +4,7 @@
min-width: 0;
}
-#add_content, #add_contribution, #add_group {
+#add_contribution, #add_group {
padding: 10px;
}
--- a/src/ldt/ldt/utils/url.py Mon Dec 10 15:19:57 2012 +0100
+++ b/src/ldt/ldt/utils/url.py Thu Dec 20 15:12:51 2012 +0100
@@ -2,15 +2,22 @@
from django.core.urlresolvers import reverse
from ldt.utils.web_url_management import get_web_url
from ldt import settings
+from django.conf import settings as djangosettings
import httplib2
import re
import urlparse
+import logging
def absstatic(request, path):
domain=get_web_url(request)
new_path = staticfiles_storage.url(path)
return urlparse.urljoin(domain, new_path)
+def absolute_media_url():
+ domain=get_web_url()
+
+ return urlparse.urljoin(domain, djangosettings.MEDIA_URL)
+
def absurl(request, viewname, urlconf=None, args=None, kwargs=None, prefix=None, current_app=None):
domain=get_web_url(request)
path=reverse(viewname, urlconf, args, kwargs, prefix, current_app)