X-Git-Url: http://git.auf.org/?p=auf_savoirs_en_partage_django.git;a=blobdiff_plain;f=auf_savoirs_en_partage%2Fsavoirs%2Fadmin_views.py;h=497c049c21cff2b91f3a977d08927f74b1eeba72;hp=c04c6c4484ec325f7d2db91c35e9a5ede737cd33;hb=d2f9e2af78fb2e81c2487110d91619d49f99ab9a;hpb=6d885e0c9e077c3c9533f4f21f702cb09112b275 diff --git a/auf_savoirs_en_partage/savoirs/admin_views.py b/auf_savoirs_en_partage/savoirs/admin_views.py index c04c6c4..497c049 100644 --- a/auf_savoirs_en_partage/savoirs/admin_views.py +++ b/auf_savoirs_en_partage/savoirs/admin_views.py @@ -7,7 +7,7 @@ from django.template import Context, RequestContext from django.shortcuts import render_to_response from datamaster_modeles.models import Thematique, Pays, Region -from savoirs.models import Record, Discipline +from savoirs.models import Record, Discipline, Actualite, Serveur # Dashboard class RecordDashboard: @@ -29,7 +29,6 @@ class RecordDashboard: 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()) @@ -72,7 +71,9 @@ class ThematiquesForm(forms.Form): 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): @@ -217,3 +218,60 @@ def assigner_thematiques(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(",") + type, action = action.split('/')[0:2] + + # determination du contexte de validation + if action == u'valider': + objects = [r for r in Record.objects.in_bulk(ids).values() if r.est_complet()] + action = ('validated', True) + desc = u'validées' + model = u'références' + + elif action == u'invalider': + objects = Record.objects.in_bulk(ids).values() + action = ('validated', False) + desc = u'invalidées' + model = u'références' + + elif action == u'visible': + objects = Actualite.objects.in_bulk(ids).values() + action = ('visible', True) + desc = u'visibles' + model = u'actualités' + + elif action == u'invisible': + objects = Actualite.objects.in_bulk(ids).values() + action = ('visible', False) + desc = u'invisibles' + model = u'actualités' + + else: + raise Exception("action invalide %s " % action) + + if request.method == 'POST': + confirmation_form = ConfirmationForm(request.POST) + + if confirmation_form.is_valid(): + for o in objects: + setattr(o, action[0], action[1]) + o.save() + + succes = u""u"Les références ont été %s" % desc + request.user.message_set.create(message=succes) + return HttpResponseRedirect('/admin/savoirs/%s' % type) + else: + confirmation_form = ConfirmationForm() + + + return render_to_response ("savoirs/confirmation.html", + Context ({'objects': objects, + 'action': action, + 'form': confirmation_form, + 'titre': u"Validation par lots", + 'description': u"Les %s suivantes vont être %s:" % (model, desc) , + }), + context_instance = RequestContext(request))