On limite à nouveau la persistence du filtre région/discipline ǎ l'accueil et ǎ
authorEric Mc Sween <eric.mcsween@gmail.com>
Mon, 15 Nov 2010 17:34:43 +0000 (12:34 -0500)
committerEric Mc Sween <eric.mcsween@gmail.com>
Mon, 15 Nov 2010 17:34:43 +0000 (12:34 -0500)
la recherche globale.

27 files changed:
auf_savoirs_en_partage/chercheurs/forms.py
auf_savoirs_en_partage/chercheurs/models.py
auf_savoirs_en_partage/chercheurs/views.py
auf_savoirs_en_partage/savoirs/forms.py
auf_savoirs_en_partage/savoirs/models.py
auf_savoirs_en_partage/savoirs/templatetags/sep.py
auf_savoirs_en_partage/savoirs/views.py
auf_savoirs_en_partage/sitotheque/forms.py
auf_savoirs_en_partage/sitotheque/models.py
auf_savoirs_en_partage/sitotheque/views.py
auf_savoirs_en_partage/templates/accounts/login.html
auf_savoirs_en_partage/templates/accounts/new_password.html
auf_savoirs_en_partage/templates/chercheurs/actions.html
auf_savoirs_en_partage/templates/chercheurs/index.html
auf_savoirs_en_partage/templates/chercheurs/perso.html
auf_savoirs_en_partage/templates/container_base.html
auf_savoirs_en_partage/templates/savoirs/a-propos.html
auf_savoirs_en_partage/templates/savoirs/evenement_actions.html
auf_savoirs_en_partage/templates/savoirs/evenement_index.html
auf_savoirs_en_partage/templates/savoirs/evenement_resultat.html
auf_savoirs_en_partage/templates/savoirs/index.html
auf_savoirs_en_partage/templates/savoirs/recherche.html
auf_savoirs_en_partage/templates/savoirs/ressource_resultat.html
auf_savoirs_en_partage/templates/savoirs/ressource_retrieve.html
auf_savoirs_en_partage/templates/sites/actions.html
auf_savoirs_en_partage/templates/sites/resultat.html
auf_savoirs_en_partage/urls.py

index 8a235f1..f8b1e02 100644 (file)
@@ -226,11 +226,13 @@ class ChercheurFormGroup(object):
             self.groupes.save()
 
 class RepertoireSearchForm (forms.Form):
-    mots_cles = forms.CharField(required=False, label="Rechercher dans tous les champs")
+    q = forms.CharField(required=False, label="Rechercher dans tous les champs")
     nom = forms.CharField(required=False, label="Nom")
     domaine = forms.ModelChoiceField(queryset=Groupe.objects.all(), required=False, label="Domaine de recherche", empty_label="Tous")
     groupe_recherche = forms.CharField(required=False, label="Groupe de recherche")
     statut = forms.ChoiceField(choices=(('','Tous'),)+STATUT_CHOICES+(('expert','Expert'),), required=False, label="Statut")
+    discipline = forms.ModelChoiceField(queryset=Discipline.objects.all(), required=False, label="Discipline", empty_label="Toutes")
+    region = forms.ModelChoiceField(queryset=Region.objects.all(), required=False, label="Région", empty_label="Toutes")
     pays = forms.ModelChoiceField(queryset=Pays.objects.all(), required=False, label="Pays", empty_label="Tous")
     nord_sud = forms.ChoiceField(choices=(('', 'Tous'), ('Nord', 'Nord'), ('Sud', 'Sud')), required=False, label="Nord/Sud")
     membre_instance_auf = forms.BooleanField(required=False, label="Membre d'une instance de l'AUF")
@@ -256,15 +258,21 @@ class RepertoireSearchForm (forms.Form):
             if groupe_recherche:
                 for word in groupe_recherche.split():
                     qs = qs.filter(groupe_recherche__icontains=word)
-            mots_cles = self.cleaned_data["mots_cles"]
-            if mots_cles:
-                qs = qs.search(mots_cles)
+            q = self.cleaned_data["q"]
+            if q:
+                qs = qs.search(q)
             statut = self.cleaned_data["statut"]
             if statut:
                 if statut == "expert":
                     qs = qs.exclude(expertises=None)
                 else:
                     qs = qs.filter(statut=statut)
+            discipline = self.cleaned_data['discipline']
+            if discipline:
+                qs = qs.filter_discipline(discipline)
+            region = self.cleaned_data['region']
+            if region:
+                qs = qs.filter_region(region)
             pays = self.cleaned_data["pays"]
             if pays:
                 qs = qs.filter(Q(etablissement__pays=pays) | Q(etablissement_autre_pays=pays))
index c426712..be5943c 100644 (file)
@@ -99,9 +99,9 @@ class ChercheurQuerySet(models.query.QuerySet, RandomQuerySetMixin):
         Si ``disicipline`` est None, ce filtre n'a aucun effet."""
         if discipline is None:
             return self
-        else:
-            discipline_name = Discipline.objects.get(pk=discipline).nom
-            return self.search(discipline_name)
+        if not isinstance(discipline, Discipline):
+            discipline = Discipline.objects.get(pk=discipline)
+        return self.search(discipline.nom)
 
     def filter_region(self, region):
         """Ne conserve que les évènements dans la région donnée.
@@ -109,9 +109,9 @@ class ChercheurQuerySet(models.query.QuerySet, RandomQuerySetMixin):
         Si ``region`` est None, ce filtre n'a aucun effet."""
         if region is None:
             return self
-        else:
-            region_name = Region.objects.get(pk=region).nom
-            return self.search(region_name)
+        if not isinstance(region, Region):
+            region = Region.objects.get(pk=region)
+        return self.search(region.nom)
 
 STATUT_CHOICES = (('enseignant', 'Enseignant-chercheur dans un établissement'), ('etudiant', 'Étudiant-chercheur doctorant'), ('independant', 'Chercheur indépendant docteur'))
 class Chercheur(models.Model):
index 8f31799..c9c23b3 100644 (file)
@@ -29,7 +29,7 @@ from django.utils.translation import ugettext_lazy as _
 class AuthenticationForm(OriginalAuthenticationForm):
     username = forms.CharField(label='Adresse électronique', max_length=255)
 
-def send_password(request, discipline=None, region=None):
+def send_password(request):
     if request.method == "POST":
         form = SendPasswordForm(data=request.POST)
         if form.is_valid():
@@ -83,7 +83,7 @@ def new_password(request, email, code):
             context_instance = RequestContext(request))
 
 @login_required()            
-def change_password(request, discipline=None, region=None):
+def change_password(request):
     context_instance = RequestContext(request)
     u = context_instance['user_sep']
     message = ""
@@ -103,7 +103,7 @@ def change_password(request, discipline=None, region=None):
             Context (variables), 
             context_instance = RequestContext(request))            
              
