src/ldt/ldt/ldt_utils/views/workspace.py
changeset 1003 c2d9d1c6c228
parent 995 94f9d36371f6
child 1007 a6d47caa7fc0
equal deleted inserted replaced
994:a6a37775a76d 1003:c2d9d1c6c228
     1 from django.conf import settings
     1 from django.conf import settings
     2 from django.contrib.auth.decorators import login_required
     2 from django.contrib.auth.decorators import login_required
     3 from django.contrib.auth.models import Group
     3 from django.contrib.auth.models import Group
     4 from django.core.urlresolvers import reverse#, resolve
     4 from django.core.urlresolvers import reverse#, resolve
     5 from django.core.paginator import Paginator, InvalidPage, EmptyPage
     5 from django.core.paginator import Paginator, InvalidPage, EmptyPage
     6 from django.http import HttpResponseForbidden
     6 from django.http import HttpResponseForbidden, HttpResponse
     7 from ldt.indexation import get_results_with_context, highlight_documents
     7 from ldt.indexation import get_results_with_context, highlight_documents
     8 from django.shortcuts import render_to_response
     8 from django.shortcuts import render_to_response
     9 from django.template import RequestContext
     9 from django.template import RequestContext
    10 from django.template.loader import render_to_string
    10 from django.template.loader import render_to_string
    11 from django.utils.html import escape
    11 from django.utils.html import escape
    12 from django.utils.translation import ugettext as _
    12 from django.utils.translation import ugettext as _
    13 from ldt.ldt_utils.forms import SearchForm
    13 from ldt.ldt_utils.forms import SearchForm
       
    14 from ldt.utils.url import absstatic
    14 from ldt.ldt_utils.models import Content, Project, Segment
    15 from ldt.ldt_utils.models import Content, Project, Segment
    15 from ldt.ldt_utils.utils import boolean_convert
    16 from ldt.ldt_utils.utils import boolean_convert
    16 from ldt.ldt_utils.projectserializer import ProjectJsonSerializer
    17 from ldt.ldt_utils.projectserializer import ProjectJsonSerializer
    17 from ldt.ldt_utils.views.content import get_contents_page, get_content_tags
    18 from ldt.ldt_utils.views.content import get_contents_page, get_content_tags
    18 from ldt.ldt_utils.views.project import get_projects_page, get_published_projects_page
    19 from ldt.ldt_utils.views.project import get_projects_page, get_published_projects_page
    19 from ldt.security.utils import add_change_attr, get_userlist
    20 from ldt.security.utils import add_change_attr, get_userlist
       
    21 from ldt.templatetags import absurl
    20 from operator import itemgetter
    22 from operator import itemgetter
    21 from itertools import groupby
    23 from itertools import groupby
    22 import base64
    24 import base64
    23 import django.core.urlresolvers
    25 import django.core.urlresolvers
    24 import ldt.auth as ldt_auth
    26 import ldt.auth as ldt_auth
    25 from django.utils.safestring import mark_safe
    27 from django.utils.safestring import mark_safe
       
    28 from django.contrib.sites.models import Site
       
    29 from django.template import Context, Template
       
    30 import logging
    26 
    31 
    27 
    32 
    28 
    33 
    29 @login_required
    34 @login_required
    30 def home(request):
    35 def home(request):
    91 def popup_embed(request):
    96 def popup_embed(request):
    92 
    97 
    93     json_url = request.GET.get("json_url")
    98     json_url = request.GET.get("json_url")
    94     player_id = request.GET.get("player_id")
    99     player_id = request.GET.get("player_id")
    95     ldt_id = request.GET.get("ldt_id")
   100     ldt_id = request.GET.get("ldt_id")
    96     
       
    97     rend_dict = get_datas_for_embed(request, json_url, player_id, ldt_id)
   101     rend_dict = get_datas_for_embed(request, json_url, player_id, ldt_id)
    98     
   102     
    99     embed_rendered = dict((typestr,
   103     embed_rendered = dict((typestr,
   100                            (lambda s:escape(render_to_string("ldt/ldt_utils/partial/embed_%s.html" % (s), rend_dict, context_instance=RequestContext(request))))(typestr))
   104                            (lambda s:escape(render_to_string("ldt/ldt_utils/partial/embed_%s.html" % (s), rend_dict, context_instance=RequestContext(request))))(typestr))
   101                            for typestr in ('seo_body', 'seo_meta', 'links'))
   105                            for typestr in ('seo_body', 'seo_meta', 'links'))
   102 
   106 
   103     rend_dict['embed_rendered'] = embed_rendered
   107     rend_dict['embed_rendered'] = embed_rendered
   104 
       
   105     return render_to_response("ldt/ldt_utils/embed_popup.html", rend_dict, context_instance=RequestContext(request))
   108     return render_to_response("ldt/ldt_utils/embed_popup.html", rend_dict, context_instance=RequestContext(request))
   106 
   109 
   107 
   110 
   108 def iframe_embed(request):
   111 def iframe_embed(request):
   109 
   112 
   195         player_height = 1
   198         player_height = 1
   196         
   199         
   197     if not ldt_auth.check_access(request.user, project):
   200     if not ldt_auth.check_access(request.user, project):
   198         return HttpResponseForbidden(_("You can not access this project"))
   201         return HttpResponseForbidden(_("You can not access this project"))
   199     WEB_URL=settings.WEB_URL
   202     WEB_URL=settings.WEB_URL
   200     LDT_MEDIA_PREFIX=settings.LDT_MEDIA_PREFIX
       
   201     LANGUAGE_CODE=settings.LANGUAGE_CODE
   203     LANGUAGE_CODE=settings.LANGUAGE_CODE
   202     ps = ProjectJsonSerializer(project, from_contents=True, from_display=True)
   204     ps = ProjectJsonSerializer(project, from_contents=True, from_display=True)
   203     annotations = ps.get_annotations(first_cutting=True)
   205     annotations = ps.get_annotations(first_cutting=True)
   204     rend_dict = {'json_url':json_url, 'player_id':player_id, 'annotations':annotations, 'ldt_id': ldt_id, 'stream_mode': stream_mode, 
   206     rend_dict = {'json_url':json_url, 'player_id':player_id, 'annotations':annotations, 'ldt_id': ldt_id, 'stream_mode': stream_mode, 
   205                 'external_url': external_url,
   207                 'external_url': external_url,
   206                  'polemic':False, 'show_mic_record':False, 'annotations_list':False, 'iframe_url':iframe_url, 'WEB_URL':WEB_URL,
   208                  'polemic':False, 'show_mic_record':False, 'annotations_list':False, 'iframe_url':iframe_url, 'WEB_URL':WEB_URL,
   207                   'LDT_MEDIA_PREFIX':LDT_MEDIA_PREFIX, 'LANGUAGE_CODE':LANGUAGE_CODE}
   209                 'LANGUAGE_CODE':LANGUAGE_CODE}
   208     
       
   209     return rend_dict
   210     return rend_dict
   210 
   211 
   211 
   212 
   212 
   213 
   213 def share_filter(request, filter, use_groups=False):
   214 def share_filter(request, filter, use_groups=False):
   239     language_code = request.LANGUAGE_CODE[:2]
   240     language_code = request.LANGUAGE_CODE[:2]
   240     nb = 0
   241     nb = 0
   241     results = []
   242     results = []
   242     search = ''
   243     search = ''
   243     field = 'all'
   244     field = 'all'
   244     
   245     colorurl=absstatic(request, "ldt/swf/ldt/pkg/color.xml")
   245         
   246     i18nurl=absstatic(request, "ldt/swf/ldt/pkg/i18n")
       
   247     baseurl=absstatic(request, "ldt/swf/ldt/")
   246     sform = SearchForm(request.GET)
   248     sform = SearchForm(request.GET)
   247     if sform.is_valid():
   249     if sform.is_valid():
   248         search = sform.cleaned_data["search"]
   250         search = sform.cleaned_data["search"]
   249         queryStr = base64.urlsafe_b64encode(search.encode('utf8'))
   251         queryStr = base64.urlsafe_b64encode(search.encode('utf8'))
   250         field = sform.cleaned_data["field"]
   252         field = sform.cleaned_data["field"]
   251         page = sform.cleaned_data["page"] or 1
   253         page = sform.cleaned_data["page"] or 1
   252         ldt_pres = sform.cleaned_data["ldt_pres"]
   254         ldt_pres = sform.cleaned_data["ldt_pres"]
   253         
       
   254         if ldt_pres:
   255         if ldt_pres:
   255             url = settings.WEB_URL + django.core.urlresolvers.reverse("ldt.ldt_utils.views.lignesdetemps.search_init", args=[field, queryStr])
   256             url = settings.WEB_URL + django.core.urlresolvers.reverse("ldt.ldt_utils.views.lignesdetemps.search_init", args=[field, queryStr])
   256             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': url}, context_instance=RequestContext(request))
   257             return render_to_response('ldt/ldt_utils/init_ldt_full.html', {'colorurl': colorurl, 'i18nurl': i18nurl , 'language': language_code, 'baseurl': baseurl, 'url': url}, context_instance=RequestContext(request))
   257         else:                                            
   258         else:                                        
   258             results, nb = get_search_results(request, search, field, page)            
   259             results, nb = get_search_results(request, search, field, page)            
   259             
   260             
   260     return render_to_response('ldt/ldt_utils/search_results.html', {'results': results, 'nb_results' : nb, 'search' : search, 'field': field, '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/'}, context_instance=RequestContext(request))
   261     return render_to_response('ldt/ldt_utils/search_results.html', {'results': results, 'nb_results' : nb, 'search' : search, 'field': field, 'colorurl': colorurl, 'i18nurl': i18nurl , 'language': language_code, 'baseurl': baseurl}, context_instance=RequestContext(request))
   261         
   262         
   262  
   263  
   263 def get_search_results(request, search, field, page, content_list=None):
   264 def get_search_results(request, search, field, page, content_list=None):
   264     # We parse the author if necessary. For author search to work in every case, we have to transform the query author:cheese shop into author:"CHEESE SHOP"
   265     # We parse the author if necessary. For author search to work in every case, we have to transform the query author:cheese shop into author:"CHEESE SHOP"
   265     if u'author:' in search.lower() :
   266     if u'author:' in search.lower() :