313 return HttpResponseRedirect(reverse('ldt.ldt_utils.views.published_project')) |
313 return HttpResponseRedirect(reverse('ldt.ldt_utils.views.published_project')) |
314 |
314 |
315 |
315 |
316 def search_listing(request): |
316 def search_listing(request): |
317 if not request.session.has_key('complete_results'): |
317 if not request.session.has_key('complete_results'): |
318 msg = _("Please enter valid keywords.") |
318 return HttpResponseRedirect(reverse('ldt.ldt_utils.views.published_project')) |
319 return render_to_response('ldt/ldt_utils/search_results.html', {'msg' : msg}, context_instance=RequestContext(request)) |
319 |
320 |
|
321 complete_results = request.session.get('complete_results') |
320 complete_results = request.session.get('complete_results') |
322 search = request.session.get('search') |
321 search = request.session.get('search') |
323 field = request.session.get('field') |
322 field = request.session.get('field') |
324 paginator = Paginator(complete_results, settings.LDT_RESULTS_PER_PAGE) |
323 paginator = Paginator(complete_results, settings.LDT_RESULTS_PER_PAGE) |
325 language_code = request.LANGUAGE_CODE[:2] |
324 language_code = request.LANGUAGE_CODE[:2] |
383 |
382 |
384 |
383 |
385 ldtgen = LdtUtils() |
384 ldtgen = LdtUtils() |
386 # generate_ldt(contentList, title=u"", author=u"IRI Web", web_url=u"", startSegment=None, projects=None): |
385 # generate_ldt(contentList, title=u"", author=u"IRI Web", web_url=u"", startSegment=None, projects=None): |
387 doc = ldtgen.generate_ldt(contentList, title=u"Recherche : " + queryStr, projects=projectList) |
386 doc = ldtgen.generate_ldt(contentList, title=u"Recherche : " + queryStr, projects=projectList) |
388 doc = set_forbidden_stream(doc, request.user) |
387 doc = set_forbidden_stream(doc, request.user) |
389 |
|
390 doc.write(resp, pretty_print=True) |
388 doc.write(resp, pretty_print=True) |
391 |
389 |
392 return resp |
390 return resp |
393 |
391 |
394 |
392 |
449 |
447 |
450 @login_required |
448 @login_required |
451 def create_ldt_view(request): |
449 def create_ldt_view(request): |
452 permission_formset = formset_factory(PermissionForm, extra=0) |
450 permission_formset = formset_factory(PermissionForm, extra=0) |
453 groups = request.user.groups.exclude(name=settings.PUBLIC_GROUP_NAME) |
451 groups = request.user.groups.exclude(name=settings.PUBLIC_GROUP_NAME) |
454 |
452 redirect_to = '' |
455 if request.method == "POST" : |
453 if request.method == "POST" : |
456 form = LdtAddForm(request.POST) |
454 form = LdtAddForm(request.POST) |
457 form_status = "none" |
455 form_status = "none" |
458 contents = Content.safe_objects.all() |
456 contents = Content.safe_objects.all() |
459 |
457 |
461 management_form = None |
459 management_form = None |
462 |
460 |
463 if form.is_valid() and group_form.is_valid(): |
461 if form.is_valid() and group_form.is_valid(): |
464 user = request.user |
462 user = request.user |
465 |
463 |
466 p = Project.create_project(title=form.cleaned_data['title'], user=user, contents=form.cleaned_data['contents'], |
464 project = Project.create_project(title=form.cleaned_data['title'], user=user, contents=form.cleaned_data['contents'], |
467 description=form.cleaned_data['description']) |
465 description=form.cleaned_data['description']) |
468 |
466 |
469 assign_object_to_groups(p, group_form.cleaned_data) |
467 assign_object_to_groups(project, group_form.cleaned_data) |
470 form_status = "saved" |
468 form_status = "saved" |
471 contents = [] |
469 is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); |
|
470 if is_gecko : |
|
471 redirect_to = reverse('index_project_full', args=[project.ldt_id]) |
|
472 else: |
|
473 return HttpResponseRedirect(reverse('index_project', args=[project.ldt_id])) |
|
474 |
472 else: |
475 else: |
473 form = LdtAddForm() |
476 form = LdtAddForm() |
474 contents = Content.safe_objects.all() #@UndefinedVariable |
477 contents = Content.safe_objects.all() #@UndefinedVariable |
475 |
478 |
476 perm_list = [] |
479 perm_list = [] |
481 management_form = permission.management_form |
484 management_form = permission.management_form |
482 group_form = zip(permission, groups) |
485 group_form = zip(permission, groups) |
483 |
486 |
484 form_status = "none" |
487 form_status = "none" |
485 |
488 |
486 return render_to_response('ldt/ldt_utils/create_ldt.html', {'contents': contents, 'form': form, 'group_form': group_form, 'management_form': management_form, 'form_status':form_status, 'create_project_action':reverse(create_ldt_view), 'language_code' : settings.LANGUAGE_CODE[2:]}, context_instance=RequestContext(request)) |
489 return render_to_response('ldt/ldt_utils/create_ldt.html', {'contents': contents, 'form': form, 'group_form': group_form, 'management_form': management_form, 'form_status':form_status, |
|
490 'redirect_to': redirect_to, 'create_project_action':reverse(create_ldt_view), 'language_code' : settings.LANGUAGE_CODE[2:]}, context_instance=RequestContext(request)) |
487 |
491 |
488 def created_ldt(request): |
492 def created_ldt(request): |
489 return render_to_response('ldt/ldt_utils/save_done.html', context_instance=RequestContext(request)) |
493 return render_to_response('ldt/ldt_utils/save_done.html', context_instance=RequestContext(request)) |
490 |
494 |
491 |
495 |
534 resp['Pragma'] = 'no-cache' |
538 resp['Pragma'] = 'no-cache' |
535 |
539 |
536 if project_id and project_id != "_" : |
540 if project_id and project_id != "_" : |
537 project = Project.safe_objects.get(ldt_id=project_id) #@UndefinedVariable |
541 project = Project.safe_objects.get(ldt_id=project_id) #@UndefinedVariable |
538 ldtdoc = lxml.etree.fromstring(project.ldt.encode("utf-8")) |
542 ldtdoc = lxml.etree.fromstring(project.ldt.encode("utf-8")) |
539 |
|
540 ldtdoc = set_forbidden_stream(ldtdoc, request.user) |
543 ldtdoc = set_forbidden_stream(ldtdoc, request.user) |
541 displays_node = ldtdoc.find("displays") |
544 displays_node = ldtdoc.find("displays") |
542 if not displays_node: |
545 if not displays_node: |
543 displays_node = lxml.etree.SubElement(ldtdoc, u"displays") |
546 displays_node = lxml.etree.SubElement(ldtdoc, u"displays") |
544 res = displays_node.xpath("display") |
547 res = displays_node.xpath("display") |
581 'idsegment' : segment_id |
584 'idsegment' : segment_id |
582 } |
585 } |
583 |
586 |
584 doc = ldtgen.generate_ldt(content_list, "segment : ", author=username, startSegment=start_segment) |
587 doc = ldtgen.generate_ldt(content_list, "segment : ", author=username, startSegment=start_segment) |
585 doc = set_forbidden_stream(doc, request.user) |
588 doc = set_forbidden_stream(doc, request.user) |
586 |
|
587 doc.write(resp, pretty_print=('DEBUG' in dir(settings) and settings.DEBUG)) |
589 doc.write(resp, pretty_print=('DEBUG' in dir(settings) and settings.DEBUG)) |
588 |
590 |
589 return resp |
591 return resp |
590 |
592 |
591 # ldtgen. |
593 |
592 |
594 @login_required |
593 def index_project(request, id, full=False): |
595 def index_project(request, id, full=False): |
594 |
596 |
595 urlStr = settings.WEB_URL + reverse("space_ldt_init", args=['ldt_project', id]) |
597 urlStr = settings.WEB_URL + reverse("space_ldt_init", args=['ldt_project', id]) |
596 posturl = settings.WEB_URL + reverse("ldt.ldt_utils.views.save_ldt_project") |
598 posturl = settings.WEB_URL + reverse("ldt.ldt_utils.views.save_ldt_project") |
597 language_code = request.LANGUAGE_CODE[:2] |
599 language_code = request.LANGUAGE_CODE[:2] |
612 |
614 |
613 def init(request, method, url): |
615 def init(request, method, url): |
614 ldtgen = LdtUtils() |
616 ldtgen = LdtUtils() |
615 |
617 |
616 doc = ldtgen.generate_init([url], 'ldt.ldt_utils.views.' + method, None) |
618 doc = ldtgen.generate_init([url], 'ldt.ldt_utils.views.' + method, None) |
|
619 |
|
620 library = doc.xpath('/iri/files/library')[0] |
|
621 for c in Content.objects.all(): |
|
622 elem = lxml.etree.SubElement(library, 'file') |
|
623 elem.set('src', c.iri_url()) |
|
624 elem.set('video', c.videopath) |
|
625 elem.set('title', c.title) |
|
626 elem.set('author', '') |
|
627 elem.set('category', '') |
|
628 elem.set('pict', '') |
|
629 elem.set('img', '') |
617 |
630 |
618 resp = HttpResponse(mimetype="text/xml") |
631 resp = HttpResponse(mimetype="text/xml") |
619 resp['Cache-Control'] = 'no-cache, must-revalidate' |
632 resp['Cache-Control'] = 'no-cache, must-revalidate' |
620 resp['Pragma'] = 'no-cache' |
633 resp['Pragma'] = 'no-cache' |
621 |
634 |
836 def create_project(request, iri_id): |
849 def create_project(request, iri_id): |
837 permission_formset = formset_factory(PermissionForm, extra=0) |
850 permission_formset = formset_factory(PermissionForm, extra=0) |
838 content = get_object_or_404(Content.safe_objects, iri_id=iri_id) |
851 content = get_object_or_404(Content.safe_objects, iri_id=iri_id) |
839 contents = [ content, ] |
852 contents = [ content, ] |
840 groups = request.user.groups.exclude(name=settings.PUBLIC_GROUP_NAME) |
853 groups = request.user.groups.exclude(name=settings.PUBLIC_GROUP_NAME) |
|
854 redirect_to = '' |
|
855 form_status = "none" |
|
856 |
841 if request.method == "POST" : |
857 if request.method == "POST" : |
842 |
858 |
843 group_form = permission_formset(request.POST) |
859 group_form = permission_formset(request.POST) |
844 management_form = None |
860 management_form = None |
845 |
|
846 form = AddProjectForm(request.POST) |
861 form = AddProjectForm(request.POST) |
|
862 |
847 if form.is_valid() and group_form.is_valid(): |
863 if form.is_valid() and group_form.is_valid(): |
848 user = request.user |
864 user = request.user |
849 project = Project.create_project(title=form.cleaned_data['title'], user=user, contents=contents, description=form.cleaned_data['description']) |
865 project = Project.create_project(title=form.cleaned_data['title'], user=user, contents=contents, description=form.cleaned_data['description']) |
|
866 form_status = "saved" |
850 # Modal window is not used with firefox |
867 # Modal window is not used with firefox |
851 is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); |
868 is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); |
852 if is_gecko : |
869 if is_gecko : |
853 return HttpResponseRedirect(reverse('index_project_full', args=[project.ldt_id])) |
870 redirect_to = reverse('index_project_full', args=[project.ldt_id]) |
854 else: |
871 else: |
855 return HttpResponseRedirect(reverse('index_project', args=[project.ldt_id])) |
872 return HttpResponseRedirect(reverse('index_project', args=[project.ldt_id])) |
856 assign_object_to_groups(project, group_form.cleaned_data) |
873 assign_object_to_groups(project, group_form.cleaned_data) |
857 else: |
874 else: |
858 form = AddProjectForm() |
875 form = AddProjectForm() |
863 |
880 |
864 management_form = permission.management_form |
881 management_form = permission.management_form |
865 group_form = zip(permission, groups) |
882 group_form = zip(permission, groups) |
866 # Modal window is not used with firefox, so we ask to submit the form in _parent in firefox case. |
883 # Modal window is not used with firefox, so we ask to submit the form in _parent in firefox case. |
867 target_parent = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); |
884 target_parent = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); |
868 return render_to_response('ldt/ldt_utils/create_ldt.html', {'form':form, 'contents':contents, 'groups' : groups, 'group_form': group_form, 'management_form': management_form, 'create_project_action':reverse("ldt.ldt_utils.views.create_project", args=[iri_id]), 'target_parent':target_parent}, context_instance=RequestContext(request)) |
885 return render_to_response('ldt/ldt_utils/create_ldt.html', {'form':form, 'form_status': form_status, 'contents':contents, 'groups' : groups, 'group_form': group_form, |
|
886 'management_form': management_form, 'redirect_to': redirect_to, 'create_project_action':reverse("ldt.ldt_utils.views.create_project", args=[iri_id]), 'target_parent':target_parent}, context_instance=RequestContext(request)) |
869 |
887 |
870 @login_required |
888 @login_required |
871 def update_project(request, ldt_id): |
889 def update_project(request, ldt_id): |
872 permission_formset = formset_factory(PermissionForm, extra=0) |
890 permission_formset = formset_factory(PermissionForm, extra=0) |
873 project = get_object_or_404(Project.safe_objects, ldt_id=ldt_id) |
891 project = get_object_or_404(Project.safe_objects, ldt_id=ldt_id) |
893 project.delete() |
911 project.delete() |
894 form_status = 'deleted' |
912 form_status = 'deleted' |
895 form = AddProjectForm() |
913 form = AddProjectForm() |
896 group_form = permission_formset() |
914 group_form = permission_formset() |
897 else: |
915 else: |
898 form_status = 'saved' |
916 form_status = 'none' |
899 form = AddProjectForm(request.POST) |
917 form = AddProjectForm(request.POST) |
900 group_form = permission_formset(request.POST) |
918 group_form = permission_formset(request.POST) |
901 |
919 |
902 if form.is_valid() and group_form.is_valid(): |
920 if form.is_valid() and group_form.is_valid(): |
903 |
921 |
910 res[0].set("abstract", project.description) |
928 res[0].set("abstract", project.description) |
911 project.ldt = lxml.etree.tostring(ldt, pretty_print=True) |
929 project.ldt = lxml.etree.tostring(ldt, pretty_print=True) |
912 project.save() |
930 project.save() |
913 |
931 |
914 assign_object_to_groups(project, group_form.cleaned_data) |
932 assign_object_to_groups(project, group_form.cleaned_data) |
|
933 form_status = "saved" |
915 else: |
934 else: |
916 form = AddProjectForm({'title':unicode(project.title), 'description':unicode(project.get_description())}) |
935 form = AddProjectForm({'title':unicode(project.title), 'description':unicode(project.get_description())}) |
917 |
936 |
918 perm_list = [] |
937 perm_list = [] |
919 for group in groups: |
938 for group in groups: |