alphabet_filter = 'chercheur__nom'
DEFAULT_ALPHABET = ''
+ actions = ['assigner_cgstatut']
+
def lookup_allowed(self, lookup, value):
return lookup in ['chercheur__nom__istartswith'] or \
return super(ChercheurGroupeAdmin, self).has_change_permission(request, obj)
+ def assigner_cgstatut(self, request, queryset):
+ selected = request.POST.getlist(admin.ACTION_CHECKBOX_NAME)
+ return HttpResponseRedirect("/admin/assigner_%s?ids=%s" % ('cgstatut', ",".join(selected)))
+ assigner_cgstatut.short_description = u'Assigner un statut'
+
class MemberInline(admin.TabularInline):
model = ChercheurGroupe
--- /dev/null
+# -*- encoding: utf-8 -*-
+from django.http import HttpResponseRedirect
+from django.core.urlresolvers import reverse as url
+from django.contrib.auth.decorators import login_required
+
+from django.template import Context, RequestContext
+from django.shortcuts import render_to_response
+
+from chercheurs.models import ChercheurGroupe
+from chercheurs.forms import CGStatutForm
+
+
+@login_required
+def assigner_cgstatut(request):
+ ids = request.GET.get("ids").split(",")
+ records = ChercheurGroupe.objects.in_bulk(ids)
+ if request.method == 'POST':
+ cgstatut_form = CGStatutForm(request.POST)
+
+ if cgstatut_form.is_valid():
+
+ statut = request.POST.get("statut")
+
+ # assigner le statut à chaque référence
+ for r in records.values():
+ r.statut = statut
+ r.save()
+
+ # retouner un status à l'utilisateur sur la liste des références
+ succes = u"Le statut a été assigné à %s références" % (len(ids),)
+ request.user.message_set.create(message=succes)
+ return HttpResponseRedirect('/admin/chercheurs/chercheurgroupe')
+ else:
+ cgstatut_form = CGStatutForm()
+
+ return render_to_response ("savoirs/assigner.html",
+ Context ({'records': records,
+ 'form': cgstatut_form,
+ 'titre': u"Assignation d'un statut par lots",
+ 'description': u"Sélectionner le statut qui sera associé :" ,
+ }),
+ context_instance = RequestContext(request))
+
(r'^admin/assigner_pays', 'savoirs.admin_views.assigner_pays'),
(r'^admin/assigner_thematiques', 'savoirs.admin_views.assigner_thematiques'),
(r'^admin/assigner_categorie', 'savoirs.admin_views.assigner_categorie'),
+ (r'^admin/assigner_cgstatut', 'chercheurs.admin_views.assigner_cgstatut'),
(r'^admin/(?P<app_name>[^/]*)/(?P<model_name>[^/]*)/assigner_regions', 'savoirs.admin_views.assigner_regions', {}, 'assigner_regions'),
(r'^admin/(?P<app_name>[^/]*)/(?P<model_name>[^/]*)/assigner_disciplines', 'savoirs.admin_views.assigner_disciplines', {}, 'assigner_disciplines'),
(r'^admin/(.*)', admin.site.root),