expertise.delete()
return self.chercheur.instance
+class GroupeSearchForm(forms.ModelForm):
+ """Formulaire de recherche pour les groupes."""
+
+ class Meta:
+ model = GroupeSearch
+ fields = ['q']
+
class ChercheurSearchForm(forms.ModelForm):
"""Formulaire de recherche pour les chercheurs."""
chercheur.get_absolute_url())
content += u' %s\n\n' % chercheur.etablissement_display
return content
+
+class GroupeSearch(Search):
+
+ class Meta:
+ verbose_name = 'recherche de groupe'
+ verbose_name_plural = 'recherches de groupes'
+
+ def run(self):
+ results = Groupe.objects
+ if self.q:
+ results = results.search(self.q)
+ return results.all()
+
+ #def url(self):
+ # qs = self.query_string()
+ # return url('groupes') + ('?' + qs if qs else '')
+
+ #def rss_url(self):
+ # qs = self.query_string()
+ # return url('rss_groupes') + ('?' + qs if qs else '')
# -*- encoding: utf-8 -*-
from chercheurs.decorators import chercheur_required
-from chercheurs.forms import ChercheurSearchForm, SetPasswordForm, ChercheurFormGroup, AuthenticationForm
-from chercheurs.models import Chercheur
+from chercheurs.forms import ChercheurSearchForm, SetPasswordForm, ChercheurFormGroup, AuthenticationForm, GroupeSearchForm
+from chercheurs.models import Chercheur, Groupe
from chercheurs.utils import get_django_user_for_email
from datamaster_modeles.models import Etablissement, Region
from django.conf import settings
'site_name': current_site.name,
}, context_instance=RequestContext(request))
login = never_cache(login)
+
+# groupes
+def groupe_index(request):
+ search_form = GroupeSearchForm(request.GET)
+ search = search_form.save(commit=False)
+ groupes = search.run()
+ nb_resultats = groupes.count()
+ try:
+ p = PageStatique.objects.get(id='groupes')
+ entete = p.contenu
+ except PageStatique.DoesNotExist:
+ entete = '<h1>Groupes</h1>'
+
+ return render_to_response("chercheurs/groupe_index.html", dict(
+ search_form=search_form, groupes=groupes.order_by('nom'),
+ nb_resultats=nb_resultats, entete=entete
+ ), context_instance=RequestContext(request))
+
+def groupe_retrieve(request, id):
+ groupe = get_object_or_404(Groupe, id=id)
+ return render_to_response(
+ "chercheurs/groupe_retrieve.html",
+ dict(groupe=groupe),
+ context_instance=RequestContext(request)
+ )
--- /dev/null
+{% extends "container_base.html" %}
+{% load pagination_tags %}
+{% load form_tags %}
+{% load sep %}
+
+{% block contenu %}
+{% autopaginate groupes 20 %}
+
+<ul class="actions">
+ <li><a href="{% url aide %}#repertoire">Aide</a></li>
+ {% include "chercheurs/actions.html" %}
+</ul>
+
+{{ entete|safe }}
+
+<h2>Recherche</h2>
+
+<form method="get" action="">
+ <table>
+ {% with search_form as form %}
+ {% include "render_form.html" %}
+ {% endwith %}
+ <tr><th></th><td><input type="submit" class="bouton" value="Rechercher" /></td></tr>
+ </table>
+</form>
+
+<h2>Résultats</h2>
+<div class="sous-titre">
+ {{ nb_resultats }} resultats correspondant à votre recherche
+</div>
+
+<div class="pagination">{% paginate %}</div>
+{% for groupe in groupes %}
+<div class="resultatRecherche">
+ <div class="titre">
+ <a href="{% url chercheurs.views.groupe_retrieve groupe.id %}">{{ groupe.nom }}</a>
+ </div>
+</div>
+
+{% empty %}
+ <div class="resultatRecherche">
+ <h2>Aucun résultat trouvé</h2>
+ </div>
+{% endfor %}
+<div class="pagination">{% paginate %}</div>
+
+{% endblock %}
<div>
<a href="{% url savoirs.views.index %}">Accueil</a> |
<a href="{% url chercheurs.views.index %}">Répertoire</a> |
+ <a href="{% url chercheurs.views.groupe_index %}">Groupes</a> |
<a href="{% url savoirs.views.ressource_index %}">Ressources</a> |
<a href="{% url actualites %}">Actualités</a> |
<a href="{% url appels %}">Appels d'offres</a> |
(r'^etablissements/autocomplete/$', 'chercheurs.views.etablissements_autocomplete'),
(r'^etablissements/autocomplete/(?P<pays>.*)/$', 'chercheurs.views.etablissements_autocomplete'),
+ # groupes
+ (r'^groupes/$', 'chercheurs.views.groupe_index'),
+ (r'^groupes/(?P<id>\d+)/$', 'chercheurs.views.groupe_retrieve'),
+
# section par discipline et/ou région
(r'^discipline/(?P<discipline>\d+)/', include(sep_patterns)),
(r'^region/(?P<region>\d+)/', include(sep_patterns)),