# HG changeset patch # User ymh # Date 1305739059 -7200 # Node ID 9886ab183b09af0edf4215781b9c2845e465a67e # Parent 4535dafa6007c35934d729e64d67a2b014ce2c12 add permalink + corrcetion config with static and media path. update urls diff -r 4535dafa6007 -r 9886ab183b09 src/ldt/ldt/ldt_utils/fileimport.py --- a/src/ldt/ldt/ldt_utils/fileimport.py Mon May 16 20:00:36 2011 +0200 +++ b/src/ldt/ldt/ldt_utils/fileimport.py Wed May 18 19:17:39 2011 +0200 @@ -130,7 +130,7 @@ f.close() - destPath = os.path.join(os.path.join(os.path.join(settings.MEDIA_ROOT, "media"), "ldt"), self.id); + destPath = os.path.join(os.path.join(settings.MEDIA_ROOT, "ldt"), self.id); if not os.path.exists(destPath): os.makedirs(destPath) shutil.move(os.path.join(self.basepath, self.src), os.path.join(destPath, os.path.basename(self.src))) diff -r 4535dafa6007 -r 9886ab183b09 src/ldt/ldt/ldt_utils/models.py --- a/src/ldt/ldt/ldt_utils/models.py Mon May 16 20:00:36 2011 +0200 +++ b/src/ldt/ldt/ldt_utils/models.py Wed May 18 19:17:39 2011 +0200 @@ -178,7 +178,7 @@ return unicode(web_url) + unicode(settings.MEDIA_URL) + u"ldt/" + unicode(self.iriurl) def iri_file_path(self): - return os.path.join(os.path.join(os.path.join(os.path.join(settings.MEDIA_ROOT, "media"), "ldt"), self.iri_id), os.path.basename(self.iriurl)) + return os.path.join(os.path.join(os.path.join(settings.MEDIA_ROOT, "ldt"), self.iri_id), os.path.basename(self.iriurl)) def iri_url_template(self): return "${web_url}${media_url}ldt/" + unicode(self.iri_id) + "/" + os.path.basename(self.iriurl) diff -r 4535dafa6007 -r 9886ab183b09 src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/projectslist.html --- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/projectslist.html Mon May 16 20:00:36 2011 +0200 +++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/projectslist.html Wed May 18 19:17:39 2011 +0200 @@ -10,9 +10,9 @@ {% url ldt.ldt_utils.views.project_json_id project.ldt_id as json_url_id %} {% if is_gecko %} -
{% trans 'open ldt' %}
+
{% trans 'open ldt' %}
{% else %} -
{% trans 'open ldt' %}
+
{% trans 'open ldt' %}
{% endif %}
{% trans 'copy project' %}
{% trans 'link json by id' %}
diff -r 4535dafa6007 -r 9886ab183b09 src/ldt/ldt/ldt_utils/tests.py --- a/src/ldt/ldt/ldt_utils/tests.py Mon May 16 20:00:36 2011 +0200 +++ b/src/ldt/ldt/ldt_utils/tests.py Wed May 18 19:17:39 2011 +0200 @@ -66,7 +66,8 @@ self.project.contents.add(self.cont1, self.cont2) f = tempfile.TemporaryFile(mode='r+') - self.LU.generateLdt(Content.objects.all(), f) + doc = self.LU.generateLdt(Content.objects.all()) + doc.write(f, pretty_print=True) f.seek(0) ldoc = lxml.etree.parse(f) self.assertEqual(ldoc.xpath("/iri/displays/display/content")[9].get("id"), self.cont2.iri_id) diff -r 4535dafa6007 -r 9886ab183b09 src/ldt/ldt/ldt_utils/urls.py --- a/src/ldt/ldt/ldt_utils/urls.py Mon May 16 20:00:36 2011 +0200 +++ b/src/ldt/ldt/ldt_utils/urls.py Wed May 18 19:17:39 2011 +0200 @@ -26,6 +26,10 @@ url(r'^filterprojects/_(?P[\w\%\_\-\+]*?)/(?Ptrue|false)/(?P\d)$', "views.projectsfilter",), url(r'^filtercontents/_(?P[\w\%\_\-\+]*?)/$', "views.contentsfilter",), (r'^embedpopup/?$', "views.popup_embed"), + url(r'^segment/(?P.*)/(?P.*)/(?P.*)/(?P.*)/(?P.*)/$', 'views.index_segment'), + url(r'^segmentInit/(?P.*)/(?P.*)/(?P.*)/(?P.*)/(?P.*)/$', 'views.init_segment'), + url(r'^segmentLdt/(?P.*)/(?P.*)/(?P.*)/(?P.*)/(?P.*)/$', 'views.ldt_segment'), + url(r'^segmentHighlight/(?P.*)/(?P.*)/(?P.*)/(?P.*)/(?P.*)/$', 'views.highlight_segment'), ) urlpatterns += patterns('', @@ -39,8 +43,8 @@ url(r'^space/content/create/$', 'views.write_content'), url(r'^space/content/update/(?P[\w-]+)$', 'views.write_content'), url(r'^space/ldt/$', 'views.list_ldt'), - url(r'^space/ldt/indexproject/(?P.*)$', 'views.indexProject'), - url(r'^space/ldt/indexprojectfull/(?P.*)$', 'views.indexProjectFull'), + url(r'^space/ldt/indexproject/(?P.*)$', 'views.index_project', name='index_project'), + url(r'^space/ldt/indexprojectfull/(?P.*)$', 'views.index_project', {'full': True}, name='index_project_full'), url(r'^space/ldt/init/(?P.*)/(?P.+)$', 'views.init', name='space_ldt_init'), url(r'^space/ldt/project/(?P.*)$', 'views.ldtProject'), url(r'^space/ldt/create/$', 'views.create_ldt_view'), diff -r 4535dafa6007 -r 9886ab183b09 src/ldt/ldt/ldt_utils/utils.py --- a/src/ldt/ldt/ldt_utils/utils.py Mon May 16 20:00:36 2011 +0200 +++ b/src/ldt/ldt/ldt_utils/utils.py Wed May 18 19:17:39 2011 +0200 @@ -54,7 +54,7 @@ class LdtUtils(object): - def generateLdt(self, contentList, file, title=u"", author=u"IRI Web", web_url=u"", media_url="", startSegment=None, contributions=None): + def generateLdt(self, contentList, title=u"", author=u"IRI Web", web_url=u"", startSegment=None, contributions=None): iri = lxml.etree.Element(u'iri') doc = lxml.etree.ElementTree(iri) @@ -141,14 +141,12 @@ idas.set(u"idseg", startSegment["idsegment"]) lxml.etree.SubElement(iri, "edits") + return doc - doc.write(file, pretty_print=True) - def generateInit(self, url, method, search=None): iri = lxml.etree.Element('iri') - lxml.etree.ElementTree(iri) elementFiles = lxml.etree.SubElement(iri, 'files') elementInit = lxml.etree.SubElement(elementFiles, 'init') diff -r 4535dafa6007 -r 9886ab183b09 src/ldt/ldt/ldt_utils/views.py --- a/src/ldt/ldt/ldt_utils/views.py Mon May 16 20:00:36 2011 +0200 +++ b/src/ldt/ldt/ldt_utils/views.py Wed May 18 19:17:39 2011 +0200 @@ -199,7 +199,9 @@ ldtgen = LdtUtils() - ldtgen.generateLdt(contentList, file=resp, title=u"Recherche : " + queryStr) + doc = ldtgen.generateLdt(contentList, title=u"Recherche : " + queryStr) + doc.write(resp, pretty_print=True) + return resp @@ -231,8 +233,6 @@ seg.set('idseg', resultMap['element_id']) seg.set('idvue', "") seg.set('crit', "") - - return doc return HttpResponse(lxml.etree.tostring(doc, pretty_print=True), mimetype="text/xml;charset=utf-8") @@ -279,16 +279,74 @@ def created_ldt(request): return render_to_response('ldt/ldt_utils/save_done.html', context_instance=RequestContext(request)) + def index_segment(request, project_id, content_id, cutting_id, ensemble_id, segment_id): - pass + url_str = settings.WEB_URL + reverse("ldt.ldt_utils.views.init_segment", args=[project_id, content_id, ensemble_id, cutting_id, segment_id]) + post_url = "" + language_code = request.LANGUAGE_CODE[:2] + readonly = 'true' + template_path = 'ldt/ldt_utils/init_ldt.html' + + return render_to_response(template_path, {'LDT_MEDIA_PREFIX': settings.LDT_MEDIA_PREFIX, 'colorurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/pkg/color.xml', 'i18nurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/pkg/i18n', 'language': language_code, 'baseurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/', 'url': url_str, 'posturl': post_url, 'id': id, 'readonly': readonly}, context_instance=RequestContext(request)) + +def init_segment(request, project_id, content_id, ensemble_id, cutting_id, segment_id): + + ldtgen = LdtUtils() + doc = ldtgen.generateInit([project_id, content_id, ensemble_id, cutting_id, segment_id], 'ldt.ldt_utils.views.ldt_segment', 'ldt.ldt_utils.views.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): + + iri = lxml.etree.Element('iri') + doc = lxml.etree.ElementTree(iri) + + seg = lxml.etree.SubElement(iri, 'seg') + seg.set('idctt', content_id) + seg.set('idens', ensemble_id) + seg.set('iddec', cutting_id) + seg.set('idseg', segment_id) + seg.set('idvue', "") + seg.set('crit', "") + + return HttpResponse(lxml.etree.tostring(doc, pretty_print=True), mimetype="text/xml;charset=utf-8") + -def init_segment(request, project_id, content_id, cutting_id, ensemble_id, segment_id): - pass +def ldt_segment(request, project_id, content_id, ensemble_id, cutting_id, segment_id): -def ldt_segment(request, project_id, content_id, cutting_id, ensemble_id, segment_id): - pass + resp = HttpResponse(mimetype="text/xml") + resp['Cache-Control'] = 'no-cache, must-revalidate' + resp['Pragma'] = 'no-cache' -def indexProject(request, id): + if project_id and project_id != "_" : + project = Project.objects.get(ldt_id=project_id) #@UndefinedVariable +#TODO check that segment is in didplay + resp.write(project.ldt) + else: + # generate ldt from + ldtgen = LdtUtils() + content_list = Content.objects.filter(iri_id=content_id) + if request.user and request.user.username: + username = request.user.username + else: + username = "webuser" + + start_segment = { + 'idcontent': content_id, + 'idgroup' : ensemble_id, + 'idcutting' : cutting_id, + 'idsegment' : segment_id + } + + doc = ldtgen.generateLdt(content_list, "segment : ", author=username, startSegment=start_segment) + + doc.write(resp, pretty_print = ('DEBUG' in dir(settings) and settings.DEBUG)) + + return resp + +# ldtgen. + +def index_project(request, id, full= False): urlStr = settings.WEB_URL + reverse("space_ldt_init", args=['ldtProject', id]) posturl = settings.WEB_URL + reverse("ldt.ldt_utils.views.save_ldtProject") @@ -300,21 +358,13 @@ else: readonly = 'false' - return render_to_response('ldt/ldt_utils/init_ldt.html', {'LDT_MEDIA_PREFIX': settings.LDT_MEDIA_PREFIX, 'colorurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/pkg/color.xml', 'i18nurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/pkg/i18n', 'language': language_code, 'baseurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/', 'url': urlStr, 'posturl': posturl, 'id': id, 'readonly': readonly}, context_instance=RequestContext(request)) - -def indexProjectFull(request, id): - - urlStr = settings.WEB_URL + reverse("space_ldt_init", args=['ldtProject', id]) - posturl = settings.WEB_URL + reverse("ldt.ldt_utils.views.save_ldtProject") - language_code = request.LANGUAGE_CODE[:2] + if full: + template_path = 'ldt/ldt_utils/init_ldt_full.html' + else: + template_path = 'ldt/ldt_utils/init_ldt.html' + + return render_to_response(template_path, {'LDT_MEDIA_PREFIX': settings.LDT_MEDIA_PREFIX, 'colorurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/pkg/color.xml', 'i18nurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/pkg/i18n', 'language': language_code, 'baseurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/', 'url': urlStr, 'posturl': posturl, 'id': id, 'readonly': readonly}, context_instance=RequestContext(request)) - ldt = get_object_or_404(Project, ldt_id=id) - if ldt.state == 2: #published - readonly = 'true' - else: - readonly = 'false' - - return render_to_response('ldt/ldt_utils/init_ldt_full.html', {'LDT_MEDIA_PREFIX': settings.LDT_MEDIA_PREFIX, 'colorurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/pkg/color.xml', 'i18nurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/pkg/i18n', 'language': language_code, 'baseurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/', 'url': urlStr, 'posturl': posturl, 'id': id, 'readonly': readonly}, context_instance=RequestContext(request)) def init(request, method, url): ldtgen = LdtUtils() @@ -526,7 +576,8 @@ contentList = Content.objects.filter(iri_id=url) #@UndefinedVariable ldtgen = LdtUtils() - ldtgen.generateLdt(contentList, file=resp, title=contentList[0].title, startSegment=startSegment) + doc = ldtgen.generateLdt(contentList, title=contentList[0].title, startSegment=startSegment) + doc.write(resp, pretty_print=True) return resp @@ -548,9 +599,9 @@ # Modal window is not used with firefox is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); if is_gecko : - return HttpResponseRedirect(reverse('ldt.ldt_utils.views.indexProjectFull', args=[project.ldt_id])) + return HttpResponseRedirect(reverse('index_project_full', args=[project.ldt_id])) else: - return HttpResponseRedirect(reverse('ldt.ldt_utils.views.indexProject', args=[project.ldt_id])) + return HttpResponseRedirect(reverse('index_project', args=[project.ldt_id])) else: form = AddProjectForm() # Modal window is not used with firefox, so we ask to submit the form in _parent in firefox case. @@ -606,7 +657,11 @@ if form.is_valid(): user = request.user project = project.copy_project(title=request.POST['title'], user=user) - return HttpResponseRedirect(reverse('ldt.ldt_utils.views.indexProject', args=[project.ldt_id])) + is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); + if is_gecko: + return HttpResponseRedirect(reverse('index_project_full', args=[project.ldt_id])) + else: + return HttpResponseRedirect(reverse('index_project', args=[project.ldt_id])) else: form = CopyProjectForm return render_to_response('ldt/ldt_utils/copy_ldt.html', {'form':form, 'project':project}, context_instance=RequestContext(request)) diff -r 4535dafa6007 -r 9886ab183b09 src/ldt/ldt/user/urls.py --- a/src/ldt/ldt/user/urls.py Mon May 16 20:00:36 2011 +0200 +++ b/src/ldt/ldt/user/urls.py Wed May 18 19:17:39 2011 +0200 @@ -8,7 +8,7 @@ url(r'^emailchange/$', 'ldt.user.views.change_email'), url(r'^emailchange/done/$', 'ldt.user.views.change_email_done'), # url(r'^space/ldt/$', 'ldt.ldt_utils.views.list_ldt'), -# url(r'^space/ldt/indexproject/(?P.*)$', 'ldt.ldt_utils.views.indexProject'), +# url(r'^space/ldt/indexproject/(?P.*)$', 'ldt.ldt_utils.views.index_project'), # url(r'^space/ldt/init/(?P.*)/(?P.*)$', 'ldt.ldt_utils.views.init'), # url(r'^space/ldt/project/(?P.*)$', 'ldt.ldt_utils.views.ldtProject'), # url(r'^space/ldt/create/$', 'ldt.ldt_utils.views.create_ldt_view'), diff -r 4535dafa6007 -r 9886ab183b09 web/ldtplatform/config.py.tmpl --- a/web/ldtplatform/config.py.tmpl Mon May 16 20:00:36 2011 +0200 +++ b/web/ldtplatform/config.py.tmpl Wed May 18 19:17:39 2011 +0200 @@ -12,18 +12,19 @@ STREAM_SRC_PREFIX = "" +BASE_STATIC_ROOT = os.path.abspath(BASE_DIR + "../static/").rstrip("/")+"/" # Absolute path to the directory that holds media. # Example: "/home/media/media.lawrence.com/" -MEDIA_ROOT = os.path.abspath(BASE_DIR + "../static/").rstrip("/")+"/" +MEDIA_ROOT = BASE_STATIC_ROOT + "media/" # Absolute path to the directory that static files (js, css, swf...) # DO NOT forget to do command line ./manage.py collectstatic to gather static media into the web/static folder -STATIC_ROOT = MEDIA_ROOT + "site/" +STATIC_ROOT = BASE_STATIC_ROOT + "site/" -CONTENT_ROOT = MEDIA_ROOT + "media/content/" +CONTENT_ROOT = BASE_STATIC_ROOT + "content/" # PATH where uploaded media are put. STREAM_PATH = CONTENT_ROOT diff -r 4535dafa6007 -r 9886ab183b09 web/ldtplatform/urls.py --- a/web/ldtplatform/urls.py Mon May 16 20:00:36 2011 +0200 +++ b/web/ldtplatform/urls.py Wed May 18 19:17:39 2011 +0200 @@ -35,5 +35,5 @@ #(r'^$', 'social_auth.views.complete'), (r'^/?$', 'django.views.generic.simple.redirect_to', {'url': 'ldt'}), - #(r'^static/(?P.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}), + #(r'^static/(?P.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT}), )