src/ldt/ldt/ldt_utils/searchutils.py
changeset 730 38993be55b2b
child 908 03a00e8f2e3b
equal deleted inserted replaced
729:253446fed8e8 730:38993be55b2b
       
     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