-def chercheur_login(request, discipline=None, region=None):
+def chercheur_login(request):
     "Displays the login form and handles the login action."
     if request.method == "POST":
         form = AuthenticationForm(data=request.POST)
@@ -124,16 +124,16 @@ def chercheur_login(request, discipline=None, region=None):
     return render_to_response('accounts/login.html', dict(form=form),
                               context_instance=RequestContext(request))
     
-def index(request, discipline=None, region=None):
+def index(request):
     """Répertoire des chercheurs"""
-    search_form = RepertoireSearchForm(request.GET, region=region)
-    chercheurs = search_form.get_query_set().filter_discipline(discipline).filter_region(region)
+    search_form = RepertoireSearchForm(request.GET)
+    chercheurs = search_form.get_query_set()
     nb_chercheurs = chercheurs.count()
     return render_to_response("chercheurs/index.html",
                               dict(chercheurs=chercheurs, nb_chercheurs=nb_chercheurs, search_form=search_form),
                               context_instance=RequestContext(request))
 
-def inscription(request, discipline=None, region=None):
+def inscription(request):
     if request.method == 'POST':
         forms = ChercheurFormGroup(request.POST)
         if forms.is_valid():
@@ -156,7 +156,7 @@ def inscription(request, discipline=None, region=None):
 
 @login_required()
 @never_cache
-def edit(request, discipline=None, region=None):
+def edit(request):
     """Edition d'un chercheur"""
     context_instance = RequestContext(request)
     chercheur = context_instance['user_chercheur']    
@@ -178,7 +178,7 @@ def edit(request, discipline=None, region=None):
                               context_instance = RequestContext(request))
             
 @login_required()
-def perso(request, discipline=None, region=None):
+def perso(request):
     """Espace chercheur (espace personnel du chercheur)"""
     context_instance = RequestContext(request)
     chercheur = context_instance['user_chercheur']
@@ -194,13 +194,13 @@ def perso(request, discipline=None, region=None):
                               dict(chercheur=chercheur, modification=modification),
                               context_instance=RequestContext(request))
             
-def retrieve(request, id, discipline=None, region=None):
+def retrieve(request, id):
     """Fiche du chercheur"""
     chercheur = get_object_or_404(Chercheur, id=id)
     return render_to_response("chercheurs/retrieve.html",
                               dict(chercheur=chercheur),
                               context_instance=RequestContext(request))
             
-def conversion(request, discipline=None, region=None):
+def conversion(request):
     return render_to_response("chercheurs/conversion.html", {}, 
                               context_instance=RequestContext(request))
index 93fd320..d8411ab 100644 (file)
@@ -35,6 +35,8 @@ class RecordSearchForm(forms.Form):
     titre = forms.CharField(required=False, label="Titre")
     sujet = forms.CharField(required=False, label="Sujet")
     publisher = forms.CharField(required=False, label="Éditeur")
+    discipline = forms.ModelChoiceField(queryset=Discipline.objects.all(), required=False, label="Discipline", empty_label="Toutes")
+    region = forms.ModelChoiceField(queryset=Region.objects.all(), required=False, label="Région", empty_label="Toutes")
 
     def get_query_set(self):
         """Retourne l'ensemble des ressources qui correspondent aux valeurs
@@ -57,6 +59,12 @@ class RecordSearchForm(forms.Form):
             if publisher:
                 for word in publisher.split():
                     records = records.filter(publisher__icontains=word)
+            discipline = self.cleaned_data['discipline']
+            if discipline:
+                records = records.filter_discipline(discipline)
+            region = self.cleaned_data['region']
+            if region:
+                records = records.filter_region(region)
         return records
 
     def get_search_regexp(self):
@@ -71,6 +79,8 @@ class ActualiteSearchForm(forms.Form):
     q = forms.CharField(required=False, label="Rechercher dans tous les champs")
     date_min = SEPDateField(required=False, label="Depuis le")
     date_max = SEPDateField(required=False, label="Jusqu'au") 
+    discipline = forms.ModelChoiceField(queryset=Discipline.objects.all(), required=False, label="Discipline", empty_label="Toutes")
+    region = forms.ModelChoiceField(queryset=Region.objects.all(), required=False, label="Région", empty_label="Toutes")
 
     def get_query_set(self):
         """Retourne l'ensemble des actualités qui correspondent aux valeurs
@@ -86,6 +96,12 @@ class ActualiteSearchForm(forms.Form):
             date_max = self.cleaned_data['date_max']
             if date_max:
                 actualites = actualites.filter(date__lte=date_max)
+            discipline = self.cleaned_data['discipline']
+            if discipline:
+                actualites = actualites.filter_discipline(discipline)
+            region = self.cleaned_data['region']
+            if region:
+                actualites = actualites.filter_region(region)
         return actualites
     
     def get_search_regexp(self):
@@ -102,6 +118,8 @@ class EvenementSearchForm(forms.Form):
     type = forms.ChoiceField(required=False, choices=(('', 'Tous'),)+Evenement.TYPE_CHOICES)
     date_min = SEPDateField(required=False, label="Depuis le") 
     date_max = SEPDateField(required=False, label="Jusqu'au") 
+    discipline = forms.ModelChoiceField(queryset=Discipline.objects.all(), required=False, label="Discipline", empty_label="Toutes")
+    region = forms.ModelChoiceField(queryset=Region.objects.all(), required=False, label="Région", empty_label="Toutes")
     
     def get_query_set(self):
         """Retourne l'ensemble des évènements qui correspondent aux valeurs
@@ -123,6 +141,12 @@ class EvenementSearchForm(forms.Form):
             date_max = self.cleaned_data['date_max']
             if date_max:
                 evenements = evenements.filter(debut__lte=date_max)
+            discipline = self.cleaned_data['discipline']
+            if discipline:
+                evenements = evenements.filter_discipline(discipline)
+            region = self.cleaned_data['region']
+            if region:
+                evenements = evenements.filter_region(region)
         return evenements
 
     def get_search_regexp(self):
index 0255778..ec58954 100644 (file)
@@ -76,9 +76,9 @@ class ActualiteQuerySet(models.query.QuerySet, RandomQuerySetMixin):
         Si ``disicipline`` est None, ce filtre n'a aucun effet."""
         if discipline is None:
             return self
-        else:
-            discipline_name = Discipline.objects.get(pk=discipline).nom
-            return self.search(discipline_name)
+        if not isinstance(discipline, Discipline):
+            discipline = Discipline.objects.get(pk=discipline)
+        return self.search(discipline.nom)
 
     def filter_region(self, region):
         """Ne conserve que les actualités dans la région donnée.
@@ -86,9 +86,9 @@ class ActualiteQuerySet(models.query.QuerySet, RandomQuerySetMixin):
         Si ``region`` est None, ce filtre n'a aucun effet."""
         if region is None:
             return self
-        else:
-            region_name = Region.objects.get(pk=region).nom
-            return self.search(region_name)
+        if not isinstance(region, Region):
+            region = Region.objects.get(pk=region)
+        return self.search(region.nom)
 
 class Actualite(models.Model):
     id = models.AutoField(primary_key=True, db_column='id_actualite')
