Renommer l'action "Retirer du groupe" en "Retirer du domaine de recherche".
[auf_savoirs_en_partage_django.git] / auf_savoirs_en_partage / chercheurs / admin.py
CommitLineData
cbae0173 1# -*- encoding: utf-8 -*-
55ef8558 2from chercheurs.models import Chercheur, Publication, Groupe, ChercheurGroupe
cbae0173
AJ
3from django.db import models
4from django.contrib import admin
55ef8558
EMS
5from django.core.urlresolvers import reverse as url
6from django.forms.models import BaseInlineFormSet
7from django.http import HttpResponseRedirect
cbae0173 8
55ef8558
EMS
9class ChercheurAdmin(admin.ModelAdmin):
10 list_filter = ('groupes',)
11 list_per_page = 25
12 actions = ('remove_from_group',)
4ce76440 13 search_fields = ('personne__nom', 'personne__prenom')
cbae0173 14
55ef8558
EMS
15 def remove_from_group(self, request, queryset):
16 groupe_id = request.GET.get('groupes__id__exact')
17 chercheur_ids = queryset.values_list('id', flat=True)
18 matches = ChercheurGroupe.objects.filter(groupe=groupe_id, chercheur__in=chercheur_ids)
19 matches.delete()
20 return HttpResponseRedirect(url('admin:chercheurs_chercheur_changelist') + '?groupes__id__exact=' + groupe_id)
21
22 def get_actions(self, request):
23 actions = super(ChercheurAdmin, self).get_actions(request)
24
25 # Si on filtre par groupe de recherche, offrir d'en retirer les
26 # chercheurs sélectionnés.
27 groupe_id = request.GET.get('groupes__id__exact')
28 if groupe_id:
29 groupe = Groupe.objects.get(id=groupe_id)
30 action_desc = actions['remove_from_group']
e7b9234a 31 actions['remove_from_group'] = (action_desc[0], action_desc[1], u'Retirer du domaine de recherche « %s »' % groupe.nom)
55ef8558
EMS
32 else:
33 del actions['remove_from_group']
34 return actions
35
36admin.site.register(Chercheur, ChercheurAdmin)
cbae0173
AJ
37admin.site.register(Publication)
38admin.site.register(Groupe)
39