Merge branch 'master' into test
[auf_rh_dae.git] / project / dae / views.py
index 1ac7b48..642baf9 100644 (file)
@@ -7,7 +7,7 @@ from django.contrib import messages
 from django.contrib.auth.decorators import login_required, user_passes_test
 from django.contrib.contenttypes.models import ContentType
 from django.core.paginator import Paginator, InvalidPage
-from django.db.models import Q
+from django.db.models import Q, Count
 from django.http import Http404, HttpResponse, HttpResponseNotFound
 from django.shortcuts import redirect, render, get_object_or_404
 from sendfile import sendfile
@@ -128,6 +128,10 @@ def poste(request, key=None):
     il est automatiquement copié dans dae.
 
     """
+    if 'creer_dossier_dae' in request.GET:
+        creer_dossier_dae = True
+    else:
+        creer_dossier_dae = False
 
     def _dupliquer_poste(poste_dae, poste_rh):
         """
@@ -153,6 +157,8 @@ def poste(request, key=None):
     # Type intervention
     if 'type_intervention' in request.GET:
         data['type_intervention'] = request.GET['type_intervention']
+    if creer_dossier_dae:
+        data['type_intervention'] = request.GET['creer_dossier_dae']
 
     # Poste existant
     poste_rh = None
@@ -221,6 +227,9 @@ def poste(request, key=None):
                 request, messages.SUCCESS,
                 "Le poste %s a été sauvegardé." % poste
             )
+            if creer_dossier_dae:
+                return redirect('embauche', key='dae-%s' % poste.id)
+
             if 'save' in request.POST:
                 return redirect('poste_consulter', key='dae-%s' % poste.id)
             else:
@@ -256,6 +265,7 @@ def poste(request, key=None):
         financementForm=financementForm,
         comparaisons_formset=comparaisons_formset,
         poste_rh=poste_rh,
+        creer_dossier_dae=creer_dossier_dae,
     ))
 
     return render(request, 'dae/poste.html', vars)
@@ -271,8 +281,12 @@ def postes_liste(request):
         content_type.id
     )}
     postes_a_traiter = dae.Poste.objects.mes_choses_a_faire(request.user) \
+            .annotate(num_dae=Count('dae_dossiers')) \
+            .filter(num_dae=0) \
             .extra(select=extra_select).order_by('-id')
     postes_en_cours = dae.Poste.objects.ma_region_ou_service(request.user) \
+            .annotate(num_dae=Count('dae_dossiers')) \
+            .filter(num_dae=0) \
             .extra(select=extra_select) \
             .filter(~Q(etat=POSTE_ETAT_FINALISE)) \
             .order_by('-id')
@@ -358,8 +372,14 @@ def embauche_importer(request, dossier_id=None):
 
 @dae_groupe_requis
 def embauche_choisir_poste(request):
+    if request.POST:
+        form = ChoosePosteForm(data=request.POST, request=request)
+        if form.is_valid():
+            return form.redirect()
+    else:
+        form = ChoosePosteForm(request=request)
     c = {
-        'form': ChoosePosteForm(request=request),
+        'form': form,
     }
     return render(request, 'dae/embauche-choisir-poste.html', c)