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() : |