[#3139] candidatures : action en lot pour modifier statut
authorPA Parent <paparent@paparent.me>
Tue, 5 Jun 2012 17:26:09 +0000 (13:26 -0400)
committerPA Parent <paparent@paparent.me>
Tue, 5 Jun 2012 17:26:09 +0000 (13:26 -0400)
project/recrutement/admin.py
project/recrutement/templates/recrutement/selectionner_statut.html [new file with mode: 0644]

index 8551126..aa602a4 100644 (file)
@@ -7,10 +7,13 @@ from django.contrib import admin
 from django.forms.models import BaseInlineFormSet
 from django.db.models import Avg
 from django.conf import settings
+from django.shortcuts import render_to_response
+from django.template import RequestContext
 
 from reversion.admin import VersionAdmin
 from datamaster_modeles.models import Region, Bureau
 from project.rh import models as rh
+from auf.django.emploi.models import STATUT_CHOICES
 
 from project.dae.utils import get_employe_from_user as get_emp
 from recrutement.models import *
@@ -298,7 +301,7 @@ class CandidatAdmin(VersionAdmin):
         CandidatPieceInline,
         CandidatEvaluationInline,
     ]
-    actions = ['envoyer_courriel_candidats']
+    actions = ['envoyer_courriel_candidats', 'changer_statut']
 
     def _candidat(self, obj):
         txt = u"%s %s (%s)" % ( obj.nom.upper(), obj.prenom,
@@ -328,6 +331,23 @@ class CandidatAdmin(VersionAdmin):
                 "?ids=%s" % (",".join(selected)))
     envoyer_courriel_candidats.short_description = u'Envoyer courriel'
 
+    ### Changer le statut à des candidats
+    def changer_statut(modeladmin, request, queryset):
+        if request.POST.get('post'):
+            queryset.update(statut=request.POST.get('statut'))
+            return None
+
+        context = {
+            'action_checkbox_name': admin.helpers.ACTION_CHECKBOX_NAME,
+            'queryset': queryset,
+            'status': STATUT_CHOICES,
+        }
+
+        return render_to_response("recrutement/selectionner_statut.html",
+                context, context_instance = RequestContext(request))
+
+    changer_statut.short_description = u'Changer statut'
+
     ### Évaluer un candidat
     def evaluer_candidat(self, obj):
         return "<a href='%s?candidat__id__exact=%s'>Évaluer le candidat</a>" % \
diff --git a/project/recrutement/templates/recrutement/selectionner_statut.html b/project/recrutement/templates/recrutement/selectionner_statut.html
new file mode 100644 (file)
index 0000000..b60e3e8
--- /dev/null
@@ -0,0 +1,60 @@
+{% extends 'admin/base_site.html' %}
+{% load i18n adminmedia form_utils_tags %}
+
+{% block title %}RH - Recrutement{% endblock %}
+{% block sous_titre %}Changer statut aux candidats{% endblock %}
+{% block extrahead %}
+{{ form.media }}
+{% endblock %}
+{% block breadcrumbs %}{% if not is_popup %}
+<div class="breadcrumbs">
+     <a href="../../">{% trans "Home" %}</a> &rsaquo;
+     <a href="../">{% trans "Recrutement" %}</a> &rsaquo;
+     {% trans "Changer statut - Sélectionner le statut" %}
+</div>
+{% endif %}{% endblock %}
+
+
+{% block content %}
+<div id="content-main">
+    {% block object-tools %}{% endblock %}
+
+    <div class="module">
+        <h2>Sélectionner le statut</h2>
+
+        <form action="" method="post">{% csrf_token %}
+            <table>
+                <tr>
+                    <td>Changer le statut des candidats suivant:</td>
+                    <td>
+                        <ul>
+                            {{ queryset|unordered_list }}
+                        </ul>
+                    </td>
+                </tr>
+                <tr>
+                    <td>Nouveau statut</td>
+                    <td>
+                        <select name="statut">
+                        {% for statut in status %}
+                        <option value="{{ statut.0 }}">{{ statut.1 }}</option>
+                        {% endfor %}
+                        </select>
+                    </td>
+                </tr>
+            </table>
+            {% for obj in queryset %}
+            <input type="hidden" name="{{ action_checkbox_name }}" value="{{ obj.pk }}" />
+            {% endfor %}
+            <input type="hidden" name="action" value="changer_statut" />
+            <input type="hidden" name="post" value="yes" />
+            <div class="submit-row">
+                <input type="submit" value="Changer">
+            </div>
+        </form>
+    </div>
+
+
+</div>
+
+{% endblock %}