Embryon de recherche textuelle dans les actualités.
authorEric Mc Sween <eric.mcsween@gmail.com>
Tue, 26 Oct 2010 14:38:24 +0000 (10:38 -0400)
committerEric Mc Sween <eric.mcsween@gmail.com>
Tue, 26 Oct 2010 14:38:24 +0000 (10:38 -0400)
auf_savoirs_en_partage/savoirs/models.py
auf_savoirs_en_partage/savoirs/views.py
auf_savoirs_en_partage/templates/savoirs/actualite_index.html

index 07193fa..e228634 100644 (file)
@@ -29,6 +29,16 @@ class SourceActualite(models.Model):
     def __unicode__(self,):
         return u"%s" % self.nom
 
+class ActualiteManager(models.Manager):
+    
+    def get_query_set(self):
+        return ActualiteQuerySet(self.model)
+
+class ActualiteQuerySet(models.query.QuerySet):
+
+    def search(self, text):
+        return self.filter(titre__icontains=text)
+
 class Actualite(models.Model):
     id = models.AutoField(primary_key=True, db_column='id_actualite')
     titre = models.CharField(max_length=765, db_column='titre_actualite')
@@ -39,6 +49,8 @@ class Actualite(models.Model):
     ancienid = models.IntegerField(db_column='ancienId_actualite', blank = True, null = True)
     source = models.ForeignKey(SourceActualite, blank = True, null = True)
 
+    objects = ActualiteManager()
+
     def __unicode__ (self):
         return "%s" % (self.titre)
 
index 3b56821..afcf518 100644 (file)
@@ -139,12 +139,15 @@ def informations (request):
 
 # actualités
 def actualite_index(request):
-    delta = datetime.timedelta (days = 90)
-    oldest = datetime.date.today () - delta
-    actualites = Actualite.objects.filter (visible = '1', date__gt = oldest)
-    return render_to_response ("savoirs/actualite_index.html", \
-            Context ({'actualites': actualites}), \
-            context_instance = RequestContext(request))
+    delta = datetime.timedelta(days=90)
+    oldest = datetime.date.today() - delta
+    actualites = Actualite.objects.filter(visible=True, date__gt=oldest)
+    query = request.GET.get('q')
+    if query:
+        actualites = actualites.search(query)
+    return render_to_response("savoirs/actualite_index.html",
+                              {'actualites': actualites},
+                              context_instance = RequestContext(request))
 
 # agenda
 def evenement_index(request):
index 07676dd..c5fa79d 100644 (file)
@@ -7,19 +7,23 @@
 <h4>Actualités</h4>
 
 <div class="contenu-wrapper">
-<div class="centre">{% paginate %}</div>
-<table id="repertoire">
+  <form action="" method="get">
+    <input type="text" name="q" value="{{ request.GET.q }}" size="50" />
+    <input type="submit" value="Rechercher" />
+  </form>
+  <div class="centre">{% paginate %}</div>
+  <table id="repertoire">
     <tr>
-        <th>Nom</th>
-        <th>Source</th>
+    <th>Nom</th>
+    <th>Source</th>
     </tr>
-{% for actualite in actualites %}
+    {% for actualite in actualites %}
     <tr class="{% cycle 'odd' 'notodd' %}">
-        <td><a href="{{ actualite.url }}" class="le-titre">{{ actualite.titre|truncatewords:20 }}</a></td>
-        <td>{{ actualite.source.nom }}</td>
+    <td><a href="{{ actualite.url }}" class="le-titre">{{ actualite.titre|truncatewords:20 }}</a></td>
+    <td>{{ actualite.source.nom }}</td>
     </tr>
-{% endfor %}
-</table>
-<div class="centre">{% paginate %}</div>
+    {% endfor %}
+  </table>
+  <div class="centre">{% paginate %}</div>
 </div>
 {% endblock %}