150 return render_to_response('ldt/ldt_utils/search_form.html', {'form': form} , context_instance=RequestContext(request)) |
150 return render_to_response('ldt/ldt_utils/search_form.html', {'form': form} , context_instance=RequestContext(request)) |
151 |
151 |
152 @login_required |
152 @login_required |
153 def search_index(request): |
153 def search_index(request): |
154 language_code = request.LANGUAGE_CODE[:2] |
154 language_code = request.LANGUAGE_CODE[:2] |
155 |
155 nb = 0 |
156 page = int(request.GET.get('page', '-1')) |
156 results = [] |
157 search = request.GET.get('search', '') |
157 search = '' |
158 field = request.GET.get('field', 'all') |
158 field = 'all' |
159 |
159 |
160 if page >= 0 and search != '': |
160 |
161 results, nb = get_search_results(request, search, field, page) |
161 sform = SearchForm(request.GET) |
162 |
|
163 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)) |
|
164 |
|
165 |
|
166 sform = SearchForm(request.POST) |
|
167 if sform.is_valid(): |
162 if sform.is_valid(): |
168 search = sform.cleaned_data["search"] |
163 search = sform.cleaned_data["search"] |
169 queryStr = base64.urlsafe_b64encode(search.encode('utf8')) |
164 queryStr = base64.urlsafe_b64encode(search.encode('utf8')) |
170 field = request.POST["field"] |
165 field = sform.cleaned_data["field"] |
171 |
166 page = sform.cleaned_data["page"] or 1 |
172 if request.POST.has_key("ldt_pres"): |
167 ldt_pres = sform.cleaned_data["ldt_pres"] |
|
168 |
|
169 if ldt_pres: |
173 url = settings.WEB_URL + django.core.urlresolvers.reverse("ldt.ldt_utils.views.lignesdetemps.search_init", args=[field, queryStr]) |
170 url = settings.WEB_URL + django.core.urlresolvers.reverse("ldt.ldt_utils.views.lignesdetemps.search_init", args=[field, queryStr]) |
174 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)) |
171 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)) |
175 else: |
172 else: |
176 results, nb = get_search_results(request, search, field, 1) |
173 results, nb = get_search_results(request, search, field, page) |
177 |
174 |
178 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)) |
175 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)) |
179 |
176 |
180 else: |
177 |
181 return HttpResponseRedirect(reverse('ldt.ldt_utils.views.workspace.published_project')) |
|
182 def get_search_results(request, search, field, page): |
178 def get_search_results(request, search, field, page): |
183 results = get_results_with_context(field, search) |
179 results = get_results_with_context(field, search) |
184 |
180 |
185 all_segments = Segment.objects.filter(element_id__in=[e['element_id'] for e in results]) |
181 all_segments = Segment.objects.filter(element_id__in=[e['element_id'] for e in results]) |
186 all_projects = Project.objects.filter(ldt_id__in=[e['project_id'] for e in results], state=2) |
182 all_projects = Project.objects.filter(ldt_id__in=[e['project_id'] for e in results], state=2) |