@@ -163,9 +163,9 @@ class EvenementQuerySet(models.query.QuerySet, RandomQuerySetMixin):
         Si ``disicipline`` est None, ce filtre n'a aucun effet."""
         if discipline is None:
             return self
-        else:
-            discipline_name = Discipline.objects.get(pk=discipline).nom
-            return self.search(discipline_name)
+        if not isinstance(discipline, Discipline):
+            discipline = Discipline.objects.get(pk=discipline)
+        return self.search(discipline.nom)
 
     def filter_region(self, region):
         """Ne conserve que les évènements dans la région donnée.
@@ -173,9 +173,9 @@ class EvenementQuerySet(models.query.QuerySet, RandomQuerySetMixin):
         Si ``region`` est None, ce filtre n'a aucun effet."""
         if region is None:
             return self
-        else:
-            region_name = Region.objects.get(pk=region).nom
-            return self.search(region_name)
+        if not isinstance(region, Region):
+            region = Region.objects.get(pk=region)
+        return self.search(region.nom)
 
 def build_time_zone_choices():
     fr_names = set()
@@ -431,9 +431,9 @@ class RecordQuerySet(models.query.QuerySet, RandomQuerySetMixin):
         Si ``disicipline`` est None, ce filtre n'a aucun effet."""
         if discipline is None:
             return self
-        else:
-            discipline_name = Discipline.objects.get(pk=discipline).nom
-            return self.search(discipline_name)
+        if not isinstance(discipline, Discipline):
+            discipline = Discipline.objects.get(pk=discipline)
+        return self.search(discipline.nom)
 
     def filter_region(self, region):
         """Ne conserve que les ressources dans la région donnée.
@@ -441,9 +441,9 @@ class RecordQuerySet(models.query.QuerySet, RandomQuerySetMixin):
         Si ``region`` est None, ce filtre n'a aucun effet."""
         if region is None:
             return self
-        else:
-            region_name = Region.objects.get(pk=region).nom
-            return self.search(region_name)
+        if not isinstance(region, Region):
+            region = Region.objects.get(pk=region)
+        return self.search(region.nom)
 
     def validated(self):
         """Ne garder que les ressources validées et qui sont soit dans aucun
index 18a6cf4..90830f3 100644 (file)
@@ -112,6 +112,8 @@ def change_region(path, region):
     discipline_bit = match.group(1) or ''
     region_bit = '/region/%d' % region if region != 'all' else ''
     rest = path[match.end():]
+    if not rest.startswith('/recherche'):
+        rest = '/'
     return discipline_bit + region_bit + rest
         
 @register.filter
@@ -122,4 +124,6 @@ def change_discipline(path, discipline):
     discipline_bit = '/discipline/%d' % discipline if discipline != 'all' else ''
     region_bit = match.group(2) or ''
     rest = path[match.end():]
+    if not rest.startswith('/recherche'):
+        rest = '/'
     return discipline_bit + region_bit + rest
index 7b22732..fcbccaf 100644 (file)
@@ -7,6 +7,7 @@ from django.http import HttpResponse, HttpResponseRedirect
 from django.contrib.auth.decorators import login_required
 from django.core.urlresolvers import reverse
 from django.shortcuts import get_object_or_404
+from django.utils.safestring import mark_safe
 from django import forms
 from django.conf import settings
 from lib.recherche import google_search, build_search_regexp
@@ -21,7 +22,7 @@ from sitotheque.models import Site
 
 # Accueil
 
-def index (request, discipline=None, region=None):
+def index(request, discipline=None, region=None):
     """Page d'accueil"""
     delta = datetime.timedelta(days = 90)
     oldest = datetime.date.today() - delta
@@ -38,17 +39,17 @@ def index (request, discipline=None, region=None):
         context_instance = RequestContext(request))
 
 # sous-menu droite
-def a_propos (request, discipline=None, region=None):
+def a_propos(request):
     return render_to_response ("savoirs/a-propos.html", \
             Context (), \
             context_instance = RequestContext(request))
 
-def nous_contacter (request, discipline=None, region=None):
+def nous_contacter(request):
     return render_to_response ("savoirs/contact.html", \
             Context ({'courriel':settings.CONTACT_EMAIL}), \
             context_instance = RequestContext(request))
             
-def legal(request, discipline=None, region=None):
+def legal(request):
     return render_to_response ("savoirs/legal.html", \
             Context (), \
             context_instance = RequestContext(request))
@@ -68,6 +69,20 @@ def recherche(request, discipline=None, region=None):
     except:
         sites_auf = []
     search_regexp = build_search_regexp(query)
+
+    # Bâtissons une query string pour les liens vers les briques
+    params = {}
+    if query:
+        params['q'] = query
+    if discipline:
+        params['discipline'] = discipline
+    if region:
+        params['region'] = region
+    if params:
+        briques_query_string = mark_safe('?' + '&'.join(k + '=' + v.replace('"', '&quot;') for (k, v) in params.iteritems()))
+    else:
+        briques_query_string = None
+        
     return render_to_response(
         "savoirs/recherche.html",
         dict(q=query, search_regexp=search_regexp,
@@ -76,11 +91,11 @@ def recherche(request, discipline=None, region=None):
              chercheurs=chercheurs[:10], total_chercheurs=chercheurs.count(),
              actualites=actualites[:5], total_actualites=actualites.count(),
              sites=sites[:5], total_sites=sites.count(),
-             sites_auf=sites_auf[:5]),
+             sites_auf=sites_auf[:5], briques_query_string=briques_query_string),
         context_instance = RequestContext(request)
     )
 
-def sites_auf(request, discipline=None, region=None):
+def sites_auf(request):
     q = request.GET.get('q')
     page = int(request.GET.get('page', 0))
     try:
@@ -92,9 +107,9 @@ def sites_auf(request, discipline=None, region=None):
                               context_instance=RequestContext(request))
 
 # ressources
-def ressource_index(request, discipline=None, region=None):
+def ressource_index(request):
     search_form = RecordSearchForm(request.GET)
-    ressources = search_form.get_query_set().filter_discipline(discipline).filter_region(region)
+    ressources = search_form.get_query_set()
     nb_resultats = ressources.count()
     search_regexp = search_form.get_search_regexp()
     return render_to_response(
@@ -104,7 +119,7 @@ def ressource_index(request, discipline=None, region=None):
         context_instance = RequestContext(request)
     )
 
-def ressource_retrieve(request, id, discipline=None, region=None):
+def ressource_retrieve(request, id):
     """Notice OAI de la ressource"""
     ressource = get_object_or_404(Record, id=id)
     return render_to_response(
@@ -127,9 +142,9 @@ def informations (request):
             context_instance = RequestContext(request))
 
 # actualités
