diff --git a/search/templates/search/index.html b/search/templates/search/index.html index 98658bfb..2fad0c89 100644 --- a/search/templates/search/index.html +++ b/search/templates/search/index.html @@ -32,6 +32,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,

Résultats dans les utilisateurs

{% include "users/aff_users.html" with users_list=users %} {% endif%} + {% if clubs %} +

Résultats dans les clubs

+ {% include "users/aff_clubs.html" with clubs_list=clubs %} + {% endif%} {% if machines %}

Résultats dans les machines :

{% include "machines/aff_machines.html" with machines_list=machines %} diff --git a/search/views.py b/search/views.py index cc33bb7c..601f4eeb 100644 --- a/search/views.py +++ b/search/views.py @@ -31,7 +31,7 @@ from django.shortcuts import render from django.contrib.auth.decorators import login_required from django.db.models import Q -from users.models import User, Ban, Whitelist +from users.models import User, Adherent, Club, Ban, Whitelist from machines.models import Machine from topologie.models import Port, Switch, Room from cotisations.models import Facture @@ -133,19 +133,20 @@ def search_single_word(word, filters, user, filter_users = ( Q( surname__icontains=word - ) | Q( - adherent__name__icontains=word ) | Q( pseudo__icontains=word ) | Q( - club__room__name__icontains=word + room__name__icontains=word ) | Q( - adherent__room__name__icontains=word + room__name__icontains=word ) ) & Q(state__in=user_state) if not User.can_view_all(user)[0]: filter_users &= Q(id=user.id) + filter_clubs = filter_users + filter_users |= Q(name__icontains=word) filters['users'] |= filter_users + filters['clubs'] |= filter_clubs # Machines if '1' in aff: @@ -359,6 +360,7 @@ def get_results(query, request, params): filters = { 'users': Q(), + 'clubs': Q(), 'machines': Q(), 'factures': Q(), 'bans': Q(), @@ -381,7 +383,8 @@ def get_results(query, request, params): ) results = { - 'users': User.objects.filter(filters['users']), + 'users': Adherent.objects.filter(filters['users']), + 'clubs': Club.objects.filter(filters['clubs']), 'machines': Machine.objects.filter(filters['machines']), 'factures': Facture.objects.filter(filters['factures']), 'bans': Ban.objects.filter(filters['bans']),