Correctifs
authorCyril Robert <Cyril Robert crobert@inverse.ca>
Thu, 1 Apr 2010 19:03:31 +0000 (15:03 -0400)
committerCyril Robert <Cyril Robert crobert@inverse.ca>
Thu, 1 Apr 2010 19:03:31 +0000 (15:03 -0400)
auf_savoirs_en_partage_django/media/css/global.css
auf_savoirs_en_partage_django/media/js/form.js
auf_savoirs_en_partage_django/savoirs/recherche.py
auf_savoirs_en_partage_django/savoirs/views.py
auf_savoirs_en_partage_django/templates/menu.html
auf_savoirs_en_partage_django/templates/savoirs/avancee.html
auf_savoirs_en_partage_django/templates/savoirs/editor.html
auf_savoirs_en_partage_django/templates/savoirs/recherche.html
auf_savoirs_en_partage_django/templates/savoirs/resultat.html [new file with mode: 0644]

index cd753ca..56d3e5e 100644 (file)
@@ -40,6 +40,7 @@ ul, ol{margin:0 0 1em 33px;list-style:none;}
 dt{margin:0.5em 0 0;}
 dd{margin:0.25em 0 0.5em 2.5em;}
 sup{font-size: smaller; vertical-align: 0.5em; line-height: 1px;}