-def actualite_index(request, discipline=None, region=None):
+def actualite_index(request):
     search_form = ActualiteSearchForm(request.GET)
-    actualites = search_form.get_query_set().filter_discipline(discipline).filter_region(region)
+    actualites = search_form.get_query_set()
     search_regexp = search_form.get_search_regexp()
     return render_to_response(
         "savoirs/actualite_index.html",
@@ -138,9 +153,9 @@ def actualite_index(request, discipline=None, region=None):
         context_instance = RequestContext(request))
 
 # agenda
-def evenement_index(request, discipline=None, region=None):
+def evenement_index(request):
     search_form = EvenementSearchForm(request.GET)
-    evenements = search_form.get_query_set().filter_discipline(discipline).filter_region(region)
+    evenements = search_form.get_query_set()
     search_regexp = search_form.get_search_regexp()
     return render_to_response(
         "savoirs/evenement_index.html",
@@ -149,17 +164,17 @@ def evenement_index(request, discipline=None, region=None):
         context_instance=RequestContext(request)
     )
                               
-def evenement_utilisation(request, discipline=None, region=None):
+def evenement_utilisation(request):
     return render_to_response("savoirs/evenement_utilisation.html", {},
                               context_instance = RequestContext(request))
             
-def evenement(request, id, discipline=None, region=None):
+def evenement(request, id):
     evenement = get_object_or_404(Evenement, pk=id)
     return render_to_response("savoirs/evenement.html",
                               dict(evenement=evenement),
                               context_instance=RequestContext(request))
 
-def evenement_ajout(request, discipline=None, region=None):
+def evenement_ajout(request):
     template = "savoirs/evenement_ajout.html"
     if request.method == "POST":
         form = EvenementForm(request.POST)
index 7aa1fbb..942146e 100644 (file)
@@ -1,29 +1,32 @@
 # -*- encoding: utf-8 -*-
+from datamaster_modeles.models import Discipline, Region
 from django import forms
 from models import *
 from savoirs.lib.recherche import build_search_regexp
 
 class SiteSearchForm(forms.Form):
-    mots_cles = forms.CharField (required = False, label="Rechercher dans tous les champs")
+    q = forms.CharField(required=False, label="Rechercher dans tous les champs")
+    discipline = forms.ModelChoiceField(queryset=Discipline.objects.all(), required=False, label="Discipline", empty_label="Toutes")
+    region = forms.ModelChoiceField(queryset=Region.objects.all(), required=False, label="Région", empty_label="Toutes")
     pays = forms.ModelChoiceField(queryset=Pays.objects.all(), required=False, label="Pays", empty_label="Tous")
 
-    def __init__(self, data=None, region=None):
-        super(SiteSearchForm, self).__init__(data)
-        if region:
-            pays = self.fields['pays']
-            pays.queryset = pays.queryset.filter(region=region)
-
     def get_query_set(self):
         """Retourne l'ensemble des sites qui correspondent aux valeurs
            entrées dans le formulaire."""
         sites = Site.objects.order_by("titre")
-        if self.is_valid ():
+        if self.is_valid():
+            q = self.cleaned_data["q"]
+            if q:
+                sites = sites.search(q)
+            discipline = self.cleaned_data['discipline']
+            if discipline:
+                sites = sites.filter_discipline(discipline)
+            region = self.cleaned_data['region']
+            if region:
+                sites = sites.filter_region(region)
             pays = self.cleaned_data["pays"]
             if pays:
                 sites = sites.filter(pays=pays.pk)
-            mots_cles = self.cleaned_data["mots_cles"]
-            if mots_cles:
-                sites = sites.search(mots_cles)
         return sites
 
     def get_search_regexp(self):
index 8b311d1..71540b3 100644 (file)
@@ -58,9 +58,9 @@ class SiteQuerySet(models.query.QuerySet, RandomQuerySetMixin):
         Si ``disicipline`` est None, ce filtre n'a aucun effet."""
         if discipline is None:
             return self
-        else:
-            discipline_name = Discipline.objects.get(pk=discipline).nom
-            return self.search(discipline_name)
+        if not isinstance(discipline, Discipline):
+            discipline = Discipline.objects.get(pk=discipline)
+        return self.search(discipline.nom)
 
     def filter_region(self, region):
         """Ne conserve que les sites dans la région donnée.
@@ -68,9 +68,9 @@ class SiteQuerySet(models.query.QuerySet, RandomQuerySetMixin):
         Si ``region`` est None, ce filtre n'a aucun effet."""
         if region is None:
             return self
-        else:
-            region_name = Region.objects.get(pk=region).nom
-            return self.search(region_name)
+        if not isinstance(region, Region):
+            region = Region.objects.get(pk=region)
+        return self.search(region.nom)
 
 class Site(models.Model):
     """Fiche d'info d'un site web"""
index 7b0c4b0..d861e63 100644 (file)
@@ -6,9 +6,9 @@ from django.db.models import Q
 from models import Site
 from forms import SiteSearchForm
 
-def index(request, discipline=None, region=None):
-    search_form = SiteSearchForm(request.GET, region=region)
-    sites = search_form.get_query_set().filter_discipline(discipline).filter_region(region)
+def index(request):
+    search_form = SiteSearchForm(request.GET)
+    sites = search_form.get_query_set()
     search_regexp = search_form.get_search_regexp()
     nb_sites = sites.count()
     return render_to_response("sites/index.html",
@@ -16,7 +16,7 @@ def index(request, discipline=None, region=None):
                                    search_regexp=search_regexp, nb_sites=nb_sites), 
                               context_instance = RequestContext(request))
             
