--- a/web/ldt/ldt_utils/views.py Tue Oct 12 16:35:06 2010 +0200
+++ b/web/ldt/ldt_utils/views.py Tue Oct 12 19:09:13 2010 +0200
@@ -199,7 +199,8 @@
resp = HttpResponse(mimetype="text/xml")
resp['Cache-Control']='no-cache, must-revalidate'
resp['Pragma']='no-cache'
- doc.write(resp, pretty_print=True)
+
+ resp.write( etree.tostring(doc, pretty_print=True, xml_declaration=True, encoding="utf-8"))
return resp
def ldtProject(request, id):
@@ -216,18 +217,18 @@
project = get_object_or_404(Project,ldt_id=id)
- return project_json(request, project)
+ return project_json(request, project, False)
def project_json_externalid(request, id):
res_proj = get_list_or_404(Project.objects.order_by('-modification_date'),contents__external_id = id)
- return project_json(request, res_proj[0])
+ return project_json(request, res_proj[0], False)
-def project_json(request, project):
+def project_json(request, project, serialize_contents = True):
if not ldt_auth.checkAccess(request.user, project):
return HttpResponseForbidden(_("You can not access this project"))
@@ -256,7 +257,7 @@
escape_bool = {'true': True, 'false': False, "0": False, "1": True}.get(escape_str.lower())
- ps = ProjectSerializer(project)
+ ps = ProjectSerializer(project, serialize_contents)
project_dict = ps.serialize_to_cinelab()
json_str = simplejson.dumps(project_dict, ensure_ascii=False, indent=indent)
@@ -331,35 +332,31 @@
#save xml ldt
ldtproject.ldt=ldt
- ldtproj = get_attrib(ldtproject)
- ldtproj.save()
+
+ doc = lxml.etree.fromstring(ldtproject.ldt.encode( "utf-8" ))
+ result = doc.xpath("/iri/project")
+
+ #set new title
+ ldtproject.title = result[0].get("title")
+
+ #get new content list
+ new_contents=[]
+ result = doc.xpath("/iri/medias/media")
+ for medianode in result:
+ id = medianode.get("id")
+ new_contents.append(id)
+
+ #set new content list
+ for c in ldtproject.contents.all():
+ if not c.iri_id in new_contents:
+ ldtproject.contents.remove(c)
+
+ ldtproject.save()
else:
ldt = ''
-
- return render_to_response('ldt/ldt_utils/save_done.html', {'ldt': ldt, 'id':id, 'title':title, 'contents': new_contents}, context_instance=RequestContext(request))
-
+ new_contents=[]
-def get_attrib(ldtproject):
-
- doc = lxml.etree.fromstring(ldtproject.ldt.encode( "utf-8" ))
- result = doc.xpath("/iri/project")
-
- #set new title
- ldtproject.title = result[0].get("title")
-
- #get new content list
- new_contents=[]
- result = doc.xpath("/iri/medias/media")
- for medianode in result:
- id = medianode.get("id")
- new_contents.append(id)
-
- #set new content list
- for c in ldtproject.contents.all():
- if not c.iri_id in new_contents:
- ldtproject.contents.remove(c)
-
- return ldtproject
+ return render_to_response('ldt/ldt_utils/save_done.html', {'ldt': ldt, 'id':id, 'title':ldtproject.title, 'contents': new_contents}, context_instance=RequestContext(request))