ferme #502, affichage des resultats de recherche
authorolivier larcheveque <olivier.larcheveque@u-ol.(none)>
Wed, 29 Sep 2010 14:37:02 +0000 (10:37 -0400)
committerolivier larcheveque <olivier.larcheveque@u-ol.(none)>
Wed, 29 Sep 2010 14:37:02 +0000 (10:37 -0400)
auf_savoirs_en_partage/savoirs/lib/recherche.py
auf_savoirs_en_partage/savoirs/lib/sep.py
auf_savoirs_en_partage/templates/savoirs/resultat.html

index 8b37091..26c5616 100644 (file)
@@ -1,5 +1,6 @@
 # -*- encoding: utf-8 -*-
 import urllib, httplib, time, simplejson, pprint, math, re
+from django.core.urlresolvers import reverse
 from django.conf import settings
 from sep import SEP
 from utils import smart_str
@@ -94,6 +95,7 @@ def sep_search (page, q, data):
     f = page * configuration['resultats_par_page']
     t = f + 8
     s = SEP ()
+
     matches = s.search (q)
     data['last_page'] = math.ceil (float(len (matches)) / \
             float(configuration['resultats_par_page'])) - 1
@@ -101,9 +103,14 @@ def sep_search (page, q, data):
     regexp = make_regexp (q)
 
     for r in set:
-        uri = r.get ("source", "")
+        uri = r.get ("uri", "")
         if len (uri) == 0:
-            uri = r.get ("uri")
+            uri = r.get ("source")
+        
+        # Récupère la source si ce n'est pas une URL
+        source = r.get("source", None)
+        if source is not None and source.startswith('http'):
+            source = None
 
         title = r.get ("title", "")
         content = sep_build_content (regexp, r.get ("description", ""))
@@ -116,8 +123,10 @@ def sep_search (page, q, data):
         if subject is not None:
             subject = ", ".join (subject)
 
-        data['results'].append ({'uri': uri, 
-                'id': r.get("uri"), \
+        data['results'].append ({
+                'uri': uri,
+                'source' : source,
+                'id': r.get("id"), \
                 'title': hl(regexp, title), 
                 'content': content, \
                 'creator': '; '.join([hl(regexp, x) for x in r.get('creator', [])]),
@@ -125,6 +134,7 @@ def sep_search (page, q, data):
                 'subject': hl(regexp, subject),
                 'modified': r.get('modified'),
                 'isbn': r.get('isbn'),
+                'admin_url': reverse('admin:savoirs_record_change', args=[r.get('id')])
                 })
 
 
index 36c7c88..56b5cc3 100644 (file)
@@ -57,7 +57,7 @@ class SEP:
     def _load (self, id):
         """Recupérer la structure de métadonnées pour un record selon un `id`."""
         r = Record.objects.get(id = id)
-        meta = {}
+        meta = {'id' : id}
         for k in META.keys ():
             if hasattr (r, k):
                 v = getattr (r, k)
index a4ad9a2..66887d5 100644 (file)
@@ -9,6 +9,9 @@
   {% if r.subject %}
   <div><span class="lbl">Sujets:</span> {{ r.subject|safe }}</div>
   {% endif %}
+  {% if r.source %}
+  <div><span class="lbl">Source:</span> {{ r.source|safe }}</div>
+  {% endif %}
   {% if r.modified %}
   <div><span class="lbl">Date de modification:</span> {{ r.modified }}</div>
   {% endif %}
@@ -16,8 +19,7 @@
   {% if r.isbn %}
   <div><span class="lbl">ISBN:</span> {{ r.isbn|safe }}</div>
   {% endif %}
-  <a class="ligne-url" href="{{ r.uri }}">{{ r.uri }}</a>
   {% if user.is_authenticated %}
-  <a href="#" onclick="showEditModal('{{ r.id }}'); return false;">EDIT</a>
+  <a href="{{ r.admin_url}}" target="_blank">Modifier</a>
   {% endif %}
 </div>