-def retrieve(request, id, discipline=None, region=None):
+def retrieve(request, id):
     """Fiche du site"""
     site = Site.objects.get(id=id)
     return render_to_response("sites/retrieve.html", dict(site=site),
index 2815c14..a4586c8 100644 (file)
@@ -8,7 +8,7 @@
     {% if form.errors %}
     <p class="message">Login ou mot de passe invalide.</p>
     {% endif %}
-    <form method="post" action="{% sep_url chercheurs.views.chercheur_login %}">
+    <form method="post" action="{% url chercheurs.views.chercheur_login %}">
       <table>
         <tr>
           <td>{{ form.username.label_tag }}</td>
@@ -21,9 +21,9 @@
       </table>
       <input type="submit" value="Connexion" />
     </form>
-    <p><a href="{% sep_url chercheurs.views.send_password %}">Mot de passe oublié ?</a></p>
+    <p><a href="{% url chercheurs.views.send_password %}">Mot de passe oublié ?</a></p>
     <p>Vous n'avez pas encore de compte? 
-    <a href="{% sep_url chercheurs.views.inscription %}">Inscrivez-vous</a>.</p>
+    <a href="{% url chercheurs.views.inscription %}">Inscrivez-vous</a>.</p>
 </div>
 
 {% endblock %}
index 4369560..d30caa8 100644 (file)
@@ -1,12 +1,11 @@
 {% extends "container_base.html" %}
-{% load sep %}
 
 {% block contenu %}
 <h4>Demande de changement de mot de passe</h4>
 <div class="contenu-wrapper">
     {% if message %}
         <span class="message">{{message}}</span>
-        <p>Cliquez <a href="{% sep_url chercheurs.views.chercheur_login %}">ici</a> pour accéder à votre <a href="{% url chercheurs.views.chercheur_login %}">espace chercheur.</a> </p>
+        <p>Cliquez <a href="{% url chercheurs.views.chercheur_login %}">ici</a> pour accéder à votre <a href="{% url chercheurs.views.chercheur_login %}">espace chercheur.</a> </p>
     {% endif %}
     <form method="post">
         <fieldset>
index be5b0c0..4c93b28 100644 (file)
@@ -1,7 +1,6 @@
-{% load sep %}
 {% if user_chercheur %}
-<li><a href="{% sep_url chercheurs.views.perso %}">Espace chercheur</a></li>
+<li><a href="{% url chercheurs.views.perso %}">Espace chercheur</a></li>
 {% else %}
-<li><a href="{% sep_url chercheurs.views.chercheur_login %}">Se connecter</a></li>
-<li><a href="{% sep_url chercheurs.views.inscription %}">S'inscrire</a></li>
+<li><a href="{% url chercheurs.views.chercheur_login %}">Se connecter</a></li>
+<li><a href="{% url chercheurs.views.inscription %}">S'inscrire</a></li>
 {% endif %}
index 1d295e6..439717e 100644 (file)
@@ -2,7 +2,6 @@
 {% load pagination_tags %}
 {% load sorting_tags %}
 {% load form_tags %}
-{% load sep %}
 
 {% block contenu %}
 {% autosort chercheurs %}
@@ -29,7 +28,7 @@
     Dans le cadre de la programmation quadriennale, la politique scientifique de
     l'AUF s'appuie sur la mise en œuvre de projets inter-universitaires
     régionaux ou internationaux. Les <i>réseaux de chercheurs</i> ne sont plus
-    le critère d'organisation du répertoire (consulter la <a href="{% sep_url chercheurs.views.conversion %}">table de passage</a>). 
+    le critère d'organisation du répertoire (consulter la <a href="{% url chercheurs.views.conversion %}">table de passage</a>). 
     Les chercheurs précisent leur discipline et choissent leurs centres
     d'intérêt dans des listes prédéfinies, et ajoutent des mots-clés pour
     affiner leur profil scientifique.
@@ -71,7 +70,7 @@
         </tr>
     {% for chercheur in chercheurs %}
         <tr class="{% cycle 'odd' 'notodd' %}">
-            <td><a href="{% sep_url chercheurs.views.retrieve id=chercheur.id %}">{{ chercheur }}</a></td>
+            <td><a href="{% url chercheurs.views.retrieve id=chercheur.id %}">{{ chercheur }}</a></td>
             <td>{% firstof chercheur.etablissement chercheur.etablissement_autre_nom %}</td>
             <td>{% firstof chercheur.etablissement.pays chercheur.etablissement_autre_pays %}</td>
         </tr>
index 18cc9a6..ad949c0 100644 (file)
@@ -1,5 +1,4 @@
 {% extends "container_base.html" %}
-{% load sep %}
 
 {% block contenu %}
 
@@ -9,9 +8,9 @@
     
 <h4>{{ chercheur }}</h4>
 <ul class="actions">
-    <li><a href="{% sep_url chercheurs.views.index %}">Tous les chercheurs</a></li>
-    <li><a href="{% sep_url chercheurs.views.edit %}">Éditer votre fiche</a></li>
-    <li><a href="{% sep_url chercheurs.views.change_password %}">Modifier votre mot de passe</a></li>
+    <li><a href="{% url chercheurs.views.index %}">Tous les chercheurs</a></li>
+    <li><a href="{% url chercheurs.views.edit %}">Éditer votre fiche</a></li>
+    <li><a href="{% url chercheurs.views.change_password %}">Modifier votre mot de passe</a></li>
     <li><a href="{% url django.contrib.auth.views.logout %}">Déconnexion</a></li>
 </ul>
 
index 97d0c46..97eea12 100644 (file)
                     {% if user.is_authenticated %}
                     <a href="{% url django.contrib.auth.views.logout %}" class="bout-droit">Déconnexion</a>
                     {% else %}
-                    <a href="{% sep_url chercheurs.views.chercheur_login %}" class="bout-droit">Connexion</a>
+                    <a href="{% url chercheurs.views.chercheur_login %}" class="bout-droit">Connexion</a>
                     {% endif %}
                     <span>|</span>
-                    <a href="{% sep_url savoirs.views.legal %}">Légal</a>
+                    <a href="{% url savoirs.views.legal %}">Légal</a>
                     <span>|</span>
-                    <a href="{% sep_url savoirs.views.nous_contacter %}">Contact</a>
+                    <a href="{% url savoirs.views.nous_contacter %}">Contact</a>
                     <span>|</span>
-                    <a href="{% sep_url savoirs.views.a_propos %}" class="bout-gauche">À propos</a>
+                    <a href="{% url savoirs.views.a_propos %}" class="bout-gauche">À propos</a>
                 </div>
                 
                 <div class="sous-menu gauche">
-                    <a href="{% sep_url savoirs.views.actualite_index %}" class="bout-droit">Actualités</a>
+                    <a href="{% url savoirs.views.actualite_index %}" class="bout-droit">Actualités</a>
                     <span>|</span>
-                    <a href="{% sep_url savoirs.views.evenement_index %}">Agenda</a>
+                    <a href="{% url savoirs.views.evenement_index %}">Agenda</a>
                     <span>|</span>
-                    <a href="{% sep_url sitotheque.views.index %}">Sites</a>
+                    <a href="{% url sitotheque.views.index %}">Sites</a>
                     <span>|</span>
-                    <a href="{% sep_url savoirs.views.ressource_index %}">Ressources</a>
+                    <a href="{% url savoirs.views.ressource_index %}">Ressources</a>
                     <span>|</span>
-                    <a href="{% sep_url chercheurs.views.index %}">Répertoire</a>
+                    <a href="{% url chercheurs.views.index %}">Répertoire</a>
                     <span>|</span>
-                    <a href="{% sep_url savoirs.views.index %}" class="bout-gauche">Accueil</a>
+                    <a href="{% url savoirs.views.index %}" class="bout-gauche">Accueil</a>
                 </div>
                 
                 <div id="logo" style="clear:both;">
index d3d7bf9..0e1ed5b 100644 (file)
@@ -1,5 +1,4 @@
 {% extends "container_base.html" %}
-{% load sep %}
 
 {% block contenu %}
 <h4>À propos de</h4>
@@ -15,7 +14,7 @@ Ainsi, vous pourrez accéder depuis ce portail à :
 </p>
 </div>
 
-<h5><a href="{% sep_url chercheurs.views.index %}">... un répertoire des chercheurs</a></h5>
+<h5><a href="{% url chercheurs.views.index %}">... un répertoire des chercheurs</a></h5>
 
 <div class="texte">
 <p>
@@ -23,7 +22,7 @@ Le répertoire présente une base de données de plus de 7000 chercheurs, étudi
 </p>
 </div>
 
-<h5><a href="{% sep_url savoirs.views.evenement_index %}">... un agenda scientifique</a></h5>
+<h5><a href="{% url savoirs.views.evenement_index %}">... un agenda scientifique</a></h5>
 
 <div class="texte">
 <p> 
@@ -32,7 +31,7 @@ C'est aussi un outil de communication et de veille au service des universitaires
 </p>
 </div>
 
-<h5><a href="{% sep_url savoirs.views.ressource_index %}">... des ressources scientifiques</a></h5>
+<h5><a href="{% url savoirs.views.ressource_index %}">... des ressources scientifiques</a></h5>
 
 <div class="texte">
 <p>
@@ -40,7 +39,7 @@ Le portail « Savoirs en partage » s'inscrit dans la continuité des différe
 </p>
 </div>
 
-<h5><a href="{% sep_url sitotheque.views.index %}">... une sitothèque</a></h5>
+<h5><a href="{% url sitotheque.views.index %}">... une sitothèque</a></h5>
 
 <div class="texte">
 <p>
@@ -48,7 +47,7 @@ Les sites retenus ici ont été créés en partenariat par l'AUF et des universi
 </p>
 </div>
 
-<h5><a href="{% sep_url savoirs.views.actualite_index %}">... des actualités scientifiques</a></h5>
+<h5><a href="{% url savoirs.views.actualite_index %}">... des actualités scientifiques</a></h5>
 
 <div class="texte">
 <p>
index 69a46de..0f095a4 100644 (file)
@@ -1,3 +1,2 @@
-{% load sep %}
-<li><a href="{% sep_url savoirs.views.evenement_ajout %}">Soumettre un évènement</a></li>
+<li><a href="{% url savoirs.views.evenement_ajout %}">Soumettre un évènement</a></li>
 {% comment %}<li><a href="{{ caldav_url }}">S'abonner</a></li>{% endcomment %}
index 3b39acb..adfd6b0 100644 (file)
@@ -1,6 +1,5 @@
 {% extends "container_base.html" %}
 {% load pagination_tags %}
-{% load sep %}
 
 {% block contenu %}
 {% autopaginate evenements 10 %}
@@ -17,7 +16,7 @@
     C'est aussi un outil de communication et de veille au service des universitaires et scientifiques francophones qui leur permet de se tenir informés des manifestations scientifiques et de répondre aux appels à communications et contributions ainsi qu'aux appels à projets. 
     </p>
     <p>
-    Consulter les <a href="{% sep_url savoirs.views.evenement_utilisation %}">conditions d'utilisation</a>.
+    Consulter les <a href="{% url savoirs.views.evenement_utilisation %}">conditions d'utilisation</a>.
     </p>
 </div>
 
index a76ef2b..428d087 100644 (file)
@@ -1,8 +1,7 @@
 {% load search %}
-{% load sep %}
 
 <div class="resultatRecherche">
   <div class="la-date">{{ evenement.debut|date:"d/m/Y H\hi" }}</div>
-  <div><a href="{% sep_url savoirs.views.evenement id=evenement.pk %}" class="le-titre">{{ evenement.titre|highlight:search_regexp }}</a></div>
+  <div><a href="{% url savoirs.views.evenement evenement.pk %}" class="le-titre">{{ evenement.titre|highlight:search_regexp }}</a></div>
   <div class="le-resume">{{ evenement.description|excerpt:search_regexp|highlight:search_regexp }}</div>
 </div>
index d2f3019..161dcbb 100644 (file)
@@ -1,14 +1,13 @@
 {% extends "container_base.html" %}
-{% load sep %}
 
 {% block contenu %}
 <div class="demi-gauche clearfix">
     <div id="actualites" class="box">
-        <h4><a href="{% sep_url savoirs.views.actualite_index %}">Actualités</a></h4>
+        <h4><a href="{% url savoirs.views.actualite_index %}">Actualités</a></h4>
         <a id="rss-actualites" href="/rss/actualites"><img src="/media/img/feed.png" /></a>
         
         <ul class="sous-menu">
-            <li><a href="{% sep_url savoirs.views.actualite_index %}">Toutes les actualités</a></li>
+            <li><a href="{% url savoirs.views.actualite_index %}">Toutes les actualités</a></li>
         </ul>
         
         <ul class="liste-de-l-accueil">
         </ul>
     </div>
     <div id="chercheurs" class="box">
-        <h4><a href="{% sep_url chercheurs.views.index %}">Répertoire</a></h4>
+        <h4><a href="{% url chercheurs.views.index %}">Répertoire</a></h4>
         
         <ul class="sous-menu">
-            <li><a href="{% sep_url chercheurs.views.index %}">Tous les chercheurs</a></li>
+            <li><a href="{% url chercheurs.views.index %}">Tous les chercheurs</a></li>
             {% include "chercheurs/actions.html" %}
         </ul>
         
         <ul class="liste-de-l-accueil">
         {% for chercheur in chercheurs %}
             <li>
-            <a href="{% sep_url chercheurs.views.retrieve id=chercheur.id %}" class="le-titre">{{ chercheur }}</a>
+            <a href="{% url chercheurs.views.retrieve chercheur.id %}" class="le-titre">{{ chercheur }}</a>
             {% if chercheur.discipline %}<span class="la-date">Discipline : {{ chercheur.discipline }}</span>{% endif %}
             </li>
         {% endfor %}
 </div>
 <div class="demi-droite clearfix">
     <div id="agenda" class="box">
-        <h4><a href="{% sep_url savoirs.views.evenement_index %}">Agenda</a></h4>
+        <h4><a href="{% url savoirs.views.evenement_index %}">Agenda</a></h4>
         <a id="rss-agenda" href="/rss/agenda"><img src="/media/img/feed.png" /></a>
 
         <ul class="sous-menu">
-          <li><a href="{% sep_url savoirs.views.evenement_index %}">Tous les évènements</a></li>
+          <li><a href="{% url savoirs.views.evenement_index %}">Tous les évènements</a></li>
           {% include "savoirs/evenement_actions.html" %}
         </ul>
 
           {% for evenement in evenements %}
           <li>
           <span class="la-date">{{ evenement.debut|date:"d/m/Y H\hi" }}</span>
-          <a href="{% sep_url savoirs.views.evenement id=evenement.id %}" class="le-titre">{{ evenement.titre|truncatewords:20 }}</a>
+          <a href="{% url savoirs.views.evenement evenement.id %}" class="le-titre">{{ evenement.titre|truncatewords:20 }}</a>
           <span class="le-resume">{{ evenement.description|truncatewords:20 }}</span>
           </li>
           {% endfor %}
         </ul>
     </div>
     <div  id="ressources" class="box">
-        <h4><a href="{% sep_url savoirs.views.ressource_index %}">Ressources</a></h4>
+        <h4><a href="{% url savoirs.views.ressource_index %}">Ressources</a></h4>
         
         <ul class="sous-menu">
-            <li><a href="{% sep_url savoirs.views.ressource_index %}">Toutes les ressources</a></li>
+            <li><a href="{% url savoirs.views.ressource_index %}">Toutes les ressources</a></li>
         </ul>
         
         <ul class="liste-de-l-accueil">
         {% for ressource in ressources %}
             <li>
-            <a href="{% sep_url savoirs.views.ressource_retrieve id=ressource.id %}" class="le-titre">{{ ressource.title|safe|truncatewords:20 }}</a>
+            <a href="{% url savoirs.views.ressource_retrieve ressource.id %}" class="le-titre">{{ ressource.title|safe|truncatewords:20 }}</a>
             {% if resssource.creator %}
                 Auteur : {{ ressource.creator }}<br />
             {% endif %}
         </ul>
     </div>
     <div  id="sites" class="box">
-        <h4><a href="{% sep_url sitotheque.views.index %}">Sites</a></h4>
+        <h4><a href="{% url sitotheque.views.index %}">Sites</a></h4>
         
         <ul class="sous-menu">
-            <li><a href="{% sep_url sitotheque.views.index %}">Sitothèque</a></li>
+            <li><a href="{% url sitotheque.views.index %}">Sitothèque</a></li>
             {% include "sites/actions.html" %}
         </ul>
         
         <ul class="liste-de-l-accueil">
         {% for site in sites %}
             <li>
-            <a href="{% sep_url sitotheque.views.retrieve id=site.id %}" class="le-titre">{{ site|truncatewords:20 }}</a>
+            <a href="{% url sitotheque.views.retrieve site.id %}" class="le-titre">{{ site|truncatewords:20 }}</a>
             <a href="{{ site.url }}" class="la-date">{{ site.url }}</a>
             {% if site.discipline.all.count %}<span class="la-date">Disciplines : {{ site.discipline.all|join:", " }}</span>{% endif %}
             </li>
index 58c0a8f..6779585 100644 (file)
         {% include "savoirs/ressource_resultat.html" %} 
     {% endfor %}
     {% ifnotequal ressources|length total_ressources %}
-        <p class="pad"><a href="{% sep_url savoirs.views.ressource_index %}?q={{ q|urlencode }}">Toutes les {{ total_ressources }} ressources pour cette recherche</a></p>
+    <p class="pad">
+    <a href="{% url savoirs.views.ressource_index %}{{ briques_query_string }}"
+        >Toutes les {{ total_ressources }} ressources pour cette recherche</a>
+    </p>
     {% endifnotequal %}
 {% endif %}
 
         {% include "savoirs/actualite_resultat.html" %} 
     {% endfor %}
     {% ifnotequal actualites|length total_actualites %}
-        <p class="pad"><a href="{% sep_url savoirs.views.actualite_index %}?q={{ q|urlencode }}">Toutes les {{ total_actualites }} actualités pour cette recherche</a></p>
+    <p class="pad">
+    <a href="{% url savoirs.views.actualite_index %}{{ briques_query_string }}"
+        >Toutes les {{ total_actualites }} actualités pour cette recherche</a>
+    </p>
     {% endifnotequal %}
 {% endif %}
 
@@ -48,7 +54,9 @@
         {% include "savoirs/evenement_resultat.html" %}
     {% endfor %}
     {% ifnotequal evenements|length total_evenements %}
-        <p class="pad"><a href="{% sep_url savoirs.views.evenement_index %}?q={{ q|urlencode }}">Tous les {{ total_evenements }} évènements pour cette recherche</a></p>
+    <p class="pad">
+    <a href="{% url savoirs.views.evenement_index %}{{ briques_query_string }}"
+        >Tous les {{ total_evenements }} évènements pour cette recherche</a></p>
     {% endifnotequal %}
 {% endif %}
 
     <h5>Chercheurs ({{ chercheurs|length }} sur {{ total_chercheurs }})</h5>
     <ul>
     {% for chercheur in chercheurs %}
-        <li><a href="{% sep_url chercheurs.views.retrieve id=chercheur.id %}">{{ chercheur }}</a></li>
+        <li><a href="{% url chercheurs.views.retrieve chercheur.id %}">{{ chercheur }}</a></li>
     {% endfor %}
     </ul>
     {% ifnotequal chercheurs|length total_chercheurs %}
-        <p class="pad"><a href="{% sep_url chercheurs.views.index %}?mots_cles={{ q|urlencode }}">Tous les {{ total_chercheurs }} chercheurs pour cette recherche</a></p>
+    <p class="pad">
+    <a href="{% url chercheurs.views.index %}{{ briques_query_string }}"
+        >Tous les {{ total_chercheurs }} chercheurs pour cette recherche</a>
+    </p>
     {% endifnotequal %}
 {% endif %}
 
         {% include "sites/resultat.html" %}
     {% endfor %}
     {% ifnotequal sites|length total_sites %}
-        <p class="pad"><a href="{% sep_url sitotheque.views.index %}?mots_cles={{ q|urlencode }}">Tous les {{ total_sites }} sites pour cette recherche</a></p>
+    <p class="pad">
+    <a href="{% url sitotheque.views.index %}{{ briques_query_string }}"
+        >Tous les {{ total_sites }} sites pour cette recherche</a>
+    </p>
     {% endifnotequal %}
 {% endif %}
 
     {% for r in sites_auf %}
         {% include "savoirs/sites_auf_resultat.html" %}
     {% endfor %}
-    <p class="pad"><a href="{% sep_url savoirs.views.sites_auf %}?q={{ q|urlencode }}">Tous les sites AUF pour cette recherche</a></p>
+    <p class="pad"><a href="{% url savoirs.views.sites_auf %}?q={{ q|urlencode }}">Tous les sites AUF pour cette recherche</a></p>
 {% endif %}
 
 {% if not ressources and not actualites and not evenements and not chercheurs and not sites %}
-    <h5>Aucune résultat</h5>
-    <p class="pad"><a href="{% sep_url savoirs.views.index %}">Retour à la page d'accueil</a></p>
+    <h5>Aucun résultat</h5>
+    <p class="pad"><a href="{% url savoirs.views.index %}">Retour à la page d'accueil</a></p>
 {% endif %}
 </div>
 
index d0582e6..8992f9a 100644 (file)
@@ -1,15 +1,14 @@
 {% load search %}
-{% load sep %}
 
 <div class="resultatRecherche">
-    <a class="le-titre" href="{% sep_url savoirs.views.ressource_retrieve id=ressource.id %}">{{ ressource.title|highlight:search_regexp }}</a>
+    <a class="le-titre" href="{% url savoirs.views.ressource_retrieve ressource.id %}">{{ ressource.title|highlight:search_regexp }}</a>
     {% if ressource.creator %}
     <div><span class="lbl">Auteur:</span> {{ ressource.creator|highlight:search_regexp }}</div>
     {% endif %}
     {% if ressource.description %}
     <div class="resultatResume"><span class="lbl">Description:</span> {{ ressource.description|excerpt:search_regexp|highlight:search_regexp }}</div>
     {% endif %}
-    <div class="fiche"><span>Fiche: </span><a href="{% sep_url savoirs.views.ressource_retrieve id=ressource.id %}">{% url savoirs.views.ressource_retrieve ressource.id %}</a></div>
+    <div class="fiche"><span>Fiche: </span><a href="{% url savoirs.views.ressource_retrieve ressource.id %}">{% url savoirs.views.ressource_retrieve ressource.id %}</a></div>
     <div class="original"><span>Contenu original: </span><a target="_blank" href="{{ ressource.uri }}">{{ ressource.uri }}</a></div>
     <div class="provenance"><span>Provenance: </span><a target="_blank" href="{{ ressource.getServeurURL }}">{{ ressource.getServeurURL }}</a></div>
 </div>
index fc4afe2..11f1a3d 100644 (file)
@@ -1,5 +1,4 @@
 {% extends "container_base.html" %}
-{% load sep %}
 
 {% block contenu %}
 <h4>Ressource</h4>
     <div><span class="lbl">Régions:</span> {{ regions|join:", " }}</div>
     {% endif %}
 
-    <div class="fiche"><span>Fiche: </span><a href="{% sep_url savoirs.views.ressource_retrieve id=ressource.id %}">{% url savoirs.views.ressource_retrieve ressource.id %}</a></div>
     <div class="original"><span>Contenu original: </span><a target="_blank" href="{{ ressource.uri }}">{{ ressource.uri }}</a></div>
     <div class="provenance"><span>Provenance: </span><a target="_blank" href="{{ ressource.getServeurURL }}">{{ ressource.getServeurURL }}</a></div>
 
-
-
 </div>
 {% endblock %}
index fff453a..e3463d5 100644 (file)
@@ -1,2 +1 @@
-{% load sep %}
-<li><a href="{% sep_url savoirs.views.sites_auf %}">Sites AUF</a></li>
+<li><a href="{% url savoirs.views.sites_auf %}">Sites AUF</a></li>
index edbb136..25f734c 100644 (file)
@@ -1,8 +1,7 @@
 {% load search %}
-{% load sep %}
 
 <div class="resultatRecherche">
-  <div><a class="le-titre" href="{% sep_url sitotheque.views.retrieve id=site.id %}">{{ site|highlight:search_regexp }}</a></div>
+  <div><a class="le-titre" href="{% url sitotheque.views.retrieve site.id %}">{{ site|highlight:search_regexp }}</a></div>
   <div class="resultatResume">{{ site.description|excerpt:search_regexp|highlight:search_regexp }}</div>
   <div><span class="lbl">URL:</span> <a href="{{ site.url }}">{{ site.url }}</a></div>
 </div>
index f7ad16a..b2dd434 100644 (file)
@@ -24,19 +24,38 @@ sep_patterns = patterns(
 
     # recherche
     (r'^recherche/$', 'savoirs.views.recherche'),
+)
+
+urlpatterns = sep_patterns + patterns(
+    '',
+
+    (r'^informations/$', 'savoirs.views.informations'),
+
+    # agenda
+    (r'^agenda/$', 'savoirs.views.evenement_index'),
+    (r'^agenda/evenements/(?P<id>\d+)/$', 'savoirs.views.evenement'),
+    (r'^agenda/evenements/moderer/$', 'savoirs.views.evenement_moderation'),
+    (r'^agenda/evenements/moderer/(.+)/accepter/$', 'savoirs.views.evenement_accepter'),
+    (r'^agenda/evenements/moderer/(.+)/refuser/$', 'savoirs.views.evenement_refuser'),
+
+    # sous-menu droite
+    (r'^a-propos/$', 'savoirs.views.a_propos'),
+    (r'^legal/$', 'savoirs.views.legal'),
+    (r'^nous-contacter/$', 'savoirs.views.nous_contacter'),
 
     # ressources
     (r'^ressources/$', 'savoirs.views.ressource_index'),
     (r'^ressources/(?P<id>\d+)/$', 'savoirs.views.ressource_retrieve'),
-    
+
     # actualités
     (r'^actualites/$', 'savoirs.views.actualite_index'),
 
-    # agenda
-    (r'^agenda/$', 'savoirs.views.evenement_index'),
-    (r'^agenda/evenements/utilisation/$', 'savoirs.views.evenement_utilisation'),
-    (r'^agenda/evenements/creer/$', 'savoirs.views.evenement_ajout'),
-    (r'^agenda/evenements/(?P<id>.+)/$', 'savoirs.views.evenement'),
+    # sites
+    (r'^sites/$', 'sitotheque.views.index'),
+    (r'^sites/(?P<id>\d+)/$', 'sitotheque.views.retrieve'),
+
+    # sites AUF
+    (r'^sites-auf/$', 'savoirs.views.sites_auf'),
 
     # chercheurs
     (r'^chercheurs/$', 'chercheurs.views.index'),
@@ -49,29 +68,9 @@ sep_patterns = patterns(
     (r'^accounts/change_password/$', 'chercheurs.views.change_password'),
     (r'^accounts/send_password/$', 'chercheurs.views.send_password'),
 
-    # sites
-    (r'^sites/$', 'sitotheque.views.index'),
-    (r'^sites/(?P<id>\d+)/$', 'sitotheque.views.retrieve'),
-
-    # sites AUF
-    (r'^sites-auf/$', 'savoirs.views.sites_auf'),
-
-    # sous-menu droite
-    (r'^a-propos/$', 'savoirs.views.a_propos'),
-    (r'^legal/$', 'savoirs.views.legal'),
-    (r'^nous-contacter/$', 'savoirs.views.nous_contacter'),
-
-)
-
-urlpatterns = sep_patterns + patterns(
-    '',
-
-    (r'^informations/$', 'savoirs.views.informations'),
-
     # agenda
-    (r'^agenda/evenements/moderer/$', 'savoirs.views.evenement_moderation'),
-    (r'^agenda/evenements/moderer/(.+)/accepter/$', 'savoirs.views.evenement_accepter'),
-    (r'^agenda/evenements/moderer/(.+)/refuser/$', 'savoirs.views.evenement_refuser'),
+    (r'^agenda/evenements/utilisation/$', 'savoirs.views.evenement_utilisation'),
+    (r'^agenda/evenements/creer/$', 'savoirs.views.evenement_ajout'),
 
     # section par discipline et/ou région
     (r'^discipline/(?P<discipline>\d+)/', include(sep_patterns)),