+.lbl {color: #97012c; }
 
 #fond {padding:0; margin:0; display:block; position:relative; width:100%; height:auto !important; height:100%; min-height:100%; background: url(../img/background-fond.jpg) no-repeat 50% 0; text-align:left;}
 #enrobage {padding:0; margin:0 auto; display:block; position:relative; width:960px; height:auto !important; height:100%; min-height:100%;}
index 6c21826..5c0ec64 100644 (file)
@@ -85,8 +85,6 @@ JSONForm.serialize = function () {
             else if (field.type == 'seq')
                 value = this.readList ($("#field_"+k));
 
-            if (k == 'title')
-              alert (value);
             if (value.length > 0)
               root[k] = value;
             else
index 6cfd550..317da53 100644 (file)
@@ -2,8 +2,10 @@
 import urllib, httplib, time, simplejson, pprint, math, re
 from django.conf import settings
 from auf_savoirs_en_partage_backend.sep.io import SEP
+from auf_savoirs_en_partage_backend.sep.utils import smart_str
 from savoirs import configuration
 
+
 def google_search (page, q, data):
     params = {'q': q,
               'rsz': 'large',
@@ -72,6 +74,22 @@ def sep_build_content (regexp, description):
     return content
 
 
+def make_regexp (q):
+    words = []
+    w = re.compile (r'\W+', re.U)
+    for k in q.keys ():
+        if k != 'operator':
+            words.extend(w.split (q[k]))
+    patt = "|".join (words)
+    patt = "(" + patt + ")"
+    return re.compile (patt, re.I)
+
+def hl (r, string):
+    if string is not None:
+        return r.sub (r'<b>\1</b>', string)
+    return None
+
+
 def sep_search (page, q, data):
     f = page * configuration['resultats_par_page']
     t = f + 8
@@ -80,15 +98,35 @@ def sep_search (page, q, data):
     data['last_page'] = math.ceil (float(len (matches)) / \
             float(configuration['resultats_par_page'])) - 1
     set = s.get (matches[f:t])
-    regexp = re.compile (r'(%s)' % q, re.IGNORECASE)
+    regexp = make_regexp (q)
+
     for r in set:
         uri = r.get ("source", "")
         if len (uri) == 0:
             uri = r.get ("uri")
+
         title = regexp.sub (r'<b>\1</b>', r.get ("title", ""))
+
         content = sep_build_content (regexp, r.get ("description", ""))
 
-        data['results'].append ({'uri': uri, 'id': r.get("uri"), 'title': title, 'content': content})
+        contributeurs = r.get('contributor')
+        if contributeurs is not None:
+            contributeurs = "; ".join (contributeurs)
+
+        subject = r.get ('subject')
+        if subject is not None:
+            subject = ", ".join (subject)
+
+        data['results'].append ({'uri': uri, 
+                'id': r.get("uri"), \
+                'title': hl(regexp, title), 
+                'content': hl(regexp, content), \
+                'creator': hl(regexp, r.get('creator')),
+                'contributors': hl(regexp, contributeurs),
+                'subject': hl(regexp, subject),
+                'modified': r.get('modified'),
+                'isbn': r.get('isbn'),
+                })
 
 
 def cherche (page, q, engin=None):
index b654807..a5bc98f 100644 (file)
@@ -97,6 +97,7 @@ def json_set (request):
     data = request.POST.get("data")
     if data:
         r = simplejson.loads(data)
+        print r
         s = SEP ()
         s.add (r)
     return HttpResponse(simplejson.dumps("OK"),
index 2b9bb9c..cc971b2 100644 (file)
@@ -1,6 +1,6 @@
 <ul>
     {% for d in disciplines %}
-    <li><a href="{% url savoirs.views.recherche %}?q={{ d.nom }}">{{ d.nom }}</a></li>
+    <li><a href="{% url savoirs.views.avancee %}?type=avancee&operator=or&subject={{ d.nom }}">{{ d.nom }}</a></li>
     {% endfor %}
 </ul>
 
index e0ebaf0..d152399 100644 (file)
 
   <div class="zone-texte">
     {% for r in data.results %}
-    <div class="resultatRecherche">
-      <a class="le-titre" href="{{ r.uri }}">{{ r.title|safe }}</a>
-      <div class="resultatResume">{{ r.content|safe }}</div>
-      <a class="ligne-url" href="{{ r.uri }}">{{ r.uri }}</a>
-      {% if user.is_authenticated %}
-      <a href="#" onclick="showEditModal('{{ r.id }}'); return false;">EDIT</a>
-      {% endif %}
-    </div>
+      {% include "savoirs/resultat.html" %}
     {% empty %}
     <div class="resultatRecherche">
       <h2>Aucun résultat trouvé</h2>
index e90d1ee..7f18898 100644 (file)
@@ -8,7 +8,7 @@ function saveThis() {
     var data = $("#jsonsource").html ();
     if (data.length > 0) {
         $.post('{% url savoirs.views.json_set %}', {'data': data},
-               function () { $('#edit-form').dialog('close') });
+               function () { $('#edit-form').dialog('close'); window.location.reload(); });
     }
 }
 </script>
index 9a74d86..3dcf68e 100644 (file)
 
 <div class="zone-texte">
   {% for r in data.results %}
-  <div class="resultatRecherche">
-    <a class="le-titre" href="{{ r.uri }}">{{ r.title|safe }}</a>
-    <div class="resultatResume">{{ r.content|safe }}</div>
-    <a class="ligne-url" href="{{ r.uri }}">{{ r.uri }}</a>
-    {% if user.is_authenticated %}
-    <a href="#" onclick="showEditModal('{{ r.id }}'); return false;">EDIT</a>
-    {% endif %}
-  </div>
+    {% include "savoirs/resultat.html" %} 
   {% empty %}
   <div class="resultatRecherche">
     <h2>Aucun résultat trouvé</h2>
diff --git a/auf_savoirs_en_partage_django/templates/savoirs/resultat.html b/auf_savoirs_en_partage_django/templates/savoirs/resultat.html
new file mode 100644 (file)
index 0000000..a4ad9a2
--- /dev/null
@@ -0,0 +1,23 @@
+<div class="resultatRecherche">
+  <a class="le-titre" href="{{ r.uri }}">{{ r.title|safe }}</a>
+  {% if r.creator %}
+  <div><span class="lbl">Auteur:</span> {{ r.creator|safe }}</div>
+  {% endif %}
+  {% if r.contributors %}
+  <div><span class="lbl">Contributeurs:</span> {{ r.contributors|safe }}</div>
+  {% endif %}
+  {% if r.subject %}
+  <div><span class="lbl">Sujets:</span> {{ r.subject|safe }}</div>
+  {% endif %}
+  {% if r.modified %}
+  <div><span class="lbl">Date de modification:</span> {{ r.modified }}</div>
+  {% endif %}
+  <div class="resultatResume"><span class="lbl">Description:</span> {{ r.content|safe }}</div>
+  {% 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>
+  {% endif %}
+</div>