'est_complet',
'validated',
)
- actions = ['assigner_pays',
+ actions = ['valider_references',
+ 'invalider_references',
+ 'assigner_pays',
'assigner_regions',
'assigner_disciplines',
'assigner_thematiques']
return obj.description
# actions
+ def valider_references(self, request, queryset):
+ selected = request.POST.getlist(admin.ACTION_CHECKBOX_NAME)
+ return HttpResponseRedirect("/admin/confirmation/%s?ids=%s" % ('valider', ",".join(selected)))
+
+ def invalider_references(self, request, queryset):
+ selected = request.POST.getlist(admin.ACTION_CHECKBOX_NAME)
+ return HttpResponseRedirect("/admin/confirmation/%s?ids=%s" % ('invalider', ",".join(selected)))
+
def assigner_pays(self, request, queryset):
selected = request.POST.getlist(admin.ACTION_CHECKBOX_NAME)
return HttpResponseRedirect("/admin/assigner_%s?ids=%s" % ('pays', ",".join(selected)))
serveurs = Serveur.objects.all()
return [s.nom for s in serveurs]
-
def total_a_faire(self,):
"""Retourne le total des références à traiter"""
return len(self.tout_mes_records())
class DisciplinesForm(forms.Form):
values = [(t.id, t.nom) for t in Discipline.objects.all()]
disciplines = forms.MultipleChoiceField(choices=values)
-
+
+class ConfirmationForm(forms.Form):
+ pass
@login_required
def assigner_pays(request):
'description': u"Sélectionner les thématiques qui seront associées aux références suivantes :" ,
}),
context_instance = RequestContext(request))
+
+@login_required
+def confirmation(request, action):
+ ids = request.GET.get("ids").split(",")
+
+ # determination du contexte de validation
+ if action == u'valider':
+ records = [r for r in Record.objects.in_bulk(ids).values() if r.est_complet()]
+ desc = u'validées'
+ validated = True
+ elif action == u'invalider':
+ records = Record.objects.in_bulk(ids).values()
+ desc = u'invalidées'
+ validated = False
+ else:
+ raise Exception("action invalide %s " % action)
+
+ if request.method == 'POST':
+ confirmation_form = ConfirmationForm(request.POST)
+
+ if confirmation_form.is_valid():
+ for r in records:
+ r.validated = validated
+ r.save()
+
+ succes = u""u"Les références ont été %s" % desc
+ request.user.message_set.create(message=succes)
+ return HttpResponseRedirect('/admin/savoirs/record')
+ else:
+ confirmation_form = ConfirmationForm()
+
+
+ return render_to_response ("savoirs/confirmation.html",
+ Context ({'records': records,
+ 'action': action,
+ 'form': confirmation_form,
+ 'titre': u"Validation par lots",
+ 'description': u"Les références suivantes vont être %s:" % desc ,
+ }),
+ context_instance = RequestContext(request))
'',
url(r'^admin_tools/', include('admin_tools.urls')),
(r'^admin/', include(admin.site.urls)),
+ (r'^admin/confirmation/(.*)', 'savoirs.admin_views.confirmation'),
(r'^admin/assigner_pays', 'savoirs.admin_views.assigner_pays'),
(r'^admin/assigner_regions', 'savoirs.admin_views.assigner_regions'),
(r'^admin/assigner_thematiques', 'savoirs.admin_views.assigner_thematiques'),