|
1 from django.conf import settings |
|
2 from ldt.indexation import SimpleSearch |
|
3 from ldt.ldt_utils.models import Content, Project |
|
4 from ldt.ldt_utils.utils import LdtUtils |
|
5 from ldt.security.utils import set_forbidden_stream |
|
6 import base64 |
|
7 |
|
8 |
|
9 def search_generate_ldt(request, field, query, query_encoded=True): |
|
10 |
|
11 contentList = [] |
|
12 queryStr = "" |
|
13 |
|
14 if query and len(query) > 0: |
|
15 if query_encoded: |
|
16 queryStr = base64.urlsafe_b64decode(query.encode("ascii")).decode("utf8") |
|
17 else: |
|
18 queryStr = query |
|
19 searcher = SimpleSearch() |
|
20 ids = {} |
|
21 projIds = {} |
|
22 typesIds = {} |
|
23 results = searcher.query(field, queryStr) |
|
24 for result in results: |
|
25 ids[result["iri_id"]] = "" |
|
26 projIds[result["project_id"]] = "" |
|
27 typesIds[result["cutting_id"]] = "" |
|
28 |
|
29 id_list = ids.keys() |
|
30 projId_list = projIds.keys() |
|
31 typesId_list = typesIds.keys() |
|
32 |
|
33 contentList = Content.objects.filter(iri_id__in=id_list) #@UndefinedVariable |
|
34 projectList = Project.safe_objects.filter(ldt_id__in=projId_list) |
|
35 |
|
36 ldtgen = LdtUtils() |
|
37 # generate_ldt(contentList, title=u"", author=u"IRI Web", web_url=u"", startSegment=None, projects=None): |
|
38 doc = ldtgen.generate_ldt(contentList, title=u"Recherche : " + queryStr, projects=projectList, types_id_list=typesId_list) |
|
39 doc = set_forbidden_stream(doc, request.user) |
|
40 |
|
41 return doc, results |