fix import Serveur
[auf_savoirs_en_partage_django.git] / auf_savoirs_en_partage / savoirs / admin_views.py
index c04c6c4..497c049 100644 (file)
@@ -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 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:
 
 # Dashboard
 class RecordDashboard:
@@ -29,7 +29,6 @@ class RecordDashboard:
             serveurs = Serveur.objects.all()
         return [s.nom for s in serveurs]
 
             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())
     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 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):
 
 @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))
                       '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))