search_ldt factorization and correct template.
authorcavaliet
Thu, 02 Aug 2012 17:04:41 +0200
changeset 730 38993be55b2b
parent 729 253446fed8e8
child 732 fa3f1f436ecd
search_ldt factorization and correct template.
src/ldt/ldt/ldt_utils/searchutils.py
src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/publishedprojectslist.html
src/ldt/ldt/ldt_utils/views/json.py
src/ldt/ldt/ldt_utils/views/lignesdetemps.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ldt/ldt/ldt_utils/searchutils.py	Thu Aug 02 17:04:41 2012 +0200
@@ -0,0 +1,41 @@
+from django.conf import settings
+from ldt.indexation import SimpleSearch
+from ldt.ldt_utils.models import Content, Project
+from ldt.ldt_utils.utils import LdtUtils
+from ldt.security.utils import set_forbidden_stream
+import base64
+
+
+def search_generate_ldt(request, field, query, query_encoded=True): 
+    
+    contentList = []
+    queryStr = ""
+
+    if query and len(query) > 0: 
+        if query_encoded:
+            queryStr = base64.urlsafe_b64decode(query.encode("ascii")).decode("utf8")
+        else:
+            queryStr = query
+        searcher = SimpleSearch()
+        ids = {}
+        projIds = {}
+        typesIds = {}
+        results = searcher.query(field, queryStr)
+        for result in results:
+            ids[result["iri_id"]] = ""
+            projIds[result["project_id"]] = ""
+            typesIds[result["cutting_id"]] = ""
+
+        id_list = ids.keys()
+        projId_list = projIds.keys()
+        typesId_list = typesIds.keys()
+            
+        contentList = Content.objects.filter(iri_id__in=id_list)        #@UndefinedVariable
+        projectList = Project.safe_objects.filter(ldt_id__in=projId_list)    
+          
+    ldtgen = LdtUtils()
+    #            generate_ldt(contentList, title=u"", author=u"IRI Web", web_url=u"", startSegment=None, projects=None):
+    doc = ldtgen.generate_ldt(contentList, title=u"Recherche : " + queryStr, projects=projectList, types_id_list=typesId_list)
+    doc = set_forbidden_stream(doc, request.user)
+    
+    return doc, results
\ No newline at end of file
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/publishedprojectslist.html	Thu Aug 02 15:39:32 2012 +0200
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/publishedprojectslist.html	Thu Aug 02 17:04:41 2012 +0200
@@ -3,8 +3,10 @@
 {% load front_tags %}
 
 {% if nb_pj_pages %}
-    {% load navigation %}{% build_pagination nb_pj_pages current_project_page "projects_page clickable" %}
+<ul class="prev_next_cont_proj" >
+    <li>{% load navigation %}{% build_pagination nb_pj_pages current_project_page "projects_page clickable" %}</li>
     <input type="hidden" value="{{current_project_page}}" name="current_project_page" id="current_project_page">
+</ul>
 {% endif %}
 <div class="projectscontentsheader projectcontentsheadertitle span-12 last" id="projectsheader">
 {% trans "name" %}
--- a/src/ldt/ldt/ldt_utils/views/json.py	Thu Aug 02 15:39:32 2012 +0200
+++ b/src/ldt/ldt/ldt_utils/views/json.py	Thu Aug 02 17:04:41 2012 +0200
@@ -8,7 +8,7 @@
 from ldt.indexation import get_results_with_context
 from ldt.ldt_utils.models import Project
 from ldt.ldt_utils.projectserializer import ProjectSerializer
-from ldt.ldt_utils.views.lignesdetemps import search_ldt
+from ldt.ldt_utils.searchutils import search_generate_ldt
 from datetime import datetime
 import ldt.auth as ldt_auth
 import lxml.etree
@@ -97,7 +97,7 @@
     s = request.REQUEST.get("tag")
     if s:
         # We get the projects with all the segments
-        project_xml, results = search_ldt(request, "tags", s, None, True, False)
+        project_xml, results = search_generate_ldt(request, "tags", s, False)
         project = Project()
         project.ldt = lxml.etree.tostring(project_xml, pretty_print=True)
         # Needed datas for jsonification
--- a/src/ldt/ldt/ldt_utils/views/lignesdetemps.py	Thu Aug 02 15:39:32 2012 +0200
+++ b/src/ldt/ldt/ldt_utils/views/lignesdetemps.py	Thu Aug 02 17:04:41 2012 +0200
@@ -9,10 +9,11 @@
 from ldt.indexation import SimpleSearch
 from ldt.security.utils import set_forbidden_stream
 from ldt.ldt_utils.stat import update_stat_project
+from ldt.ldt_utils.searchutils import search_generate_ldt
 import base64
 import django.core.urlresolvers
 import lxml.etree
-   
+
   
 def search_index_get(request, field, query):
     
@@ -31,44 +32,11 @@
     resp.write(lxml.etree.tostring(doc, pretty_print=True, encoding="utf-8")) 
     return resp
 
+
 def search_ldt(request, field, query, edition=None, return_project=False, query_encoded=True): 
     
-    contentList = []
     resp = HttpResponse(mimetype="text/xml")
-    queryStr = ""
-
-    if query and len(query) > 0: 
-        if query_encoded:
-            queryStr = base64.urlsafe_b64decode(query.encode("ascii")).decode("utf8")
-        else:
-            queryStr = query
-        searcher = SimpleSearch()
-        ids = {}
-        projIds = {}
-        typesIds = {}
-        results = searcher.query(field, queryStr)
-        for result in results:
-            ids[result["iri_id"]] = ""
-            projIds[result["project_id"]] = ""
-            typesIds[result["cutting_id"]] = ""
-
-        id_list = ids.keys()
-        projId_list = projIds.keys()
-        typesId_list = typesIds.keys()
-        
-        #if edition is not None:
-        #    ids_editions = map(lambda t:t[0], filter(lambda id: id[0] is not None, Speak.objects.filter(session__day__edition=edition).order_by("session__start_ts", "order").values_list("content__iri_id")))            
-        #    id_list = filter(lambda id: id in id_list, ids_editions)
-            
-        contentList = Content.objects.filter(iri_id__in=id_list)        #@UndefinedVariable
-        projectList = Project.safe_objects.filter(ldt_id__in=projId_list)    
-          
-    ldtgen = LdtUtils()
-    #            generate_ldt(contentList, title=u"", author=u"IRI Web", web_url=u"", startSegment=None, projects=None):
-    doc = ldtgen.generate_ldt(contentList, title=u"Recherche : " + queryStr, projects=projectList, types_id_list=typesId_list)
-    doc = set_forbidden_stream(doc, request.user)
-    if return_project:
-        return doc, results
+    doc, _ = search_generate_ldt(request, field, query)
     doc.write(resp, pretty_print=True)
     
     return resp